diff options
| -rwxr-xr-x | CMakeLists.txt | 4 | ||||
| -rw-r--r-- | cmake/opentrack-platform.cmake | 24 | 
2 files changed, 28 insertions, 0 deletions
| diff --git a/CMakeLists.txt b/CMakeLists.txt index 51d037c7..276a5cae 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -78,3 +78,7 @@ endforeach()  merge_translations()  install_sources() + +foreach(k C CXX) +    fix_flags(${k} "DNDEBUG" "") +endforeach() diff --git a/cmake/opentrack-platform.cmake b/cmake/opentrack-platform.cmake index 83784ffc..ce8341b1 100644 --- a/cmake/opentrack-platform.cmake +++ b/cmake/opentrack-platform.cmake @@ -95,6 +95,30 @@ endif()  set_property(GLOBAL PROPERTY USE_FOLDERS OFF) +function(fix_flags lang flag replacement) +    set(part "-") +    set(pfx "-") +    if(MSVC) +        set(part "[-/]") +        set(pfx "/") +    endif() +    if(".${replacement}" STREQUAL ".") +        set(pfx "") +    endif() +    opentrack_escape_string(flag "${flag}") +    foreach(k _DEBUG _RELEASE _MINSIZEREL _RELWITHDEBINFO "") +        set(tmp "${CMAKE_${lang}_FLAGS${k}}") +        if(NOT ".${replacement}" STREQUAL ".") +            string(APPEND replacement " ") +        endif() +        string(REGEX REPLACE "(^| )${part}${flag}(\$| )" " ${pfx}${replacement}" CMAKE_${lang}_FLAGS${k} "${CMAKE_${lang}_FLAGS${k}}") +        if(NOT ".${tmp}" STREQUAL ".${CMAKE_${lang}_FLAGS${k}}") +            set(CMAKE_${lang}_FLAGS${k} "${CMAKE_${lang}_FLAGS${k}}" CACHE STRING "" FORCE) +        else() +            set(CMAKE_${lang}_FLAGS${k} "${CMAKE_${lang}_FLAGS${k}} ${pfx}${replacement}" CACHE STRING "" FORCE) +        endif() +    endforeach() +endfunction()  # nix -rdynamic passed from Linux-GNU.cmake  if(CMAKE_COMPILER_IS_GNUCXX)      set(__LINUX_COMPILER_GNU 1) | 
