tests: Verify ExpressionMatch test data won't OOB
[quassel.git] / cmake / QuasselMacros.cmake
index 62ad20c..247b620 100644 (file)
@@ -1,6 +1,6 @@
 # This file contains various functions and macros useful for building Quassel.
 #
-# (C) 2014-2018 by the Quassel Project <devel@quassel-irc.org>
+# (C) 2014-2019 by the Quassel Project <devel@quassel-irc.org>
 #
 # Redistribution and use is allowed according to the terms of the BSD license.
 # For details see the accompanying COPYING-CMAKE-SCRIPTS file.
@@ -200,6 +200,7 @@ function(quassel_add_test _target)
     list(APPEND ARG_LIBRARIES
         Qt5::Test
         Quassel::Common
+        Quassel::Test::Global
         Quassel::Test::Main
     )
 
@@ -261,3 +262,19 @@ function(target_link_if_exists _target)
         endforeach()
     endif()
 endfunction()
+
+###################################################################################################
+# process_cmake_cxx_flags()
+#
+# Append the options declared CMAKE_CXX_FLAGS and CMAKE_CXX_FLAGS_<BUILD_TYPE> to the global
+# compile options.
+# Unset the variables afterwards to avoid duplication.
+#
+function(process_cmake_cxx_flags)
+    string(TOUPPER ${CMAKE_BUILD_TYPE} upper_build_type)
+    set(cxx_flags "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${upper_build_type}}")
+    separate_arguments(sep_cxx_flags UNIX_COMMAND ${cxx_flags})
+    add_compile_options(${sep_cxx_flags})
+    set(CMAKE_CXX_FLAGS "" PARENT_SCOPE)
+    set(CMAKE_CXX_FLAGS_${upper_build_type} "" PARENT_SCOPE)
+endfunction()