summaryrefslogtreecommitdiffhomepage
path: root/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake')
-rw-r--r--cmake/opentrack-platform.cmake24
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)