From 03c02ced21494413920744a400c638b0cb5d493f Mon Sep 17 00:00:00 2001 From: Allen Winter Date: Sat, 5 Mar 2022 10:33:50 -0500 Subject: buildsystem - fix all uninitialized cmake warnings --- CMakeLists.txt | 58 ++++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 40 insertions(+), 18 deletions(-) (limited to 'CMakeLists.txt') 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) -- cgit v1.2.1