diff --git a/CMakeLists.txt b/CMakeLists.txt index b46503fc..9e6a2cf7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -255,9 +255,9 @@ endif() if(MSVC) add_compile_options("/W4") elseif(CMAKE_CXX_COMPILER_ID MATCHES "Clang|GNU") - add_compile_options("-Wuninitialized" "-Wold-style-cast" "-Werror") + add_compile_options("-Wuninitialized" "-Wold-style-cast") else() - message(WARNING "Unknown compiler: '${CMAKE_CXX_COMPILER_ID}' No warning flags enabled.") + message(WARNING "Unknown compiler: '${CMAKE_CXX_COMPILER_ID}' - No warning flags enabled.") endif() # Add linking directories: diff --git a/CMakePresets.json b/CMakePresets.json index 83a3f639..6bde8f3b 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -20,6 +20,13 @@ "CMAKE_BUILD_TYPE": "Debug" } }, + { + "name": "relwithdebinfo-config", + "hidden": true, + "cacheVariables": { + "CMAKE_BUILD_TYPE": "RelWithDebInfo" + } + }, { "name": "release-config", "hidden": true, @@ -75,6 +82,9 @@ "type": "equals", "lhs": "${hostSystemName}", "rhs": "Linux" + }, + "cacheVariables": { + "CMAKE_CXX_FLAGS_INIT": "-Werror" } }, { @@ -88,6 +98,17 @@ "description": "Create a debug build using the Clang toolchain for Linux", "binaryDir": "${sourceDir}/build/clang-debug" }, + { + "name": "linux-clang-relwithdebinfo", + "inherits": [ + "linux-config", + "clang-config", + "relwithdebinfo-config" + ], + "displayName": "[RelWithDebInfo] Linux (Clang)", + "description": "Create a release build with debug info using the Clang toolchain for Linux", + "binaryDir": "${sourceDir}/build/clang-relwithdebinfo" + }, { "name": "linux-clang-release", "inherits": [ @@ -110,6 +131,17 @@ "description": "Create a debug build using the GNU toolchain for Linux", "binaryDir": "${sourceDir}/build/gnu-debug" }, + { + "name": "linux-gnu-relwithdebinfo", + "inherits": [ + "linux-config", + "gnu-config", + "relwithdebinfo-config" + ], + "displayName": "[RelWithDebInfo] Linux (GNU)", + "description": "Create a release build with debug info using the GNU toolchain for Linux", + "binaryDir": "${sourceDir}/build/gnu-relwithdebinfo" + }, { "name": "linux-gnu-release", "inherits": [ @@ -150,6 +182,14 @@ "configuration": "Debug", "jobs": 2 }, + { + "name": "windows-msvc-relwithdebinfo", + "configurePreset": "windows-msvc", + "displayName": "[RelWithDebInfo] Windows (MSVC)", + "description": "This preset is used to build in debug mode using the MSVC toolchain on Windows", + "configuration": "RelWithDebInfo", + "jobs": 2 + }, { "name": "windows-msvc-release", "configurePreset": "windows-msvc", @@ -166,6 +206,14 @@ "configuration": "Debug", "jobs": 2 }, + { + "name": "linux-clang-relwithdebinfo", + "configurePreset": "linux-clang-relwithdebinfo", + "displayName": "[RelWithDebInfo] Linux (Clang)", + "description": "This preset is used to build in release mode with debug info using the Clang toolchain on Linux", + "configuration": "RelWithDebInfo", + "jobs": 2 + }, { "name": "linux-clang-release", "configurePreset": "linux-clang-release", @@ -182,6 +230,14 @@ "configuration": "Debug", "jobs": 2 }, + { + "name": "linux-gnu-relwithdebinfo", + "configurePreset": "linux-gnu-relwithdebinfo", + "displayName": "[RelWithDebInfo] Linux (GNU)", + "description": "This preset is used to build in release mode with debug info using the GNU toolchain on Linux", + "configuration": "RelWithDebInfo", + "jobs": 2 + }, { "name": "linux-gnu-release", "configurePreset": "linux-gnu-release", @@ -195,6 +251,15 @@ "configurePreset": "macos", "displayName": "[Debug] MacOS", "description": "This preset is used to build in debug mode on MacOS", + "configuration": "Debug", + "jobs": 2 + }, + { + "name": "macos-relwithdebinfo", + "configurePreset": "macos", + "displayName": "[RelWithDebInfo] MacOS", + "description": "This preset is used to build in release mode with debug info on MacOS", + "configuration": "RelWithDebInfo", "jobs": 2 }, { @@ -202,6 +267,7 @@ "configurePreset": "macos", "displayName": "[Release] MacOS", "description": "This preset is used to build in release mode on MacOS", + "configuration": "Release", "jobs": 2 } ], @@ -235,6 +301,14 @@ "description": "Runs all tests on a Windows configuration", "configuration": "Debug" }, + { + "name": "windows-msvc-relwithdebinfo", + "inherits": "windows-msvc-test", + "configurePreset": "windows-msvc", + "displayName": "[RelWithDebInfo] Windows (MSVC)", + "description": "Runs all tests on a Windows configuration", + "configuration": "RelWithDebInfo" + }, { "name": "windows-msvc-release", "inherits": "windows-msvc-test", @@ -251,6 +325,14 @@ "description": "Runs all tests on a Linux Clang configuration", "configuration": "Release" }, + { + "name": "linux-clang-relwithdebinfo", + "inherits": "default", + "configurePreset": "linux-clang-relwithdebinfo", + "displayName": "[RelWithDebInfo] Linux (Clang)", + "description": "Runs all tests on a Linux Clang configuration", + "configuration": "RelWithDebInfo" + }, { "name": "linux-clang-release", "inherits": "default", @@ -267,6 +349,14 @@ "description": "Runs all tests on a Linux GNU configuration", "configuration": "Release" }, + { + "name": "linux-gnu-relwithdebinfo", + "inherits": "default", + "configurePreset": "linux-gnu-relwithdebinfo", + "displayName": "[RelWithDebInfo] Linux (GNU)", + "description": "Runs all tests on a Linux GNU configuration", + "configuration": "RelWithDebInfo" + }, { "name": "linux-gnu-release", "inherits": "default", @@ -283,6 +373,14 @@ "description": "Runs all tests on a MacOS configuration", "configuration": "Debug" }, + { + "name": "macos-relwithdebinfo", + "inherits": "default", + "configurePreset": "macos", + "displayName": "[RelWithDebInfo] MacOS", + "description": "Runs all tests on a MacOS configuration", + "configuration": "RelWithDebInfo" + }, { "name": "macos-release", "inherits": "default", @@ -329,6 +427,25 @@ } ] }, + { + "name": "windows-msvc-relwithdebinfo", + "displayName": "[RelWithDebInfo] Windows (MSVC)", + "description": "MSVC release with debug info workflow preset for Windows", + "steps": [ + { + "type": "configure", + "name": "windows-msvc" + }, + { + "type": "build", + "name": "windows-msvc-relwithdebinfo" + }, + { + "type": "test", + "name": "windows-msvc-relwithdebinfo" + } + ] + }, { "name": "ci-windows-2022", "displayName": "[Release] Windows (MSVC)", @@ -367,6 +484,25 @@ } ] }, + { + "name": "linux-gnu-relwithdebinfo", + "displayName": "[RelWithDebInfo] Linux (GNU)", + "description": "GNU release with debug info workflow preset for Linux", + "steps": [ + { + "type": "configure", + "name": "linux-gnu-relwithdebinfo" + }, + { + "type": "build", + "name": "linux-gnu-relwithdebinfo" + }, + { + "type": "test", + "name": "linux-gnu-relwithdebinfo" + } + ] + }, { "name": "ci-ubuntu-22.04", "displayName": "[Release] Linux (GNU)", @@ -405,6 +541,25 @@ } ] }, + { + "name": "linux-clang-relwithdebinfo", + "displayName": "[RelWithDebInfo] Linux (Clang)", + "description": "Clang release with debug info workflow preset for Linux", + "steps": [ + { + "type": "configure", + "name": "linux-clang-relwithdebinfo" + }, + { + "type": "build", + "name": "linux-clang-relwithdebinfo" + }, + { + "type": "test", + "name": "linux-clang-relwithdebinfo" + } + ] + }, { "name": "linux-clang-release", "displayName": "[Release] Linux (Clang)", @@ -443,6 +598,25 @@ } ] }, + { + "name": "macos-relwithdebinfo", + "displayName": "[RelWithDebInfo] MacOS", + "description": "Release with debug info workflow preset for MacOS", + "steps": [ + { + "type": "configure", + "name": "macos" + }, + { + "type": "build", + "name": "macos-relwithdebinfo" + }, + { + "type": "test", + "name": "macos-relwithdebinfo" + } + ] + }, { "name": "ci-macos-13", "displayName": "[Release] MacOS", diff --git a/thirdparty/SQLite/CMakeLists.txt b/thirdparty/SQLite/CMakeLists.txt index 3aa066a4..e745c46a 100644 --- a/thirdparty/SQLite/CMakeLists.txt +++ b/thirdparty/SQLite/CMakeLists.txt @@ -11,7 +11,7 @@ if(UNIX) # -Wno-unused-result -Wno-unknown-pragmas -fpermissive target_compile_options(sqlite3 PRIVATE) - if(NOT APPLE) + if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") target_compile_options(sqlite3 PRIVATE "-Wno-return-local-addr" "-Wno-maybe-uninitialized") else() target_compile_options(sqlite3 PRIVATE "-Wno-return-stack-address" "-Wno-uninitialized" "-Wno-deprecated-declarations")