@@ -9,11 +9,11 @@ cmake_minimum_required ( VERSION 3.8 )
99
1010project ( chops-net-ip-test VERSION 1.0 LANGUAGES CXX )
1111
12- set ( test_source_dir "${CMAKE_SOURCE_DIR} /test " )
13- set ( test_main_src " ${test_source_dir} /main_test.cpp" )
14- set ( test_include_dir "${test_source_dir} " )
15- set ( tester_suffix "_runner" )
16- set ( main_test_lib_name "main_test_lib " )
12+ include ( "${cmake_all_repos_include_dir} /unit_test_vars.cmake " )
13+
14+ include ( "${cmake_include_dir} /header_dirs_var.cmake " )
15+ # the following will allow shared_test headers to be picked up by test code
16+ set (header_dirs ${header_dirs} " ${CMAKE_SOURCE_DIR} /test " )
1717
1818set ( test_sources
1919 "${test_source_dir} /shared_test/mock_classes_test.cpp"
@@ -41,71 +41,18 @@ set ( test_sources
4141 "${test_source_dir} /net_ip/tcp_connector_timeout_test.cpp"
4242 "${test_source_dir} /net_ip/net_ip_test.cpp" )
4343
44- set ( OPTIONS "" )
45- set ( DEFINITIONS "" )
46-
47- set ( header_dirs
48- "${include_source_dir} "
49- "${test_include_dir} "
50- )
51-
52- # Still learning find_package and related ways to bring in third party dependent include directories,
53- # so don't judge, instead please help.
54-
55- set ( catch2_include_dir "${CMAKE_SOURCE_DIR} /../Catch2/single_include" )
56- if ( NOT $ENV{CATCH2_INCLUDE_DIR} STREQUAL "" )
57- set ( catch2_include_dir $ENV{CATCH2_INCLUDE_DIR} } )
58- endif ()
59- set ( utility_rack_include_dir
60- "${CMAKE_SOURCE_DIR} /../utility-rack/include"
61- "${CMAKE_SOURCE_DIR} /../utility-rack/third_party"
62- )
63- if ( NOT $ENV{UTILITY_RACK_INCLUDE_DIR} STREQUAL "" )
64- set ( utility_rack_include_dir $ENV{UTILITY_RACK_INCLUDE_DIR} } )
65- endif ()
66- set ( asio_include_dir "${CMAKE_SOURCE_DIR} /../asio/asio/include" )
67- if ( NOT $ENV{ASIO_INCLUDE_DIR} STREQUAL "" )
68- set ( asio_include_dir $ENV{ASIO_INCLUDE_DIR} } )
69- endif ()
70-
71- function ( add_target_dependencies target )
72- # find_package ( utility-rack REQUIRED )
73- # target_include_directories ( ${target} PRIVATE ${utility-rack_INCLUDE_DIRS} )
74- target_include_directories ( ${target} PRIVATE ${utility_rack_include_dir} )
75- # find_package ( Catch2 REQUIRED )
76- # target_include_directories ( ${target} PRIVATE ${Catch2_INCLUDE_DIRS} )
77- target_include_directories ( ${target} PRIVATE ${catch2_include_dir} )
78- # find_package ( asio REQUIRED )
79- # target_include_directories ( ${target} PRIVATE ${asio_INCLUDE_DIRS} )
80- target_include_directories ( ${target} PRIVATE ${asio_include_dir} )
81- endfunction ()
82-
83- function ( add_target_info target )
84- target_compile_features ( ${target} PRIVATE cxx_std_17 )
85- target_compile_options ( ${target} PRIVATE ${OPTIONS} )
86- target_compile_definitions ( ${target} PRIVATE ${DEFINITIONS} )
87- target_include_directories ( ${target} PRIVATE ${header_dirs} )
88- add_target_dependencies ( ${target} )
89- endfunction ()
90-
91- add_library ( ${main_test_lib_name} STATIC ${test_main_src} )
92- add_target_info ( ${main_test_lib_name} )
44+ include ( "${cmake_include_dir} /add_target_dependencies.cmake" )
9345
94- function ( make_exe target src )
95- add_executable ( ${target} ${src} )
96- add_target_info ( ${target} )
97- target_link_libraries ( ${target} PRIVATE pthread )
98- target_link_libraries ( ${target} PRIVATE ${main_test_lib_name} )
99- message ( "Test executable to create: ${target} " )
100- add_test ( NAME ${target}${tester_suffix} COMMAND ${target} )
101- endfunction ()
46+ include ( "${cmake_all_repos_include_dir} /add_target_info_func.cmake" )
47+ include ( "${cmake_all_repos_include_dir} /unit_test_main_lib.cmake" )
48+ include ( "${cmake_all_repos_include_dir} /target_exe_func.cmake" )
10249
10350enable_testing ()
10451
10552foreach ( test_src IN LISTS test_sources )
10653 get_filename_component ( targ ${test_src} NAME_WE )
107- message ( "Calling make_exe for: ${targ} " )
108- make_exe ( ${targ} ${test_src} )
54+ message ( "Calling unit_test_target_exe for: ${targ} " )
55+ unit_test_target_exe ( ${targ} ${test_src} )
10956endforeach ()
11057
11158# end of file
0 commit comments