diff --git a/src/libs/sqlite/sqlite.qbs b/src/libs/sqlite/sqlite.qbs index b03ce9b975f..bf3d485beee 100644 --- a/src/libs/sqlite/sqlite.qbs +++ b/src/libs/sqlite/sqlite.qbs @@ -3,9 +3,15 @@ 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", "."]) - cpp.defines: base.concat([ - "BUILD_SQLITE_LIBRARY", + 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", @@ -15,8 +21,10 @@ QtcLibrary { "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" - ]) + "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"] : []) @@ -42,7 +50,8 @@ QtcLibrary { } Export { - cpp.includePaths: base.concat([ + cpp.defines: product.sharedDefines.concat("SQLITE_API=" + product.importMacro) + cpp.systemIncludePaths: base.concat([ "../3rdparty/sqlite", "." ])