From 3470f7f8b376a4dc91803a9a4e4dff67aa43e3fb Mon Sep 17 00:00:00 2001 From: Hamed Masafi Date: Tue, 28 Jul 2020 12:50:57 +0430 Subject: [PATCH 1/4] resolve symbols export errors on msvc --- 3rdparty/serializer | 2 +- ci-test-init.pri | 4 -- nut-dynamic.pro | 10 ---- src/bulkinserter.cpp | 2 +- src/bulkinserter.h | 2 +- src/changelogtable.h | 2 +- src/database_p.h | 2 +- src/databasemodel.h | 2 +- src/defines.h | 18 +++++-- src/generators/mysqlgenerator.h | 2 +- src/generators/postgresqlgenerator.h | 2 +- src/generators/sqlgeneratorbase_p.h | 2 +- src/generators/sqlitegenerator.h | 2 +- src/generators/sqlservergenerator.h | 2 +- src/phrases/conditionalphrase.cpp | 2 +- src/phrases/conditionalphrase.h | 27 +++++----- src/phrases/fieldphrase.h | 28 ++++++---- src/phrases/numericphrase.h | 43 +++++++-------- src/query.h | 2 +- src/query_p.h | 2 +- src/querybase_p.h | 2 +- src/sqlmodel_p.h | 2 +- src/src.pri | 1 - src/src.pro | 72 ++++++++++++++++++++++++-- src/tablemodel.h | 2 +- src/tableset.h | 2 +- src/tablesetbase_p.h | 2 +- test/common/nut-lib.pri | 7 +-- test/tst_basic/tst_basic.pro | 1 - test/tst_benckmark/tst_benckmark.pro | 1 - test/tst_datatypes/tst_datatypes.pro | 2 - test/tst_datetime/tst_datetime.pro | 1 - test/tst_generators/tst_generators.pro | 2 - test/tst_json/tst_json.pro | 2 - test/tst_phrases/tst_phrases.pro | 1 - test/tst_quuid/tst_quuid.pro | 1 - test/tst_upgrades/tst_upgrades.pro | 1 - 37 files changed, 157 insertions(+), 103 deletions(-) delete mode 100644 ci-test-init.pri delete mode 100644 nut-dynamic.pro diff --git a/3rdparty/serializer b/3rdparty/serializer index 51500a4..5b30b13 160000 --- a/3rdparty/serializer +++ b/3rdparty/serializer @@ -1 +1 @@ -Subproject commit 51500a497933444196942ee0db6628338a0422af +Subproject commit 5b30b13af9b9537d4226c922d04106dc4ba0595b diff --git a/ci-test-init.pri b/ci-test-init.pri deleted file mode 100644 index 7e8ac7a..0000000 --- a/ci-test-init.pri +++ /dev/null @@ -1,4 +0,0 @@ -#QT -= gui - -DEFINES += NUT_PATH=\\\"$$PWD/../../\\\" - diff --git a/nut-dynamic.pro b/nut-dynamic.pro deleted file mode 100644 index b19d9e8..0000000 --- a/nut-dynamic.pro +++ /dev/null @@ -1,10 +0,0 @@ -QT += sql gui - -TARGET = nut -TEMPLATE = lib -CONFIG += c++11 - -DEFINES += QT_DEPRECATED_WARNINGS NUT_COMPILE_STATIC - -include($$PWD/src/src.pri) -include($$PWD/3rdparty/serializer/src/src.pri) diff --git a/src/bulkinserter.cpp b/src/bulkinserter.cpp index ddebc4b..4320ac4 100644 --- a/src/bulkinserter.cpp +++ b/src/bulkinserter.cpp @@ -36,7 +36,7 @@ void Nut::BulkInserter::insert(std::initializer_list vars) int Nut::BulkInserter::apply() { - auto sql = _database->sqlGenertor()->insertBulk(_className, _fields, variants); + auto sql = _database->sqlGenerator()->insertBulk(_className, _fields, variants); QSqlQuery q = _database->exec(sql); return q.numRowsAffected(); } diff --git a/src/bulkinserter.h b/src/bulkinserter.h index 734689a..c8b40db 100644 --- a/src/bulkinserter.h +++ b/src/bulkinserter.h @@ -11,7 +11,7 @@ NUT_BEGIN_NAMESPACE class PhraseList; class Database; -class BulkInserter +class NUT_EXPORT BulkInserter { Database *_database; QString _className; diff --git a/src/changelogtable.h b/src/changelogtable.h index 4d580de..e42b61d 100644 --- a/src/changelogtable.h +++ b/src/changelogtable.h @@ -26,7 +26,7 @@ NUT_BEGIN_NAMESPACE -class ChangeLogTable : public Table +class NUT_EXPORT ChangeLogTable : public Table { Q_OBJECT diff --git a/src/database_p.h b/src/database_p.h index c07b0a8..a93f105 100644 --- a/src/database_p.h +++ b/src/database_p.h @@ -30,7 +30,7 @@ NUT_BEGIN_NAMESPACE class ChangeLogTable; -class DatabasePrivate //: public QSharedData +class NUT_EXPORT DatabasePrivate //: public QSharedData { Database *q_ptr; Q_DECLARE_PUBLIC(Database) diff --git a/src/databasemodel.h b/src/databasemodel.h index e32e23a..8afe966 100644 --- a/src/databasemodel.h +++ b/src/databasemodel.h @@ -33,7 +33,7 @@ NUT_BEGIN_NAMESPACE class TableModel; struct RelationModel; -class DatabaseModel : public QList +class NUT_EXPORT DatabaseModel : public QList { QString _databaseClassName; int _version; diff --git a/src/defines.h b/src/defines.h index 24bbd05..b098d11 100644 --- a/src/defines.h +++ b/src/defines.h @@ -31,10 +31,20 @@ #include #include -#ifdef NUT_COMPILE_STATIC -# define NUT_EXPORT +#if defined(NUT_SHARED) || !defined(NUT_STATIC) +# ifdef NUT_STATIC +# error "Both NUT_SHARED and NUT_STATIC defined, please make up your mind" +# endif +# ifndef NUT_SHARED +# define NUT_SHARED +# endif +# if defined(NUT_BUILD_LIB) +# define NUT_EXPORT Q_DECL_EXPORT +# else +# define NUT_EXPORT Q_DECL_IMPORT +# endif #else -# define NUT_EXPORT Q_DECL_EXPORT +# define NUT_EXPORT #endif #define NUT_INFO(type, name, value) \ @@ -45,7 +55,7 @@ Q_CLASSINFO(__nut_NAME_PERFIX type #name #value, \ type "\n" #name "\n" value) -#define NUT_FIELD_PERFIX +#define NUT_FIELD_PREFIX #define NUT_FIELD_POSTFIX Field // Database diff --git a/src/generators/mysqlgenerator.h b/src/generators/mysqlgenerator.h index 4d38fa9..b4bbed3 100644 --- a/src/generators/mysqlgenerator.h +++ b/src/generators/mysqlgenerator.h @@ -26,7 +26,7 @@ NUT_BEGIN_NAMESPACE -class MySqlGenerator : public SqlGeneratorBase +class NUT_EXPORT MySqlGenerator : public SqlGeneratorBase { public: explicit MySqlGenerator(Database *parent = nullptr); diff --git a/src/generators/postgresqlgenerator.h b/src/generators/postgresqlgenerator.h index 3c1188c..49de129 100644 --- a/src/generators/postgresqlgenerator.h +++ b/src/generators/postgresqlgenerator.h @@ -26,7 +26,7 @@ NUT_BEGIN_NAMESPACE -class PostgreSqlGenerator : public SqlGeneratorBase +class NUT_EXPORT PostgreSqlGenerator : public SqlGeneratorBase { private: bool readInsideParentese(QString &text, QString &out); diff --git a/src/generators/sqlgeneratorbase_p.h b/src/generators/sqlgeneratorbase_p.h index 82ba188..821195f 100644 --- a/src/generators/sqlgeneratorbase_p.h +++ b/src/generators/sqlgeneratorbase_p.h @@ -37,7 +37,7 @@ class DatabaseModel; class TableModel; class Database; struct RelationModel; -class SqlGeneratorBase : public QObject +class NUT_EXPORT SqlGeneratorBase : public QObject { // Q_OBJECT diff --git a/src/generators/sqlitegenerator.h b/src/generators/sqlitegenerator.h index b0f2f0e..4d2a4ff 100644 --- a/src/generators/sqlitegenerator.h +++ b/src/generators/sqlitegenerator.h @@ -26,7 +26,7 @@ NUT_BEGIN_NAMESPACE -class SqliteGenerator : public SqlGeneratorBase +class NUT_EXPORT SqliteGenerator : public SqlGeneratorBase { public: explicit SqliteGenerator(Database *parent = nullptr); diff --git a/src/generators/sqlservergenerator.h b/src/generators/sqlservergenerator.h index 10c18de..3618f80 100644 --- a/src/generators/sqlservergenerator.h +++ b/src/generators/sqlservergenerator.h @@ -26,7 +26,7 @@ NUT_BEGIN_NAMESPACE -class SqlServerGenerator : public SqlGeneratorBase +class NUT_EXPORT SqlServerGenerator : public SqlGeneratorBase { public: explicit SqlServerGenerator(Database *parent = nullptr); diff --git a/src/phrases/conditionalphrase.cpp b/src/phrases/conditionalphrase.cpp index 6201762..1fe6b27 100644 --- a/src/phrases/conditionalphrase.cpp +++ b/src/phrases/conditionalphrase.cpp @@ -35,7 +35,7 @@ ConditionalPhrase::ConditionalPhrase(const ConditionalPhrase &other) } #ifdef Q_COMPILER_RVALUE_REFS -ConditionalPhrase::ConditionalPhrase(const ConditionalPhrase &&other) +ConditionalPhrase::ConditionalPhrase(ConditionalPhrase &&other) { this->data = qMove(other.data); } diff --git a/src/phrases/conditionalphrase.h b/src/phrases/conditionalphrase.h index 8f7f9a5..49c6aaa 100644 --- a/src/phrases/conditionalphrase.h +++ b/src/phrases/conditionalphrase.h @@ -33,6 +33,7 @@ ConditionalPhrase operator op(const QVariant &other) \ { \ return ConditionalPhrase(this, cond, other); \ } + class NUT_EXPORT ConditionalPhrase { public: @@ -42,7 +43,7 @@ public: ConditionalPhrase(); ConditionalPhrase(const ConditionalPhrase &other); #ifdef Q_COMPILER_RVALUE_REFS - ConditionalPhrase(const ConditionalPhrase &&other); + ConditionalPhrase(ConditionalPhrase &&other); #endif explicit ConditionalPhrase(const PhraseData *data); ConditionalPhrase(AbstractFieldPhrase *, PhraseData::Condition); @@ -69,24 +70,24 @@ public: #define DECLARE_CONDITIONALPHRASE_OPERATORS(op) \ -ConditionalPhrase operator op(const ConditionalPhrase &l, const ConditionalPhrase &r); \ -ConditionalPhrase operator op(const ConditionalPhrase &l, ConditionalPhrase &&r); \ -ConditionalPhrase operator op(ConditionalPhrase &&l, const ConditionalPhrase &r); \ -ConditionalPhrase operator op(ConditionalPhrase &&l, ConditionalPhrase &&r); + ConditionalPhrase NUT_EXPORT operator op(const ConditionalPhrase &l, const ConditionalPhrase &r); \ + ConditionalPhrase NUT_EXPORT operator op(const ConditionalPhrase &l, ConditionalPhrase &&r); \ + ConditionalPhrase NUT_EXPORT operator op(ConditionalPhrase &&l, const ConditionalPhrase &r); \ + ConditionalPhrase NUT_EXPORT operator op(ConditionalPhrase &&l, ConditionalPhrase &&r); DECLARE_CONDITIONALPHRASE_OPERATORS(==) DECLARE_CONDITIONALPHRASE_OPERATORS(&&) DECLARE_CONDITIONALPHRASE_OPERATORS(||) -ConditionalPhrase operator <(AbstractFieldPhrase &l, ConditionalPhrase &&r); -ConditionalPhrase operator <=(AbstractFieldPhrase &l, ConditionalPhrase &&r); -ConditionalPhrase operator >(AbstractFieldPhrase &l, ConditionalPhrase &&r); -ConditionalPhrase operator >=(AbstractFieldPhrase &l, ConditionalPhrase &&r); +ConditionalPhrase NUT_EXPORT operator <(AbstractFieldPhrase &l, ConditionalPhrase &&r); +ConditionalPhrase NUT_EXPORT operator <=(AbstractFieldPhrase &l, ConditionalPhrase &&r); +ConditionalPhrase NUT_EXPORT operator >(AbstractFieldPhrase &l, ConditionalPhrase &&r); +ConditionalPhrase NUT_EXPORT operator >=(AbstractFieldPhrase &l, ConditionalPhrase &&r); -ConditionalPhrase operator <(ConditionalPhrase &&l, ConditionalPhrase &&r); -ConditionalPhrase operator <=(ConditionalPhrase &&l, ConditionalPhrase &&r); -ConditionalPhrase operator >(ConditionalPhrase &&l, ConditionalPhrase &&r); -ConditionalPhrase operator >=(ConditionalPhrase &&l, ConditionalPhrase &&r); +ConditionalPhrase NUT_EXPORT operator <(ConditionalPhrase &&l, ConditionalPhrase &&r); +ConditionalPhrase NUT_EXPORT operator <=(ConditionalPhrase &&l, ConditionalPhrase &&r); +ConditionalPhrase NUT_EXPORT operator >(ConditionalPhrase &&l, ConditionalPhrase &&r); +ConditionalPhrase NUT_EXPORT operator >=(ConditionalPhrase &&l, ConditionalPhrase &&r); NUT_END_NAMESPACE diff --git a/src/phrases/fieldphrase.h b/src/phrases/fieldphrase.h index 6ec3bf4..ff2e223 100644 --- a/src/phrases/fieldphrase.h +++ b/src/phrases/fieldphrase.h @@ -27,27 +27,33 @@ NUT_BEGIN_NAMESPACE -template -class NUT_EXPORT FieldPhrase : public AbstractFieldPhrase +template +class FieldPhrase : public AbstractFieldPhrase { public: FieldPhrase(const char *className, const char *s) : AbstractFieldPhrase(className, s) {} - AssignmentPhrase operator =(const QVariant &other) { - return AssignmentPhrase(this, other); - } - - ConditionalPhrase operator ==(const QVariant &other) { - return ConditionalPhrase(this, PhraseData::Equal, other); - } + virtual ~FieldPhrase() {} + AssignmentPhrase operator =(const QVariant &other); + ConditionalPhrase operator ==(const QVariant &other); }; +template +Q_OUTOFLINE_TEMPLATE AssignmentPhrase FieldPhrase::operator =(const QVariant &other) { + return AssignmentPhrase(this, other); +} + +template +Q_OUTOFLINE_TEMPLATE ConditionalPhrase FieldPhrase::operator ==(const QVariant &other) { + return ConditionalPhrase(this, PhraseData::Equal, other); +} + template<> -class NUT_EXPORT FieldPhrase : public AbstractFieldPhrase +class FieldPhrase : public AbstractFieldPhrase { public: FieldPhrase(const char *className, const char *s) : @@ -75,7 +81,7 @@ public: } template<> -class NUT_EXPORT FieldPhrase : public AbstractFieldPhrase +class FieldPhrase : public AbstractFieldPhrase { public: FieldPhrase(const char *className, const char *s) : diff --git a/src/phrases/numericphrase.h b/src/phrases/numericphrase.h index ab9db31..39cd615 100644 --- a/src/phrases/numericphrase.h +++ b/src/phrases/numericphrase.h @@ -12,23 +12,13 @@ NUT_BEGIN_NAMESPACE return ConditionalPhrase(this, cond, other); \ } -template -class FieldPhrase::value || std::is_integral::value - >::type> - : public AbstractFieldPhrase +class NumericFieldPhrase : public AbstractFieldPhrase { public: - FieldPhrase(const char *className, const char *s) : + NumericFieldPhrase(const char *className, const char *s) : AbstractFieldPhrase(className, s) {} - AssignmentPhrase operator =(const QVariant &other) { - return AssignmentPhrase(this, other); - } - AssignmentPhrase operator =(ConditionalPhrase &&other) { - return AssignmentPhrase(new PhraseData(data, PhraseData::Equal, other.data)); - } ConditionalPhrase between(const QVariant &min, const QVariant &max) { return ConditionalPhrase(this, PhraseData::Between, @@ -65,25 +55,32 @@ public: #define SPECIALIZATION_NUMERIC_TYPE(type) \ template<> \ - class FieldPhrase : public NumericPhrase \ + class FieldPhrase : public NumericFieldPhrase \ { \ public: \ FieldPhrase(const char *className, const char *s) : \ - NumericPhrase(className, s) \ + NumericFieldPhrase(className, s) \ {} \ + AssignmentPhrase operator =(const QVariant &other) { \ + return AssignmentPhrase(this, other); \ + } \ + AssignmentPhrase operator =(ConditionalPhrase &&other) { \ + return AssignmentPhrase(new PhraseData(data, PhraseData::Equal, other.data)); \ + } \ }; -//SPECIALIZATION_NUMERIC_TYPE(qint8) -//SPECIALIZATION_NUMERIC_TYPE(qint16) -//SPECIALIZATION_NUMERIC_TYPE(qint32) -//SPECIALIZATION_NUMERIC_TYPE(qint64) +SPECIALIZATION_NUMERIC_TYPE(qint8) +SPECIALIZATION_NUMERIC_TYPE(qint16) +SPECIALIZATION_NUMERIC_TYPE(qint32) +SPECIALIZATION_NUMERIC_TYPE(qint64) -//SPECIALIZATION_NUMERIC_TYPE(quint8) -//SPECIALIZATION_NUMERIC_TYPE(quint16) -//SPECIALIZATION_NUMERIC_TYPE(quint32) -//SPECIALIZATION_NUMERIC_TYPE(quint64) +SPECIALIZATION_NUMERIC_TYPE(quint8) +SPECIALIZATION_NUMERIC_TYPE(quint16) +SPECIALIZATION_NUMERIC_TYPE(quint32) +SPECIALIZATION_NUMERIC_TYPE(quint64) -//SPECIALIZATION_NUMERIC_TYPE(qreal) +SPECIALIZATION_NUMERIC_TYPE(qreal) +SPECIALIZATION_NUMERIC_TYPE(float) NUT_END_NAMESPACE diff --git a/src/query.h b/src/query.h index 70ff85d..444f4b5 100644 --- a/src/query.h +++ b/src/query.h @@ -49,7 +49,7 @@ NUT_BEGIN_NAMESPACE template - class NUT_EXPORT Query : public QueryBase +class Query : public QueryBase { QueryPrivate *d_ptr; Q_DECLARE_PRIVATE(Query) diff --git a/src/query_p.h b/src/query_p.h index 2b65dfb..aee891c 100644 --- a/src/query_p.h +++ b/src/query_p.h @@ -33,7 +33,7 @@ class Database; class TableSetBase; class QueryBase; struct RelationModel; -class QueryPrivate : public QSharedData { +class NUT_EXPORT QueryPrivate : public QSharedData { QueryBase *q_ptr; Q_DECLARE_PUBLIC(QueryBase) diff --git a/src/querybase_p.h b/src/querybase_p.h index d1066b0..d99e113 100644 --- a/src/querybase_p.h +++ b/src/querybase_p.h @@ -33,7 +33,7 @@ NUT_BEGIN_NAMESPACE //TODO: remove this class class Table; class TableSetBase; -class QueryBase : public QObject +class NUT_EXPORT QueryBase : public QObject { Q_OBJECT diff --git a/src/sqlmodel_p.h b/src/sqlmodel_p.h index 26c7730..7db807e 100644 --- a/src/sqlmodel_p.h +++ b/src/sqlmodel_p.h @@ -10,7 +10,7 @@ NUT_BEGIN_NAMESPACE class SqlModel; class Table; class TableModel; -class SqlModelPrivate : public QSharedData { +class NUT_EXPORT SqlModelPrivate : public QSharedData { public: explicit SqlModelPrivate(SqlModel *parent); diff --git a/src/src.pri b/src/src.pri index 79319e3..502aaaa 100644 --- a/src/src.pri +++ b/src/src.pri @@ -65,5 +65,4 @@ SOURCES += \ $$PWD/phrases/phraselist.cpp \ $$PWD/phrases/datephrase.cpp - include($$PWD/../3rdparty/serializer/src/src.pri) diff --git a/src/src.pro b/src/src.pro index 5f96880..fb87f27 100644 --- a/src/src.pro +++ b/src/src.pro @@ -4,7 +4,73 @@ TARGET = nut TEMPLATE = lib CONFIG += c++11 -DEFINES += QT_DEPRECATED_WARNINGS NUT_COMPILE_STATIC +DEFINES += QT_DEPRECATED_WARNINGS NUT_SHARED NUT_BUILD_LIB -include($$PWD/src.pri) -include($$PWD/../ci-test-init.pri) +DEFINES += NUT_SHARED_POINTER + +HEADERS += \ + $$PWD/generators/sqlgeneratorbase_p.h \ + $$PWD/generators/postgresqlgenerator.h \ + $$PWD/generators/mysqlgenerator.h \ + $$PWD/generators/sqlitegenerator.h \ + $$PWD/generators/sqlservergenerator.h \ + $$PWD/tablesetbasedata.h \ + $$PWD/types/dbgeography.h \ + $$PWD/tableset.h \ + $$PWD/defines_p.h \ + $$PWD/defines.h \ + $$PWD/query.h \ + $$PWD/databasemodel.h \ + $$PWD/changelogtable.h \ + $$PWD/tablesetbase_p.h \ + $$PWD/querybase_p.h \ + $$PWD/tablemodel.h \ + $$PWD/query_p.h \ + $$PWD/table.h \ + $$PWD/database.h \ + $$PWD/database_p.h \ + $$PWD/serializableobject.h \ + $$PWD/sqlmodel.h \ + $$PWD/sqlmodel_p.h \ + $$PWD/phrase.h \ + $$PWD/phrases/abstractfieldphrase.h \ + $$PWD/phrases/assignmentphrase.h \ + $$PWD/phrases/assignmentphraselist.h \ + $$PWD/phrases/conditionalphrase.h \ + $$PWD/phrases/fieldphrase.h \ + $$PWD/phrases/phrasedata.h \ + $$PWD/phrases/phrasedatalist.h \ + $$PWD/phrases/phraselist.h \ + $$PWD/phrases/datephrase.h \ + $$PWD/table_p.h + +SOURCES += \ + $$PWD/generators/sqlgeneratorbase.cpp \ + $$PWD/generators/postgresqlgenerator.cpp \ + $$PWD/generators/mysqlgenerator.cpp \ + $$PWD/generators/sqlitegenerator.cpp \ + $$PWD/generators/sqlservergenerator.cpp \ + $$PWD/types/dbgeography.cpp \ + $$PWD/tableset.cpp \ + $$PWD/query.cpp \ + $$PWD/databasemodel.cpp \ + $$PWD/tablesetbase.cpp \ + $$PWD/changelogtable.cpp \ + $$PWD/querybase.cpp \ + $$PWD/tablemodel.cpp \ + $$PWD/table.cpp \ + $$PWD/database.cpp \ + $$PWD/serializableobject.cpp \ + $$PWD/sqlmodel.cpp \ + $$PWD/phrase.cpp \ + $$PWD/phrases/abstractfieldphrase.cpp \ + $$PWD/phrases/assignmentphrase.cpp \ + $$PWD/phrases/assignmentphraselist.cpp \ + $$PWD/phrases/conditionalphrase.cpp \ + $$PWD/phrases/fieldphrase.cpp \ + $$PWD/phrases/phrasedata.cpp \ + $$PWD/phrases/phrasedatalist.cpp \ + $$PWD/phrases/phraselist.cpp \ + $$PWD/phrases/datephrase.cpp + +include($$PWD/../3rdparty/serializer/src/src.pri) diff --git a/src/tablemodel.h b/src/tablemodel.h index 1fa89ae..f0e3b23 100644 --- a/src/tablemodel.h +++ b/src/tablemodel.h @@ -30,7 +30,7 @@ class QJsonObject; NUT_BEGIN_NAMESPACE class TableModel; -struct FieldModel{ +struct NUT_EXPORT FieldModel{ explicit FieldModel() : name(QString()), defaultValue(QString()) { diff --git a/src/tableset.h b/src/tableset.h index d066584..7153c2e 100644 --- a/src/tableset.h +++ b/src/tableset.h @@ -43,7 +43,7 @@ class BulkInserter; class Database; template -class NUT_EXPORT TableSet : public TableSetBase +class TableSet : public TableSetBase { public: typedef T value_type; diff --git a/src/tablesetbase_p.h b/src/tablesetbase_p.h index f5805ba..9513316 100644 --- a/src/tablesetbase_p.h +++ b/src/tablesetbase_p.h @@ -33,7 +33,7 @@ NUT_BEGIN_NAMESPACE class Table; class Database; class TableSetBaseData; -class TableSetBase : public QObject +class NUT_EXPORT TableSetBase : public QObject { public: diff --git a/test/common/nut-lib.pri b/test/common/nut-lib.pri index 12b9974..d8b2f31 100644 --- a/test/common/nut-lib.pri +++ b/test/common/nut-lib.pri @@ -1,11 +1,12 @@ win32 { - CONFIG(debug,debug|release): LIBDIR = $$absolute_path($$OUT_PWD/../../src/debug) - CONFIG(release,debug|release): LIBDIR = $$absolute_path($$OUT_PWD/../../src/release) + CONFIG(debug,debug|release): LIBDIR = $$absolute_path($$OUT_PWD/../../src/debug) + CONFIG(release,debug|release): LIBDIR = $$absolute_path($$OUT_PWD/../../src/release) } else { - LIBDIR = $$absolute_path($$OUT_PWD/../../src) + LIBDIR = $$absolute_path($$OUT_PWD/../../src) } LIBS += -L$$LIBDIR -lnut INCLUDEPATH += $$PWD/../../src $$PWD/../common DEFINES += NUT_SHARED_POINTER +DEFINES += NUT_PATH=\\\"$$PWD/../../\\\" diff --git a/test/tst_basic/tst_basic.pro b/test/tst_basic/tst_basic.pro index 24ffb66..c2e5ca2 100644 --- a/test/tst_basic/tst_basic.pro +++ b/test/tst_basic/tst_basic.pro @@ -24,4 +24,3 @@ HEADERS += \ ../common/score.h \ tst_basic.h -include($$PWD/../../ci-test-init.pri) diff --git a/test/tst_benckmark/tst_benckmark.pro b/test/tst_benckmark/tst_benckmark.pro index 48bd4f5..19fd248 100644 --- a/test/tst_benckmark/tst_benckmark.pro +++ b/test/tst_benckmark/tst_benckmark.pro @@ -24,4 +24,3 @@ HEADERS += \ ../common/score.h \ tst_benchmark.h -include($$PWD/../../ci-test-init.pri) diff --git a/test/tst_datatypes/tst_datatypes.pro b/test/tst_datatypes/tst_datatypes.pro index a690739..ca0be8c 100644 --- a/test/tst_datatypes/tst_datatypes.pro +++ b/test/tst_datatypes/tst_datatypes.pro @@ -16,5 +16,3 @@ HEADERS += \ db.h \ sampletable.h \ tst_datatypes.h - -include($$PWD/../../ci-test-init.pri) diff --git a/test/tst_datetime/tst_datetime.pro b/test/tst_datetime/tst_datetime.pro index 7a9a327..d48e3ae 100644 --- a/test/tst_datetime/tst_datetime.pro +++ b/test/tst_datetime/tst_datetime.pro @@ -17,4 +17,3 @@ HEADERS += \ sampletable.h \ tst_datetime.h -include($$PWD/../../ci-test-init.pri) diff --git a/test/tst_generators/tst_generators.pro b/test/tst_generators/tst_generators.pro index dc81002..97c1cb9 100644 --- a/test/tst_generators/tst_generators.pro +++ b/test/tst_generators/tst_generators.pro @@ -12,5 +12,3 @@ SOURCES += \ HEADERS += \ tst_generators.h - -include($$PWD/../../ci-test-init.pri) diff --git a/test/tst_json/tst_json.pro b/test/tst_json/tst_json.pro index 04f053c..f224c0b 100644 --- a/test/tst_json/tst_json.pro +++ b/test/tst_json/tst_json.pro @@ -15,5 +15,3 @@ HEADERS += \ tst_json.h \ db.h \ sampletable.h - -include($$PWD/../../ci-test-init.pri) diff --git a/test/tst_phrases/tst_phrases.pro b/test/tst_phrases/tst_phrases.pro index d287bac..80a4ed7 100644 --- a/test/tst_phrases/tst_phrases.pro +++ b/test/tst_phrases/tst_phrases.pro @@ -13,4 +13,3 @@ SOURCES += \ HEADERS += \ tst_phrases.h -include($$PWD/../../ci-test-init.pri) diff --git a/test/tst_quuid/tst_quuid.pro b/test/tst_quuid/tst_quuid.pro index da1afd9..627d2db 100644 --- a/test/tst_quuid/tst_quuid.pro +++ b/test/tst_quuid/tst_quuid.pro @@ -17,4 +17,3 @@ HEADERS += \ test.h \ tst_uuid.h -include($$PWD/../../ci-test-init.pri) diff --git a/test/tst_upgrades/tst_upgrades.pro b/test/tst_upgrades/tst_upgrades.pro index 8493a14..7c1e5be 100644 --- a/test/tst_upgrades/tst_upgrades.pro +++ b/test/tst_upgrades/tst_upgrades.pro @@ -23,4 +23,3 @@ HEADERS += \ db3.h \ table3.h -include($$PWD/../../ci-test-init.pri) From c8b8b0d2b517c5889fafe7bfdd15188c5f37ca25 Mon Sep 17 00:00:00 2001 From: Hamed Masafi Date: Tue, 28 Jul 2020 17:10:53 +0430 Subject: [PATCH 2/4] Dev (#104) * appveyor fixed [skip ci] (#52) * update appveyor * update appveyor * update appveyor * update appveyor * update appveyor * update appveyor * update appveyor * update appveyor * remove % from variable name * add cotation to variable call * path correction * path correction * path correction * path correction * removed test script * md fix [slip ci] * ready to merge [skip ci] * fix: symbol export errors on msvc --- 3rdparty/serializer | 2 +- README.md | 2 +- src/bulkinserter.cpp | 2 +- src/bulkinserter.h | 2 +- src/changelogtable.h | 2 +- src/database_p.h | 2 +- src/databasemodel.h | 2 +- src/defines.h | 18 +++++-- src/generators/mysqlgenerator.h | 2 +- src/generators/postgresqlgenerator.h | 2 +- src/generators/sqlgeneratorbase_p.h | 2 +- src/generators/sqlitegenerator.h | 2 +- src/generators/sqlservergenerator.h | 2 +- src/phrases/conditionalphrase.cpp | 2 +- src/phrases/conditionalphrase.h | 27 +++++----- src/phrases/fieldphrase.h | 28 ++++++---- src/phrases/numericphrase.h | 43 +++++++-------- src/query.h | 2 +- src/query_p.h | 2 +- src/querybase_p.h | 2 +- src/sqlmodel_p.h | 2 +- src/src.pri | 1 - src/src.pro | 72 ++++++++++++++++++++++++-- src/tablemodel.h | 2 +- src/tableset.h | 2 +- src/tablesetbase_p.h | 2 +- test/common/nut-lib.pri | 7 +-- test/tst_basic/tst_basic.pro | 1 - test/tst_benckmark/tst_benckmark.pro | 1 - test/tst_datatypes/tst_datatypes.pro | 2 - test/tst_datetime/tst_datetime.pro | 1 - test/tst_generators/tst_generators.pro | 2 - test/tst_json/tst_json.pro | 2 - test/tst_phrases/tst_phrases.pro | 1 - test/tst_quuid/tst_quuid.pro | 1 - test/tst_upgrades/tst_upgrades.pro | 1 - 36 files changed, 158 insertions(+), 90 deletions(-) diff --git a/3rdparty/serializer b/3rdparty/serializer index 51500a4..5b30b13 160000 --- a/3rdparty/serializer +++ b/3rdparty/serializer @@ -1 +1 @@ -Subproject commit 51500a497933444196942ee0db6628338a0422af +Subproject commit 5b30b13af9b9537d4226c922d04106dc4ba0595b diff --git a/README.md b/README.md index 57b9e59..b30026d 100644 --- a/README.md +++ b/README.md @@ -33,4 +33,4 @@ Bitcoin address: 1Dn1WHKkaxanXe4cTGDk4cFRRABxLUpEVj ![Wallet address](btc-qr.png) -For more information read [Wiki](wiki). +For more information read [Wiki](wiki). \ No newline at end of file diff --git a/src/bulkinserter.cpp b/src/bulkinserter.cpp index ddebc4b..4320ac4 100644 --- a/src/bulkinserter.cpp +++ b/src/bulkinserter.cpp @@ -36,7 +36,7 @@ void Nut::BulkInserter::insert(std::initializer_list vars) int Nut::BulkInserter::apply() { - auto sql = _database->sqlGenertor()->insertBulk(_className, _fields, variants); + auto sql = _database->sqlGenerator()->insertBulk(_className, _fields, variants); QSqlQuery q = _database->exec(sql); return q.numRowsAffected(); } diff --git a/src/bulkinserter.h b/src/bulkinserter.h index 734689a..c8b40db 100644 --- a/src/bulkinserter.h +++ b/src/bulkinserter.h @@ -11,7 +11,7 @@ NUT_BEGIN_NAMESPACE class PhraseList; class Database; -class BulkInserter +class NUT_EXPORT BulkInserter { Database *_database; QString _className; diff --git a/src/changelogtable.h b/src/changelogtable.h index 4d580de..e42b61d 100644 --- a/src/changelogtable.h +++ b/src/changelogtable.h @@ -26,7 +26,7 @@ NUT_BEGIN_NAMESPACE -class ChangeLogTable : public Table +class NUT_EXPORT ChangeLogTable : public Table { Q_OBJECT diff --git a/src/database_p.h b/src/database_p.h index c07b0a8..a93f105 100644 --- a/src/database_p.h +++ b/src/database_p.h @@ -30,7 +30,7 @@ NUT_BEGIN_NAMESPACE class ChangeLogTable; -class DatabasePrivate //: public QSharedData +class NUT_EXPORT DatabasePrivate //: public QSharedData { Database *q_ptr; Q_DECLARE_PUBLIC(Database) diff --git a/src/databasemodel.h b/src/databasemodel.h index e32e23a..8afe966 100644 --- a/src/databasemodel.h +++ b/src/databasemodel.h @@ -33,7 +33,7 @@ NUT_BEGIN_NAMESPACE class TableModel; struct RelationModel; -class DatabaseModel : public QList +class NUT_EXPORT DatabaseModel : public QList { QString _databaseClassName; int _version; diff --git a/src/defines.h b/src/defines.h index 24bbd05..b098d11 100644 --- a/src/defines.h +++ b/src/defines.h @@ -31,10 +31,20 @@ #include #include -#ifdef NUT_COMPILE_STATIC -# define NUT_EXPORT +#if defined(NUT_SHARED) || !defined(NUT_STATIC) +# ifdef NUT_STATIC +# error "Both NUT_SHARED and NUT_STATIC defined, please make up your mind" +# endif +# ifndef NUT_SHARED +# define NUT_SHARED +# endif +# if defined(NUT_BUILD_LIB) +# define NUT_EXPORT Q_DECL_EXPORT +# else +# define NUT_EXPORT Q_DECL_IMPORT +# endif #else -# define NUT_EXPORT Q_DECL_EXPORT +# define NUT_EXPORT #endif #define NUT_INFO(type, name, value) \ @@ -45,7 +55,7 @@ Q_CLASSINFO(__nut_NAME_PERFIX type #name #value, \ type "\n" #name "\n" value) -#define NUT_FIELD_PERFIX +#define NUT_FIELD_PREFIX #define NUT_FIELD_POSTFIX Field // Database diff --git a/src/generators/mysqlgenerator.h b/src/generators/mysqlgenerator.h index 4d38fa9..b4bbed3 100644 --- a/src/generators/mysqlgenerator.h +++ b/src/generators/mysqlgenerator.h @@ -26,7 +26,7 @@ NUT_BEGIN_NAMESPACE -class MySqlGenerator : public SqlGeneratorBase +class NUT_EXPORT MySqlGenerator : public SqlGeneratorBase { public: explicit MySqlGenerator(Database *parent = nullptr); diff --git a/src/generators/postgresqlgenerator.h b/src/generators/postgresqlgenerator.h index 3c1188c..49de129 100644 --- a/src/generators/postgresqlgenerator.h +++ b/src/generators/postgresqlgenerator.h @@ -26,7 +26,7 @@ NUT_BEGIN_NAMESPACE -class PostgreSqlGenerator : public SqlGeneratorBase +class NUT_EXPORT PostgreSqlGenerator : public SqlGeneratorBase { private: bool readInsideParentese(QString &text, QString &out); diff --git a/src/generators/sqlgeneratorbase_p.h b/src/generators/sqlgeneratorbase_p.h index 82ba188..821195f 100644 --- a/src/generators/sqlgeneratorbase_p.h +++ b/src/generators/sqlgeneratorbase_p.h @@ -37,7 +37,7 @@ class DatabaseModel; class TableModel; class Database; struct RelationModel; -class SqlGeneratorBase : public QObject +class NUT_EXPORT SqlGeneratorBase : public QObject { // Q_OBJECT diff --git a/src/generators/sqlitegenerator.h b/src/generators/sqlitegenerator.h index b0f2f0e..4d2a4ff 100644 --- a/src/generators/sqlitegenerator.h +++ b/src/generators/sqlitegenerator.h @@ -26,7 +26,7 @@ NUT_BEGIN_NAMESPACE -class SqliteGenerator : public SqlGeneratorBase +class NUT_EXPORT SqliteGenerator : public SqlGeneratorBase { public: explicit SqliteGenerator(Database *parent = nullptr); diff --git a/src/generators/sqlservergenerator.h b/src/generators/sqlservergenerator.h index 10c18de..3618f80 100644 --- a/src/generators/sqlservergenerator.h +++ b/src/generators/sqlservergenerator.h @@ -26,7 +26,7 @@ NUT_BEGIN_NAMESPACE -class SqlServerGenerator : public SqlGeneratorBase +class NUT_EXPORT SqlServerGenerator : public SqlGeneratorBase { public: explicit SqlServerGenerator(Database *parent = nullptr); diff --git a/src/phrases/conditionalphrase.cpp b/src/phrases/conditionalphrase.cpp index 6201762..1fe6b27 100644 --- a/src/phrases/conditionalphrase.cpp +++ b/src/phrases/conditionalphrase.cpp @@ -35,7 +35,7 @@ ConditionalPhrase::ConditionalPhrase(const ConditionalPhrase &other) } #ifdef Q_COMPILER_RVALUE_REFS -ConditionalPhrase::ConditionalPhrase(const ConditionalPhrase &&other) +ConditionalPhrase::ConditionalPhrase(ConditionalPhrase &&other) { this->data = qMove(other.data); } diff --git a/src/phrases/conditionalphrase.h b/src/phrases/conditionalphrase.h index 8f7f9a5..49c6aaa 100644 --- a/src/phrases/conditionalphrase.h +++ b/src/phrases/conditionalphrase.h @@ -33,6 +33,7 @@ ConditionalPhrase operator op(const QVariant &other) \ { \ return ConditionalPhrase(this, cond, other); \ } + class NUT_EXPORT ConditionalPhrase { public: @@ -42,7 +43,7 @@ public: ConditionalPhrase(); ConditionalPhrase(const ConditionalPhrase &other); #ifdef Q_COMPILER_RVALUE_REFS - ConditionalPhrase(const ConditionalPhrase &&other); + ConditionalPhrase(ConditionalPhrase &&other); #endif explicit ConditionalPhrase(const PhraseData *data); ConditionalPhrase(AbstractFieldPhrase *, PhraseData::Condition); @@ -69,24 +70,24 @@ public: #define DECLARE_CONDITIONALPHRASE_OPERATORS(op) \ -ConditionalPhrase operator op(const ConditionalPhrase &l, const ConditionalPhrase &r); \ -ConditionalPhrase operator op(const ConditionalPhrase &l, ConditionalPhrase &&r); \ -ConditionalPhrase operator op(ConditionalPhrase &&l, const ConditionalPhrase &r); \ -ConditionalPhrase operator op(ConditionalPhrase &&l, ConditionalPhrase &&r); + ConditionalPhrase NUT_EXPORT operator op(const ConditionalPhrase &l, const ConditionalPhrase &r); \ + ConditionalPhrase NUT_EXPORT operator op(const ConditionalPhrase &l, ConditionalPhrase &&r); \ + ConditionalPhrase NUT_EXPORT operator op(ConditionalPhrase &&l, const ConditionalPhrase &r); \ + ConditionalPhrase NUT_EXPORT operator op(ConditionalPhrase &&l, ConditionalPhrase &&r); DECLARE_CONDITIONALPHRASE_OPERATORS(==) DECLARE_CONDITIONALPHRASE_OPERATORS(&&) DECLARE_CONDITIONALPHRASE_OPERATORS(||) -ConditionalPhrase operator <(AbstractFieldPhrase &l, ConditionalPhrase &&r); -ConditionalPhrase operator <=(AbstractFieldPhrase &l, ConditionalPhrase &&r); -ConditionalPhrase operator >(AbstractFieldPhrase &l, ConditionalPhrase &&r); -ConditionalPhrase operator >=(AbstractFieldPhrase &l, ConditionalPhrase &&r); +ConditionalPhrase NUT_EXPORT operator <(AbstractFieldPhrase &l, ConditionalPhrase &&r); +ConditionalPhrase NUT_EXPORT operator <=(AbstractFieldPhrase &l, ConditionalPhrase &&r); +ConditionalPhrase NUT_EXPORT operator >(AbstractFieldPhrase &l, ConditionalPhrase &&r); +ConditionalPhrase NUT_EXPORT operator >=(AbstractFieldPhrase &l, ConditionalPhrase &&r); -ConditionalPhrase operator <(ConditionalPhrase &&l, ConditionalPhrase &&r); -ConditionalPhrase operator <=(ConditionalPhrase &&l, ConditionalPhrase &&r); -ConditionalPhrase operator >(ConditionalPhrase &&l, ConditionalPhrase &&r); -ConditionalPhrase operator >=(ConditionalPhrase &&l, ConditionalPhrase &&r); +ConditionalPhrase NUT_EXPORT operator <(ConditionalPhrase &&l, ConditionalPhrase &&r); +ConditionalPhrase NUT_EXPORT operator <=(ConditionalPhrase &&l, ConditionalPhrase &&r); +ConditionalPhrase NUT_EXPORT operator >(ConditionalPhrase &&l, ConditionalPhrase &&r); +ConditionalPhrase NUT_EXPORT operator >=(ConditionalPhrase &&l, ConditionalPhrase &&r); NUT_END_NAMESPACE diff --git a/src/phrases/fieldphrase.h b/src/phrases/fieldphrase.h index 6ec3bf4..ff2e223 100644 --- a/src/phrases/fieldphrase.h +++ b/src/phrases/fieldphrase.h @@ -27,27 +27,33 @@ NUT_BEGIN_NAMESPACE -template -class NUT_EXPORT FieldPhrase : public AbstractFieldPhrase +template +class FieldPhrase : public AbstractFieldPhrase { public: FieldPhrase(const char *className, const char *s) : AbstractFieldPhrase(className, s) {} - AssignmentPhrase operator =(const QVariant &other) { - return AssignmentPhrase(this, other); - } - - ConditionalPhrase operator ==(const QVariant &other) { - return ConditionalPhrase(this, PhraseData::Equal, other); - } + virtual ~FieldPhrase() {} + AssignmentPhrase operator =(const QVariant &other); + ConditionalPhrase operator ==(const QVariant &other); }; +template +Q_OUTOFLINE_TEMPLATE AssignmentPhrase FieldPhrase::operator =(const QVariant &other) { + return AssignmentPhrase(this, other); +} + +template +Q_OUTOFLINE_TEMPLATE ConditionalPhrase FieldPhrase::operator ==(const QVariant &other) { + return ConditionalPhrase(this, PhraseData::Equal, other); +} + template<> -class NUT_EXPORT FieldPhrase : public AbstractFieldPhrase +class FieldPhrase : public AbstractFieldPhrase { public: FieldPhrase(const char *className, const char *s) : @@ -75,7 +81,7 @@ public: } template<> -class NUT_EXPORT FieldPhrase : public AbstractFieldPhrase +class FieldPhrase : public AbstractFieldPhrase { public: FieldPhrase(const char *className, const char *s) : diff --git a/src/phrases/numericphrase.h b/src/phrases/numericphrase.h index ab9db31..39cd615 100644 --- a/src/phrases/numericphrase.h +++ b/src/phrases/numericphrase.h @@ -12,23 +12,13 @@ NUT_BEGIN_NAMESPACE return ConditionalPhrase(this, cond, other); \ } -template -class FieldPhrase::value || std::is_integral::value - >::type> - : public AbstractFieldPhrase +class NumericFieldPhrase : public AbstractFieldPhrase { public: - FieldPhrase(const char *className, const char *s) : + NumericFieldPhrase(const char *className, const char *s) : AbstractFieldPhrase(className, s) {} - AssignmentPhrase operator =(const QVariant &other) { - return AssignmentPhrase(this, other); - } - AssignmentPhrase operator =(ConditionalPhrase &&other) { - return AssignmentPhrase(new PhraseData(data, PhraseData::Equal, other.data)); - } ConditionalPhrase between(const QVariant &min, const QVariant &max) { return ConditionalPhrase(this, PhraseData::Between, @@ -65,25 +55,32 @@ public: #define SPECIALIZATION_NUMERIC_TYPE(type) \ template<> \ - class FieldPhrase : public NumericPhrase \ + class FieldPhrase : public NumericFieldPhrase \ { \ public: \ FieldPhrase(const char *className, const char *s) : \ - NumericPhrase(className, s) \ + NumericFieldPhrase(className, s) \ {} \ + AssignmentPhrase operator =(const QVariant &other) { \ + return AssignmentPhrase(this, other); \ + } \ + AssignmentPhrase operator =(ConditionalPhrase &&other) { \ + return AssignmentPhrase(new PhraseData(data, PhraseData::Equal, other.data)); \ + } \ }; -//SPECIALIZATION_NUMERIC_TYPE(qint8) -//SPECIALIZATION_NUMERIC_TYPE(qint16) -//SPECIALIZATION_NUMERIC_TYPE(qint32) -//SPECIALIZATION_NUMERIC_TYPE(qint64) +SPECIALIZATION_NUMERIC_TYPE(qint8) +SPECIALIZATION_NUMERIC_TYPE(qint16) +SPECIALIZATION_NUMERIC_TYPE(qint32) +SPECIALIZATION_NUMERIC_TYPE(qint64) -//SPECIALIZATION_NUMERIC_TYPE(quint8) -//SPECIALIZATION_NUMERIC_TYPE(quint16) -//SPECIALIZATION_NUMERIC_TYPE(quint32) -//SPECIALIZATION_NUMERIC_TYPE(quint64) +SPECIALIZATION_NUMERIC_TYPE(quint8) +SPECIALIZATION_NUMERIC_TYPE(quint16) +SPECIALIZATION_NUMERIC_TYPE(quint32) +SPECIALIZATION_NUMERIC_TYPE(quint64) -//SPECIALIZATION_NUMERIC_TYPE(qreal) +SPECIALIZATION_NUMERIC_TYPE(qreal) +SPECIALIZATION_NUMERIC_TYPE(float) NUT_END_NAMESPACE diff --git a/src/query.h b/src/query.h index 70ff85d..444f4b5 100644 --- a/src/query.h +++ b/src/query.h @@ -49,7 +49,7 @@ NUT_BEGIN_NAMESPACE template - class NUT_EXPORT Query : public QueryBase +class Query : public QueryBase { QueryPrivate *d_ptr; Q_DECLARE_PRIVATE(Query) diff --git a/src/query_p.h b/src/query_p.h index 2b65dfb..aee891c 100644 --- a/src/query_p.h +++ b/src/query_p.h @@ -33,7 +33,7 @@ class Database; class TableSetBase; class QueryBase; struct RelationModel; -class QueryPrivate : public QSharedData { +class NUT_EXPORT QueryPrivate : public QSharedData { QueryBase *q_ptr; Q_DECLARE_PUBLIC(QueryBase) diff --git a/src/querybase_p.h b/src/querybase_p.h index d1066b0..d99e113 100644 --- a/src/querybase_p.h +++ b/src/querybase_p.h @@ -33,7 +33,7 @@ NUT_BEGIN_NAMESPACE //TODO: remove this class class Table; class TableSetBase; -class QueryBase : public QObject +class NUT_EXPORT QueryBase : public QObject { Q_OBJECT diff --git a/src/sqlmodel_p.h b/src/sqlmodel_p.h index 26c7730..7db807e 100644 --- a/src/sqlmodel_p.h +++ b/src/sqlmodel_p.h @@ -10,7 +10,7 @@ NUT_BEGIN_NAMESPACE class SqlModel; class Table; class TableModel; -class SqlModelPrivate : public QSharedData { +class NUT_EXPORT SqlModelPrivate : public QSharedData { public: explicit SqlModelPrivate(SqlModel *parent); diff --git a/src/src.pri b/src/src.pri index 79319e3..502aaaa 100644 --- a/src/src.pri +++ b/src/src.pri @@ -65,5 +65,4 @@ SOURCES += \ $$PWD/phrases/phraselist.cpp \ $$PWD/phrases/datephrase.cpp - include($$PWD/../3rdparty/serializer/src/src.pri) diff --git a/src/src.pro b/src/src.pro index 5f96880..fb87f27 100644 --- a/src/src.pro +++ b/src/src.pro @@ -4,7 +4,73 @@ TARGET = nut TEMPLATE = lib CONFIG += c++11 -DEFINES += QT_DEPRECATED_WARNINGS NUT_COMPILE_STATIC +DEFINES += QT_DEPRECATED_WARNINGS NUT_SHARED NUT_BUILD_LIB -include($$PWD/src.pri) -include($$PWD/../ci-test-init.pri) +DEFINES += NUT_SHARED_POINTER + +HEADERS += \ + $$PWD/generators/sqlgeneratorbase_p.h \ + $$PWD/generators/postgresqlgenerator.h \ + $$PWD/generators/mysqlgenerator.h \ + $$PWD/generators/sqlitegenerator.h \ + $$PWD/generators/sqlservergenerator.h \ + $$PWD/tablesetbasedata.h \ + $$PWD/types/dbgeography.h \ + $$PWD/tableset.h \ + $$PWD/defines_p.h \ + $$PWD/defines.h \ + $$PWD/query.h \ + $$PWD/databasemodel.h \ + $$PWD/changelogtable.h \ + $$PWD/tablesetbase_p.h \ + $$PWD/querybase_p.h \ + $$PWD/tablemodel.h \ + $$PWD/query_p.h \ + $$PWD/table.h \ + $$PWD/database.h \ + $$PWD/database_p.h \ + $$PWD/serializableobject.h \ + $$PWD/sqlmodel.h \ + $$PWD/sqlmodel_p.h \ + $$PWD/phrase.h \ + $$PWD/phrases/abstractfieldphrase.h \ + $$PWD/phrases/assignmentphrase.h \ + $$PWD/phrases/assignmentphraselist.h \ + $$PWD/phrases/conditionalphrase.h \ + $$PWD/phrases/fieldphrase.h \ + $$PWD/phrases/phrasedata.h \ + $$PWD/phrases/phrasedatalist.h \ + $$PWD/phrases/phraselist.h \ + $$PWD/phrases/datephrase.h \ + $$PWD/table_p.h + +SOURCES += \ + $$PWD/generators/sqlgeneratorbase.cpp \ + $$PWD/generators/postgresqlgenerator.cpp \ + $$PWD/generators/mysqlgenerator.cpp \ + $$PWD/generators/sqlitegenerator.cpp \ + $$PWD/generators/sqlservergenerator.cpp \ + $$PWD/types/dbgeography.cpp \ + $$PWD/tableset.cpp \ + $$PWD/query.cpp \ + $$PWD/databasemodel.cpp \ + $$PWD/tablesetbase.cpp \ + $$PWD/changelogtable.cpp \ + $$PWD/querybase.cpp \ + $$PWD/tablemodel.cpp \ + $$PWD/table.cpp \ + $$PWD/database.cpp \ + $$PWD/serializableobject.cpp \ + $$PWD/sqlmodel.cpp \ + $$PWD/phrase.cpp \ + $$PWD/phrases/abstractfieldphrase.cpp \ + $$PWD/phrases/assignmentphrase.cpp \ + $$PWD/phrases/assignmentphraselist.cpp \ + $$PWD/phrases/conditionalphrase.cpp \ + $$PWD/phrases/fieldphrase.cpp \ + $$PWD/phrases/phrasedata.cpp \ + $$PWD/phrases/phrasedatalist.cpp \ + $$PWD/phrases/phraselist.cpp \ + $$PWD/phrases/datephrase.cpp + +include($$PWD/../3rdparty/serializer/src/src.pri) diff --git a/src/tablemodel.h b/src/tablemodel.h index 1fa89ae..f0e3b23 100644 --- a/src/tablemodel.h +++ b/src/tablemodel.h @@ -30,7 +30,7 @@ class QJsonObject; NUT_BEGIN_NAMESPACE class TableModel; -struct FieldModel{ +struct NUT_EXPORT FieldModel{ explicit FieldModel() : name(QString()), defaultValue(QString()) { diff --git a/src/tableset.h b/src/tableset.h index d066584..7153c2e 100644 --- a/src/tableset.h +++ b/src/tableset.h @@ -43,7 +43,7 @@ class BulkInserter; class Database; template -class NUT_EXPORT TableSet : public TableSetBase +class TableSet : public TableSetBase { public: typedef T value_type; diff --git a/src/tablesetbase_p.h b/src/tablesetbase_p.h index f5805ba..9513316 100644 --- a/src/tablesetbase_p.h +++ b/src/tablesetbase_p.h @@ -33,7 +33,7 @@ NUT_BEGIN_NAMESPACE class Table; class Database; class TableSetBaseData; -class TableSetBase : public QObject +class NUT_EXPORT TableSetBase : public QObject { public: diff --git a/test/common/nut-lib.pri b/test/common/nut-lib.pri index 12b9974..d8b2f31 100644 --- a/test/common/nut-lib.pri +++ b/test/common/nut-lib.pri @@ -1,11 +1,12 @@ win32 { - CONFIG(debug,debug|release): LIBDIR = $$absolute_path($$OUT_PWD/../../src/debug) - CONFIG(release,debug|release): LIBDIR = $$absolute_path($$OUT_PWD/../../src/release) + CONFIG(debug,debug|release): LIBDIR = $$absolute_path($$OUT_PWD/../../src/debug) + CONFIG(release,debug|release): LIBDIR = $$absolute_path($$OUT_PWD/../../src/release) } else { - LIBDIR = $$absolute_path($$OUT_PWD/../../src) + LIBDIR = $$absolute_path($$OUT_PWD/../../src) } LIBS += -L$$LIBDIR -lnut INCLUDEPATH += $$PWD/../../src $$PWD/../common DEFINES += NUT_SHARED_POINTER +DEFINES += NUT_PATH=\\\"$$PWD/../../\\\" diff --git a/test/tst_basic/tst_basic.pro b/test/tst_basic/tst_basic.pro index 24ffb66..c2e5ca2 100644 --- a/test/tst_basic/tst_basic.pro +++ b/test/tst_basic/tst_basic.pro @@ -24,4 +24,3 @@ HEADERS += \ ../common/score.h \ tst_basic.h -include($$PWD/../../ci-test-init.pri) diff --git a/test/tst_benckmark/tst_benckmark.pro b/test/tst_benckmark/tst_benckmark.pro index 48bd4f5..19fd248 100644 --- a/test/tst_benckmark/tst_benckmark.pro +++ b/test/tst_benckmark/tst_benckmark.pro @@ -24,4 +24,3 @@ HEADERS += \ ../common/score.h \ tst_benchmark.h -include($$PWD/../../ci-test-init.pri) diff --git a/test/tst_datatypes/tst_datatypes.pro b/test/tst_datatypes/tst_datatypes.pro index a690739..ca0be8c 100644 --- a/test/tst_datatypes/tst_datatypes.pro +++ b/test/tst_datatypes/tst_datatypes.pro @@ -16,5 +16,3 @@ HEADERS += \ db.h \ sampletable.h \ tst_datatypes.h - -include($$PWD/../../ci-test-init.pri) diff --git a/test/tst_datetime/tst_datetime.pro b/test/tst_datetime/tst_datetime.pro index 7a9a327..d48e3ae 100644 --- a/test/tst_datetime/tst_datetime.pro +++ b/test/tst_datetime/tst_datetime.pro @@ -17,4 +17,3 @@ HEADERS += \ sampletable.h \ tst_datetime.h -include($$PWD/../../ci-test-init.pri) diff --git a/test/tst_generators/tst_generators.pro b/test/tst_generators/tst_generators.pro index dc81002..97c1cb9 100644 --- a/test/tst_generators/tst_generators.pro +++ b/test/tst_generators/tst_generators.pro @@ -12,5 +12,3 @@ SOURCES += \ HEADERS += \ tst_generators.h - -include($$PWD/../../ci-test-init.pri) diff --git a/test/tst_json/tst_json.pro b/test/tst_json/tst_json.pro index 04f053c..f224c0b 100644 --- a/test/tst_json/tst_json.pro +++ b/test/tst_json/tst_json.pro @@ -15,5 +15,3 @@ HEADERS += \ tst_json.h \ db.h \ sampletable.h - -include($$PWD/../../ci-test-init.pri) diff --git a/test/tst_phrases/tst_phrases.pro b/test/tst_phrases/tst_phrases.pro index d287bac..80a4ed7 100644 --- a/test/tst_phrases/tst_phrases.pro +++ b/test/tst_phrases/tst_phrases.pro @@ -13,4 +13,3 @@ SOURCES += \ HEADERS += \ tst_phrases.h -include($$PWD/../../ci-test-init.pri) diff --git a/test/tst_quuid/tst_quuid.pro b/test/tst_quuid/tst_quuid.pro index da1afd9..627d2db 100644 --- a/test/tst_quuid/tst_quuid.pro +++ b/test/tst_quuid/tst_quuid.pro @@ -17,4 +17,3 @@ HEADERS += \ test.h \ tst_uuid.h -include($$PWD/../../ci-test-init.pri) diff --git a/test/tst_upgrades/tst_upgrades.pro b/test/tst_upgrades/tst_upgrades.pro index 8493a14..7c1e5be 100644 --- a/test/tst_upgrades/tst_upgrades.pro +++ b/test/tst_upgrades/tst_upgrades.pro @@ -23,4 +23,3 @@ HEADERS += \ db3.h \ table3.h -include($$PWD/../../ci-test-init.pri) From 8a74db4e14f0e093b6835d40afc488fa2c842038 Mon Sep 17 00:00:00 2001 From: Hamed Masafi Date: Tue, 28 Jul 2020 17:32:13 +0430 Subject: [PATCH 3/4] Update qt.yml --- .github/workflows/qt.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/qt.yml b/.github/workflows/qt.yml index 58f7997..7d1a851 100644 --- a/.github/workflows/qt.yml +++ b/.github/workflows/qt.yml @@ -67,7 +67,7 @@ jobs: repo_token: ${{secrets.GITHUB_TOKEN}} directory: ${{steps.qt.outputs.outdir}} platform: ${{matrix.platform}} - asset_name: qtautoupdater-${{matrix.platform}}-${{matrix.version}} + asset_name: nut-${{matrix.platform}}-${{matrix.version}} tag: ${{github.ref}} overwrite: true From cd8f8af92297229c73f5d8cf7a1bc38cec06c406 Mon Sep 17 00:00:00 2001 From: Hamed Masafi Date: Wed, 29 Jul 2020 09:30:12 +0430 Subject: [PATCH 4/4] fix: upload name in build workflow --- .github/workflows/qt.yml | 7 +++++-- src/phrases/datephrase.h | 1 - 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/qt.yml b/.github/workflows/qt.yml index 7d1a851..fa162c3 100644 --- a/.github/workflows/qt.yml +++ b/.github/workflows/qt.yml @@ -59,8 +59,11 @@ jobs: run: | qmake CONFIG+=install_ok QT_PLATFORM=${{matrix.platform}} "QT_TOOL_PATH=${{steps.qt.outputs.qtdir}}/Tools" nut.pro ${{steps.qt.outputs.make}} qmake_all - - - name: upload module to releases + - name: make lib + run: | + ${{steps.qt.outputs.make}} + ${{steps.qt.outputs.make}} INSTALL_ROOT="${{steps.qt.outputs.installdir}}" install + - name: upload lib to releases uses: Skycoder42/action-upload-release@master if: startsWith(github.ref, 'refs/tags/') with: diff --git a/src/phrases/datephrase.h b/src/phrases/datephrase.h index 8d3dbd3..3263e92 100644 --- a/src/phrases/datephrase.h +++ b/src/phrases/datephrase.h @@ -104,7 +104,6 @@ public: ConditionalPhrase addMonths(int months); ConditionalPhrase addDays(int days); - ConditionalPhrase addHours(int hours); ConditionalPhrase addMinutes(int minutes); ConditionalPhrase addSeconds(int seconds);