diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2020-06-16 13:48:14 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2020-06-16 12:43:00 +0000 |
commit | 0861ba2fc9af3631aa6707fa1190d6d9fccae4e8 (patch) | |
tree | 03694f8bf218ca31618cc71876fe9e5391e895a6 | |
parent | 241b24486ed097e93a8473efa65b3fc1d7e705b1 (diff) |
sqlite: Fix qbs build
Exporting the full sqlite interface can lead to run-time conflicts with
the system sqlite that Qt's SQL support pulls in.
So re-build the sources for the unit test, as in the qmake build.
Change-Id: I8394b9c0aa4e21704bc84600f40b8f5d706ad66d
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
-rw-r--r-- | qbs/modules/sqlite_sources/sqlite-sources.qbs | 49 | ||||
-rw-r--r-- | src/libs/sqlite/sqlite.qbs | 54 | ||||
-rw-r--r-- | tests/unit/unittest/unittest.qbs | 4 |
3 files changed, 56 insertions, 51 deletions
diff --git a/qbs/modules/sqlite_sources/sqlite-sources.qbs b/qbs/modules/sqlite_sources/sqlite-sources.qbs new file mode 100644 index 0000000000..559c3ec865 --- /dev/null +++ b/qbs/modules/sqlite_sources/sqlite-sources.qbs @@ -0,0 +1,49 @@ +Module { + property bool buildSharedLib: true + + readonly property string libsDir: path + "/../../../src/libs" + readonly property string sqliteDir3rdParty: libsDir + "/3rdparty/sqlite" + readonly property string sqliteDir: libsDir + "/sqlite" + readonly property string includeDir: sqliteDir + + Depends { name: "cpp" } + + cpp.defines: [ + "SQLITE_THREADSAFE=2", "SQLITE_ENABLE_FTS5", "SQLITE_ENABLE_UNLOCK_NOTIFY", + "SQLITE_ENABLE_JSON1", "SQLITE_DEFAULT_FOREIGN_KEYS=1", "SQLITE_TEMP_STORE=2", + "SQLITE_DEFAULT_WAL_SYNCHRONOUS=1", "SQLITE_MAX_WORKER_THREADS", "SQLITE_DEFAULT_MEMSTATUS=0", + "SQLITE_OMIT_DEPRECATED", "SQLITE_OMIT_DECLTYPE", + "SQLITE_MAX_EXPR_DEPTH=0", "SQLITE_OMIT_SHARED_CACHE", "SQLITE_USE_ALLOCA", + "SQLITE_ENABLE_MEMORY_MANAGEMENT", "SQLITE_ENABLE_NULL_TRIM", "SQLITE_OMIT_EXPLAIN", + "SQLITE_OMIT_LOAD_EXTENSION", "SQLITE_OMIT_UTF16", "SQLITE_DQS=0", + "SQLITE_ENABLE_STAT4", "HAVE_ISNAN", "HAVE_FDATASYNC", "HAVE_MALLOC_USABLE_SIZE", + "SQLITE_DEFAULT_MMAP_SIZE=268435456", "SQLITE_CORE", "SQLITE_ENABLE_SESSION", "SQLITE_ENABLE_PREUPDATE_HOOK", + "SQLITE_LIKE_DOESNT_MATCH_BLOBS", + ].concat(buildSharedLib ? "BUILD_SQLITE_LIBRARY" : "BUILD_SQLITE_STATIC_LIBRARY") + + cpp.dynamicLibraries: base.concat((qbs.targetOS.contains("unix") && !qbs.targetOS.contains("bsd")) + ? ["dl", "pthread"] : []) + cpp.includePaths: base.concat([sqliteDir3rdParty, sqliteDir]) + cpp.optimization: "fast" + + Group { + name: "wrapper sources" + prefix: sqlite_sources.sqliteDir + '/' + files: [ + "*.h", + "*.cpp" + ] + } + + Group { + name: "sqlite sources" + prefix: sqlite_sources.sqliteDir3rdParty + '/' + cpp.warningLevel: "none" + files: [ + "sqlite3.c", + "sqlite3.h", + "sqlite3ext.h", + "carray.c" + ] + } +} diff --git a/src/libs/sqlite/sqlite.qbs b/src/libs/sqlite/sqlite.qbs index bf3d485bee..f5f0e182ab 100644 --- a/src/libs/sqlite/sqlite.qbs +++ b/src/libs/sqlite/sqlite.qbs @@ -3,57 +3,11 @@ import qbs 1.0 QtcLibrary { name: "Sqlite" - property string exportMacro: qbs.targetOS.contains("windows") - ? '__declspec(dllexport)' - : '__attribute__((visibility("default")))' - property string importMacro: qbs.targetOS.contains("windows") - ? '__declspec(dllimport)' - : exportMacro - - cpp.includePaths: base.concat(["../3rdparty/sqlite", "."]) - property stringList sharedDefines: [ - "SQLITE_THREADSAFE=2", "SQLITE_ENABLE_FTS5", "SQLITE_ENABLE_UNLOCK_NOTIFY", - "SQLITE_ENABLE_JSON1", "SQLITE_DEFAULT_FOREIGN_KEYS=1", "SQLITE_TEMP_STORE=2", - "SQLITE_DEFAULT_WAL_SYNCHRONOUS=1", "SQLITE_MAX_WORKER_THREADS", "SQLITE_DEFAULT_MEMSTATUS=0", - "SQLITE_OMIT_DEPRECATED", "SQLITE_OMIT_DECLTYPE", - "SQLITE_MAX_EXPR_DEPTH=0", "SQLITE_OMIT_SHARED_CACHE", "SQLITE_USE_ALLOCA", - "SQLITE_ENABLE_MEMORY_MANAGEMENT", "SQLITE_ENABLE_NULL_TRIM", "SQLITE_OMIT_EXPLAIN", - "SQLITE_OMIT_LOAD_EXTENSION", "SQLITE_OMIT_UTF16", "SQLITE_DQS=0", - "SQLITE_ENABLE_STAT4", "HAVE_ISNAN", "HAVE_FDATASYNC", "HAVE_MALLOC_USABLE_SIZE", - "SQLITE_DEFAULT_MMAP_SIZE=268435456", "SQLITE_CORE", "SQLITE_ENABLE_SESSION", "SQLITE_ENABLE_PREUPDATE_HOOK", - "SQLITE_LIKE_DOESNT_MATCH_BLOBS", - ] - cpp.defines: base.concat(sharedDefines).concat(["BUILD_SQLITE_LIBRARY", - "SQLITE_API=" + exportMacro]) - cpp.optimization: "fast" - cpp.dynamicLibraries: base.concat((qbs.targetOS.contains("unix") && !qbs.targetOS.contains("bsd")) - ? ["dl", "pthread"] : []) - - - Group { - name: "ThirdPartySqlite" - prefix: "../3rdparty/sqlite/" - cpp.warningLevel: "none" - files: [ - "sqlite3.c", - "sqlite3.h", - "sqlite3ext.h", - "carray.c" - ] - } - - Group { - files: [ - "*.h", - "*.cpp" - ] - } + Depends { name: "sqlite_sources" } + property string exportedIncludeDir: sqlite_sources.includeDir Export { - cpp.defines: product.sharedDefines.concat("SQLITE_API=" + product.importMacro) - cpp.systemIncludePaths: base.concat([ - "../3rdparty/sqlite", - "." - ]) + Depends { name: "cpp" } + cpp.includePaths: product.exportedIncludeDir } } diff --git a/tests/unit/unittest/unittest.qbs b/tests/unit/unittest/unittest.qbs index 094eb0c207..d00ec93b26 100644 --- a/tests/unit/unittest/unittest.qbs +++ b/tests/unit/unittest/unittest.qbs @@ -13,7 +13,7 @@ CppApplication { Depends { name: "libclang"; required: false } Depends { name: "clang_defines" } - Depends { name: "Sqlite" } + Depends { name: "sqlite_sources" } Depends { name: "Core" } Depends { name: "CPlusPlus" } Depends { name: "yaml-cpp" } @@ -25,6 +25,8 @@ CppApplication { Depends { name: "gtest"; required: false } Depends { name: "gmock"; required: false } + sqlite_sources.buildSharedLib: false + cpp.defines: { var defines = [ "QT_NO_CAST_TO_ASCII", |