cmake: only emit warnings for specific warnings

This commit is contained in:
Anonymous Maarten 2024-02-01 20:19:09 +01:00
parent 54e537d469
commit bf6d418d61

View File

@ -33,16 +33,27 @@ macro(register_lego1_target __target)
list(APPEND lego1_targets ${__target}) list(APPEND lego1_targets ${__target})
endmacro() endmacro()
function(check_cxx_has_option VAR OPTION) function(add_cxx_warning WARNING)
if(ISLE_WERROR)
set(compiler_option "-Werror=${WARNING}")
else()
set(compiler_option "-W${WARNING}")
endif()
string(MAKE_C_IDENTIFIER "COMPILER_SUPPORTS${compiler_option}" varname)
cmake_push_check_state(RESET) cmake_push_check_state(RESET)
set(CMAKE_REQUIRED_FLAGS "${OPTION} ") set(CMAKE_REQUIRED_FLAGS "${compiler_option} ")
if(MSVC) if(MSVC)
string(APPEND CMAKE_REQUIRED_FLAGS "/WX") string(APPEND CMAKE_REQUIRED_FLAGS "/WX")
else() else()
string(APPEND CMAKE_REQUIRED_FLAGS "-Werror") string(APPEND CMAKE_REQUIRED_FLAGS "-Werror")
endif() endif()
check_cxx_source_compiles("int main() { return 0; }" ${VAR}) check_cxx_source_compiles("int main() { return 0; }" ${varname})
cmake_pop_check_state() cmake_pop_check_state()
if(${varname})
add_compile_options(${compiler_option})
endif()
endfunction() endfunction()
message(STATUS "MSVC for decompilation: ${MSVC_FOR_DECOMP}") message(STATUS "MSVC for decompilation: ${MSVC_FOR_DECOMP}")
@ -61,10 +72,7 @@ if(ISLE_WERROR)
endif() endif()
endif() endif()
check_cxx_has_option(COMPILER_SUPPORTS_Wparentheses -Wparentheses) add_cxx_warning(parentheses)
if(COMPILER_SUPPORTS_Wparentheses)
add_compile_options(-Wparentheses)
endif()
add_library(DirectX5::DirectX5 INTERFACE IMPORTED) add_library(DirectX5::DirectX5 INTERFACE IMPORTED)
target_include_directories(DirectX5::DirectX5 INTERFACE "${CMAKE_SOURCE_DIR}/3rdparty/dx5/inc") target_include_directories(DirectX5::DirectX5 INTERFACE "${CMAKE_SOURCE_DIR}/3rdparty/dx5/inc")