From 9449236cf7bf48f40b696edce68d81410d713489 Mon Sep 17 00:00:00 2001
From: Martin Braun <martin.braun@ettus.com>
Date: Sun, 7 Oct 2018 13:30:35 -0700
Subject: modtool: OOTs use Boost.UTF, CMake 3.8-Aware

- This is the same change that happened for the GNU Radio core
- New OOTs will now have Boost.UTF-based unit tests
- modtool will be able to handle both CppUnit-based OOTs as well as
  Boost.UTF-based ones; this change is backward-compatible
---
 .../modtool/gr-newmod/cmake/Modules/GrTest.cmake   | 26 ++++++++++++++++++++--
 1 file changed, 24 insertions(+), 2 deletions(-)

(limited to 'gr-utils/python/modtool/gr-newmod/cmake/Modules/GrTest.cmake')

diff --git a/gr-utils/python/modtool/gr-newmod/cmake/Modules/GrTest.cmake b/gr-utils/python/modtool/gr-newmod/cmake/Modules/GrTest.cmake
index 186e2d5333..9500fa0a4a 100644
--- a/gr-utils/python/modtool/gr-newmod/cmake/Modules/GrTest.cmake
+++ b/gr-utils/python/modtool/gr-newmod/cmake/Modules/GrTest.cmake
@@ -46,7 +46,7 @@ function(GR_ADD_TEST test_name)
             get_target_property(location ${target} LOCATION)
             if(location)
                 get_filename_component(path ${location} PATH)
-                string(REGEX REPLACE "\\$\\(.*\\)" ${CMAKE_BUILD_TYPE} path ${path})
+                string(REGEX REPLACE "\\$\\(.*\\)" "${CMAKE_BUILD_TYPE}" path "${path}")
                 list(APPEND GR_TEST_LIBRARY_DIRS ${path})
             endif(location)
         endforeach(target)
@@ -113,7 +113,6 @@ function(GR_ADD_TEST test_name)
         execute_process(COMMAND chmod +x ${sh_file})
 
         add_test(${test_name} ${SHELL} ${sh_file})
-
     endif(UNIX)
 
     if(WIN32)
@@ -142,3 +141,26 @@ function(GR_ADD_TEST test_name)
     endif(WIN32)
 
 endfunction(GR_ADD_TEST)
+
+########################################################################
+# Add a C++ unit test and setup the environment for a unit test.
+# Takes the same arguments as the ADD_TEST function.
+#
+# test_name -- An identifier for your test, for usage with ctest -R
+# test_source -- Path to the .cc file
+#
+# Before calling set the following variables:
+# GR_TEST_TARGET_DEPS  - built targets for the library path
+########################################################################
+function(GR_ADD_CPP_TEST test_name test_source)
+    add_executable(${test_name} ${test_source})
+    target_link_libraries(
+        ${test_name}
+        ${GR_TEST_TARGET_DEPS}
+    )
+    set_target_properties(${test_name}
+        PROPERTIES COMPILE_DEFINITIONS "BOOST_TEST_DYN_LINK;BOOST_TEST_MAIN"
+    )
+    GR_ADD_TEST(${test_name} ${test_name})
+endfunction(GR_ADD_CPP_TEST)
+
-- 
cgit v1.2.3