aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2020-06-16 13:48:14 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2020-06-16 12:43:00 +0000
commit0861ba2fc9af3631aa6707fa1190d6d9fccae4e8 (patch)
tree03694f8bf218ca31618cc71876fe9e5391e895a6
parent241b24486ed097e93a8473efa65b3fc1d7e705b1 (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.qbs49
-rw-r--r--src/libs/sqlite/sqlite.qbs54
-rw-r--r--tests/unit/unittest/unittest.qbs4
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",