aboutsummaryrefslogtreecommitdiffstats
path: root/src/libs/sqlite
diff options
context:
space:
mode:
authorMarco Bubke <marco.bubke@qt.io>2023-06-28 15:22:23 +0200
committerMarco Bubke <marco.bubke@qt.io>2023-06-28 16:40:49 +0000
commitf81ef9b2d6c010c8d9e0952f1ed6d308567bb63f (patch)
tree324e9892d73ed8f1080ba9862a50ba95c1487a1b /src/libs/sqlite
parentb65ba2f7028cdf2ed9584dc51ed4757c028a4f6a (diff)
Sqlite: Don't link to the internal Sqlite library
If you link to the internal Sqlite library you link actually twice. That leads to strange bugs because you have an uninitialized object file. The static linking workaround is now moved to cmake. Change-Id: I51d966a623a18486ce5870d898999f3ce139f092 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Diffstat (limited to 'src/libs/sqlite')
-rw-r--r--src/libs/sqlite/CMakeLists.txt30
1 files changed, 21 insertions, 9 deletions
diff --git a/src/libs/sqlite/CMakeLists.txt b/src/libs/sqlite/CMakeLists.txt
index 4c7cd774c6..aa33171bab 100644
--- a/src/libs/sqlite/CMakeLists.txt
+++ b/src/libs/sqlite/CMakeLists.txt
@@ -1,8 +1,7 @@
-add_qtc_library(SqliteC OBJECT
+add_qtc_library(SqliteInternal OBJECT
PROPERTIES AUTOMOC OFF AUTOUIC OFF QT_COMPILE_OPTIONS_DISABLE_WARNINGS ON
DEFINES SQLITE_CORE SQLITE_CUSTOM_INCLUDE=config.h $<$<CONFIG:Debug>:SQLITE_DEBUG>
- PROPERTIES COMPILE_OPTIONS $<IF:$<CXX_COMPILER_ID:MSVC>,/FIconfig.h,-includeconfig.h>
- PUBLIC_INCLUDES
+ INCLUDES
../3rdparty/sqlite
SOURCES
../3rdparty/sqlite
@@ -11,12 +10,26 @@ add_qtc_library(SqliteC OBJECT
../3rdparty/sqlite/sqlite3ext.h
../3rdparty/sqlite/carray.c
../3rdparty/sqlite/config.h
+ ../3rdparty/sqlite/sqlite_static_config.h
../3rdparty/sqlite/sqlite.h
)
+extend_qtc_library(SqliteInternal
+ CONDITION QTC_STATIC_BUILD
+ PROPERTIES COMPILE_OPTIONS $<IF:$<CXX_COMPILER_ID:MSVC>,/FIsqlite_static_config.h,-includesqlite_static_config.h>
+)
+
+if (APPLE)
+ extend_qtc_library(SqliteInternal DEFINES _BSD_SOURCE)
+elseif (UNIX)
+ extend_qtc_library(SqliteInternal DEFINES _POSIX_C_SOURCE=200809L _GNU_SOURCE _DEFAULT_SOURCE)
+endif()
+
add_qtc_library(Sqlite
PROPERTIES AUTOMOC OFF AUTOUIC OFF
- DEPENDS Qt::Core Threads::Threads ${CMAKE_DL_LIBS} SqliteC
+ DEPENDS Qt::Core Threads::Threads ${CMAKE_DL_LIBS} SqliteInternal
+ INCLUDES
+ ../3rdparty/sqlite
PUBLIC_INCLUDES
"${CMAKE_CURRENT_LIST_DIR}"
DEFINES SQLITE_CUSTOM_INCLUDE=config.h $<$<CONFIG:Debug>:SQLITE_REVERSE>
@@ -53,8 +66,7 @@ add_qtc_library(Sqlite
sqliteids.h
)
-if (APPLE)
- extend_qtc_library(SqliteC DEFINES _BSD_SOURCE)
-elseif (UNIX)
- extend_qtc_library(SqliteC DEFINES _POSIX_C_SOURCE=200809L _GNU_SOURCE _DEFAULT_SOURCE)
-endif()
+extend_qtc_library(Sqlite
+ CONDITION QTC_STATIC_BUILD
+ PROPERTIES COMPILE_OPTIONS $<IF:$<CXX_COMPILER_ID:MSVC>,/FIsqlite_static_config.h,-includesqlite_static_config.h>
+)