CMake: Ensure C/C++ compile options only applied when compiling C/C++

This commit is contained in:
Andrew Kaster
2024-07-19 15:54:52 -06:00
committed by Andrew Kaster
parent 02ba51f203
commit 4066ce2c7e
6 changed files with 91 additions and 75 deletions

View File

@@ -34,24 +34,24 @@ include(lagom_compile_options)
include(lagom_install_options)
if (ENABLE_ADDRESS_SANITIZER)
add_compile_options(-fsanitize=address -fno-omit-frame-pointer)
add_link_options(-fsanitize=address)
add_cxx_compile_options(-fsanitize=address -fno-omit-frame-pointer)
add_cxx_link_options(-fsanitize=address)
endif()
if (ENABLE_MEMORY_SANITIZER)
add_compile_options(-fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer)
add_link_options(-fsanitize=memory -fsanitize-memory-track-origins)
add_cxx_compile_options(-fsanitize=memory -fsanitize-memory-track-origins -fno-omit-frame-pointer)
add_cxx_link_options(-fsanitize=memory -fsanitize-memory-track-origins)
endif()
if (ENABLE_UNDEFINED_SANITIZER)
add_compile_options(-fsanitize=undefined -fno-omit-frame-pointer)
add_cxx_compile_options(-fsanitize=undefined -fno-omit-frame-pointer)
if (UNDEFINED_BEHAVIOR_IS_FATAL)
add_compile_options(-fno-sanitize-recover=undefined)
add_cxx_compile_options(-fno-sanitize-recover=undefined)
endif()
if (APPLE AND CMAKE_CXX_COMPILER_ID MATCHES "Clang$" AND CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "17")
add_compile_options(-fno-sanitize=function)
add_cxx_compile_options(-fno-sanitize=function)
endif()
add_link_options(-fsanitize=undefined)
add_cxx_link_options(-fsanitize=undefined)
endif()
if (HAIKU)
@@ -61,9 +61,9 @@ if (HAIKU)
add_compile_definitions(__USE_GNU)
endif()
add_compile_options(-DAK_DONT_REPLACE_STD)
add_compile_options(-Wno-expansion-to-defined)
add_compile_options(-Wno-user-defined-literals)
add_compile_definitions(AK_DONT_REPLACE_STD)
add_cxx_compile_options(-Wno-expansion-to-defined)
add_cxx_compile_options(-Wno-user-defined-literals)
if (ANDROID OR APPLE)
serenity_option(ENABLE_QT OFF CACHE BOOL "Build ladybird application using Qt GUI")