diff options
author | Marco Bubke <marco.bubke@qt.io> | 2023-06-28 15:22:23 +0200 |
---|---|---|
committer | Marco Bubke <marco.bubke@qt.io> | 2023-06-28 16:40:49 +0000 |
commit | f81ef9b2d6c010c8d9e0952f1ed6d308567bb63f (patch) | |
tree | 324e9892d73ed8f1080ba9862a50ba95c1487a1b /src/libs/sqlite | |
parent | b65ba2f7028cdf2ed9584dc51ed4757c028a4f6a (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.txt | 30 |
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> +) |