summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorAllen Winter <allen.winter@kdab.com>2022-03-05 10:33:50 -0500
committerAllen Winter <allen.winter@kdab.com>2022-03-05 10:33:50 -0500
commit03c02ced21494413920744a400c638b0cb5d493f (patch)
treee14550e414422e0d0ffc5b295b57489328b6d3f3 /CMakeLists.txt
parent1717e715b87188671ccd4c72f84396dd5929a19a (diff)
downloadlibical-git-03c02ced21494413920744a400c638b0cb5d493f.tar.gz
buildsystem - fix all uninitialized cmake warnings
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt58
1 files changed, 40 insertions, 18 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index cf1adbdf..604cd533 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -224,10 +224,12 @@ if(DEFINED ICU_BASE) #to make --warn-uninitialized happy
set(ICU_ROOT $ENV{ICU_BASE})
endif()
endif()
-if(NOT "$ENV{ICU_ROOT}")
- #Use the homebrew version. MacOS provided ICU doesn't provide development files
- if(APPLE)
- set(ICU_ROOT "/usr/local/opt/icu4c")
+if(DEFINED ICU_ROOT) #to make --warn-uninitialized happy
+ if(NOT "$ENV{ICU_ROOT}")
+ #Use the homebrew version. MacOS provided ICU doesn't provide development files
+ if(APPLE)
+ set(ICU_ROOT "/usr/local/opt/icu4c")
+ endif()
endif()
endif()
find_package(ICU COMPONENTS uc i18n)
@@ -266,10 +268,12 @@ if(ICU_FOUND)
endif()
# compile in Berkeley DB support
-if(NOT "$ENV{BerkeleyDB_ROOT_DIR}")
- if(APPLE)
- #Use the homebrew version. Xcode's version doesn't work for us.
- set(BerkeleyDB_ROOT_DIR "/usr/local/opt/berkeley-db")
+if(DEFINED BerkeleyDB_ROOT_DIR) #to make --warn-uninitialized happy
+ if(NOT "$ENV{BerkeleyDB_ROOT_DIR}")
+ if(APPLE)
+ #Use the homebrew version. Xcode's version doesn't work for us.
+ set(BerkeleyDB_ROOT_DIR "/usr/local/opt/berkeley-db")
+ endif()
endif()
endif()
find_package(BerkeleyDB)
@@ -496,7 +500,16 @@ endif()
#
# Compiler settings
#
-if(CMAKE_COMPILER_IS_GNUCC OR "${CMAKE_C_COMPILER_ID}" MATCHES "Clang")
+set(CMAKE_C_COMPILER_IS_CLANG False)
+set(CMAKE_C_COMPILER_IS_GCC False)
+if(DEFINED CMAKE_C_COMPILER_ID)
+ if("${CMAKE_C_COMPILER_ID}" MATCHES "Clang")
+ set(CMAKE_C_COMPILER_IS_CLANG True)
+ elseif("${CMAKE_C_COMPILER_ID}" MATCHES "GNU")
+ set(CMAKE_C_COMPILER_IS_GCC True)
+ endif()
+endif()
+if(CMAKE_C_COMPILER_IS_GCC OR CMAKE_C_COMPILER_IS_CLANG)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden -Wno-deprecated -Wall -Wno-unknown-pragmas -Wextra -Winit-self -Wunused -Wno-div-by-zero -Wundef -Wpointer-arith -Wtype-limits -Wwrite-strings -Werror=return-type")
libical_add_cflag(-Wunused-but-set-variable UNUSED_BUT_SET)
libical_add_cflag(-Wlogical-op LOGICAL_OP)
@@ -507,11 +520,20 @@ if(CMAKE_COMPILER_IS_GNUCC OR "${CMAKE_C_COMPILER_ID}" MATCHES "Clang")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_XOPEN_SOURCE=500 -D_DEFAULT_SOURCE -D_GNU_SOURCE")
endif()
endif()
-if("${CMAKE_C_COMPILER_ID}" MATCHES "Clang")
+if(CMAKE_C_COMPILER_IS_CLANG)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Qunused-arguments")
endif()
-if(CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
+set(CMAKE_CXX_COMPILER_IS_CLANG False)
+set(CMAKE_CXX_COMPILER_IS_GCC False)
+if(DEFINED CMAKE_CXX_COMPILER_ID)
+ if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
+ set(CMAKE_CXX_COMPILER_IS_CLANG True)
+ elseif("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
+ set(CMAKE_CXX_COMPILER_IS_GCC True)
+ endif()
+endif()
+if(CMAKE_CXX_COMPILER_IS_GCC OR CMAKE_CXX_COMPILER_IS_CLANG)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fvisibility=hidden -Weffc++ -Wno-deprecated -Wall -Wextra -Woverloaded-virtual -Winit-self -Wunused -Wno-div-by-zero -Wundef -Wpointer-arith -Wtype-limits -Wwrite-strings -Werror=return-type")
libical_add_cxxflag(-Wunused-but-set-variable UNUSED_BUT_SET)
libical_add_cxxflag(-Wlogical-op LOGICAL_OP)
@@ -523,7 +545,7 @@ if(CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_XOPEN_SOURCE=500 -D_DEFAULT_SOURCE -D_GNU_SOURCE")
endif()
endif()
-if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
+if(CMAKE_CXX_COMPILER_IS_CLANG)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Qunused-arguments")
endif()
@@ -536,7 +558,7 @@ endif()
libical_deprecated_option(ABI_DUMPER LIBICAL_DEVMODE_ABI_DUMPER "(Developer-only) Build for abi-dumper." False)
mark_as_advanced(LIBICAL_DEVMODE_ABI_DUMPER)
if(LIBICAL_DEVMODE_ABI_DUMPER)
- if(CMAKE_COMPILER_IS_GNUCC)
+ if(CMAKE_C_COMPILER_IS_GCC)
set(CMAKE_C_FLAGS "-g -Og")
set(CMAKE_CXX_FLAGS "-g -Og")
else()
@@ -555,7 +577,7 @@ mark_as_advanced(LIBICAL_DEVMODE_MEMORY_CONSISTENCY)
libical_deprecated_option(ADDRESS_SANITIZER LIBICAL_DEVMODE_ADDRESS_SANITIZER "(Developer-only) Build with the address sanitizer." False)
mark_as_advanced(LIBICAL_DEVMODE_ADDRESS_SANITIZER)
if(LIBICAL_DEVMODE_ADDRESS_SANITIZER)
- if(CMAKE_COMPILER_IS_GNUCC OR "${CMAKE_C_COMPILER_ID}" MATCHES "Clang")
+ if(CMAKE_C_COMPILER_IS_GCC OR CMAKE_C_COMPILER_IS_CLANG)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -g -DADDRESS_SANITIZER")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -g -DADDRESS_SANITIZER")
else()
@@ -581,7 +603,7 @@ endif()
libical_deprecated_option(THREAD_SANITIZER LIBICAL_DEVMODE_THREAD_SANITIZER "(Developer-only) Build with the thread sanitizer." False)
mark_as_advanced(LIBICAL_DEVMODE_THREAD_SANITIZER)
if(LIBICAL_DEVMODE_THREAD_SANITIZER)
- if(CMAKE_COMPILER_IS_GNUCC OR "${CMAKE_C_COMPILER_ID}" MATCHES "Clang")
+ if(CMAKE_C_COMPILER_IS_GCC OR CMAKE_C_COMPILER_IS_CLANG)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=thread -O1 -g -DTHREAD_SANITIZER")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=thread -O1 -g -DTHREAD_SANITIZER")
else()
@@ -607,7 +629,7 @@ endif()
libical_deprecated_option(UNDEFINED_SANITIZER LIBICAL_DEVMODE_UNDEFINED_SANITIZER "(Developer-only) Build with the undefined sanitizer." False)
mark_as_advanced(LIBICAL_DEVMODE_UNDEFINED_SANITIZER)
if(LIBICAL_DEVMODE_UNDEFINED_SANITIZER)
- if(CMAKE_COMPILER_IS_GNUCC OR "${CMAKE_C_COMPILER_ID}" MATCHES "Clang")
+ if(CMAKE_C_COMPILER_IS_GCC OR CMAKE_C_COMPILER_IS_CLANG)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=undefined -O1 -g -DUNDEFINED_SANITIZER -lubsan")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=undefined -O1 -g -DUNDEFINED_SANITIZER -lubsan")
else()
@@ -632,7 +654,7 @@ endif()
libical_option(ENABLE_LTO_BUILD "Build a link-time optimized version." False)
if(ENABLE_LTO_BUILD)
- if(CMAKE_COMPILER_IS_GNUCC)
+ if(CMAKE_C_COMPILER_IS_GCC)
libical_add_cflag(-flto LTO)
if(C_SUPPORTS_LTO)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wlto-type-mismatch -fuse-linker-plugin")
@@ -642,7 +664,7 @@ if(ENABLE_LTO_BUILD)
message(FATAL_ERROR
"Your C compiler ${CMAKE_C_COMPILER_ID} does not support the LTO building.")
endif()
- if(WITH_CXX_BINDINGS AND CMAKE_COMPILER_IS_GNUCXX)
+ if(WITH_CXX_BINDINGS AND CMAKE_CXX_COMPILER_IS_GCC)
include(CheckCXXCompilerFlag)
libical_add_cxxflag(-flto LTO)
if(CXX_SUPPORTS_LTO)