diff --git a/Sofa/framework/Config/CMakeLists.txt b/Sofa/framework/Config/CMakeLists.txt index 97d3f52ebb0..8a569268492 100644 --- a/Sofa/framework/Config/CMakeLists.txt +++ b/Sofa/framework/Config/CMakeLists.txt @@ -310,6 +310,8 @@ target_link_options(${PROJECT_NAME} PUBLIC "$<${is_c_cxx_release}:${SOFACONFIG_L target_link_options(${PROJECT_NAME} PUBLIC "$<${is_c_cxx_debug}:${SOFACONFIG_LINK_OPTIONS_DEBUG}>") target_link_options(${PROJECT_NAME} PUBLIC "$<${is_c_cxx}:${SOFACONFIG_LINK_OPTIONS}>") +sofa_treat_warnings_as_errors(${PROJECT_NAME}) + set_target_properties(${PROJECT_NAME} PROPERTIES FOLDER Sofa.Framework) # IDE folder # Attach Sofa Version into properties diff --git a/Sofa/framework/Config/cmake/SofaMacrosConfigure.cmake b/Sofa/framework/Config/cmake/SofaMacrosConfigure.cmake index c34d3249cc5..1aee3d22593 100644 --- a/Sofa/framework/Config/cmake/SofaMacrosConfigure.cmake +++ b/Sofa/framework/Config/cmake/SofaMacrosConfigure.cmake @@ -508,3 +508,13 @@ macro(sofa_set_targets_release_only) endmacro() +function(sofa_treat_warnings_as_errors TARGET) + if(CMAKE_VERSION VERSION_GREATER_EQUAL "3.24") + set_property(TARGET ${TARGET} PROPERTY COMPILE_WARNING_AS_ERROR ON) + else() + target_compile_options(${TARGET} PRIVATE + $<$:/WX> + $<$>:-Werror> + ) + endif() +endfunction() diff --git a/Sofa/framework/Type/CMakeLists.txt b/Sofa/framework/Type/CMakeLists.txt index f1025c58fd8..ed726e47f3f 100644 --- a/Sofa/framework/Type/CMakeLists.txt +++ b/Sofa/framework/Type/CMakeLists.txt @@ -107,6 +107,7 @@ if(mimalloc_FOUND) endif() set_target_properties(${PROJECT_NAME} PROPERTIES FOLDER Sofa.Framework) # IDE folder +sofa_treat_warnings_as_errors(${PROJECT_NAME}) sofa_create_package_with_targets( PACKAGE_NAME ${PROJECT_NAME}