diff options
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/opentrack-platform.cmake | 24 |
1 files changed, 24 insertions, 0 deletions
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) |