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>
This commit is contained in:
Marco Bubke
2023-06-28 15:22:23 +02:00
parent b65ba2f702
commit f81ef9b2d6
7 changed files with 26 additions and 18 deletions

View File

@@ -27,10 +27,6 @@
#include <string.h>
#if defined(SQLITE_STATIC_LIBRARY) || defined(SQLITEC_STATIC_LIBRARY)
#include "sqlite_static_config.h"
#endif
#if __has_include(<unistd.h>)
#include <unistd.h>
#endif

View File

@@ -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>
)