|
1 | | -# Enable testing |
2 | 1 | enable_testing() |
3 | | -find_package(yaml-cpp REQUIRED) |
4 | | -# Add individual test executables |
5 | | -add_executable(test_mainwindow test_mainwindow.cpp) |
6 | | -add_executable(test_tree test_tree.cpp) |
7 | | -add_executable(test_syntax test_syntax.cpp) |
8 | | - |
9 | | -# Make sure the test executables link with the necessary libraries |
10 | | -target_link_libraries(test_mainwindow PRIVATE ${TARGET_NAME} Qt6::Widgets Qt6::Test yaml-cpp) |
11 | | -target_link_libraries(test_tree PRIVATE ${TARGET_NAME} Qt6::Widgets Qt6::Test yaml-cpp) |
12 | | -target_link_libraries(test_syntax PRIVATE ${TARGET_NAME} Qt6::Widgets Qt6::Test yaml-cpp) |
13 | | - |
14 | | -# Register each test with CTest |
15 | | -add_test(NAME test_mainwindow COMMAND test_mainwindow) |
16 | | -add_test(NAME test_tree COMMAND test_tree) |
17 | | -add_test(NAME test_syntax COMMAND test_tree) |
18 | | - |
19 | | -# Set the runtime output directory for the test executables |
20 | | -set_target_properties(test_mainwindow PROPERTIES |
21 | | - RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build/tests |
22 | | -) |
23 | | -set_target_properties(test_tree PROPERTIES |
24 | | - RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build/tests |
25 | | -) |
26 | | -set_target_properties(test_syntax PROPERTIES |
27 | | - RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build/tests |
28 | | -) |
29 | 2 |
|
30 | | -set_property(SOURCE test_mainwindow.cpp PROPERTY SKIP_AUTOMOC OFF) |
31 | | -set_property(SOURCE test_tree.cpp PROPERTY SKIP_AUTOMOC OFF) |
32 | | -set_property(SOURCE test_syntax.cpp PROPERTY SKIP_AUTOMOC OFF) |
| 3 | +find_package(yaml-cpp REQUIRED CONFIG) |
33 | 4 |
|
34 | | -# Include directories for tests |
35 | | -target_include_directories(test_mainwindow PRIVATE ${CMAKE_SOURCE_DIR}/include) |
36 | | -target_include_directories(test_tree PRIVATE ${CMAKE_SOURCE_DIR}/include) |
37 | | -target_include_directories(test_syntax PRIVATE ${CMAKE_SOURCE_DIR}/include) |
38 | | - |
39 | | -# Ensure proper linking directories are set for yaml-cpp |
40 | | -target_include_directories(test_mainwindow PRIVATE /opt/homebrew/include) |
41 | | -target_include_directories(test_tree PRIVATE /opt/homebrew/include) |
42 | | -target_include_directories(test_syntax PRIVATE /opt/homebrew/include) |
43 | | - |
44 | | -target_link_directories(test_mainwindow PRIVATE /opt/homebrew/lib) |
45 | | -target_link_directories(test_tree PRIVATE /opt/homebrew/lib) |
46 | | -target_link_directories(test_syntax PRIVATE /opt/homebrew/lib) |
| 5 | +# Add test executables |
| 6 | +add_executable(test_mainwindow test_mainwindow.cpp) |
| 7 | +add_executable(test_filemanager test_filemanager.cpp) |
| 8 | +add_executable(test_syntax test_syntax.cpp) |
47 | 9 |
|
| 10 | +# Link libraries |
| 11 | +foreach(test_target IN ITEMS test_mainwindow test_filemanager test_syntax) |
| 12 | + target_link_libraries(${test_target} PRIVATE |
| 13 | + ${EXECUTABLE_NAME} |
| 14 | + Qt6::Widgets |
| 15 | + Qt6::Test |
| 16 | + yaml-cpp::yaml-cpp |
| 17 | + ) |
| 18 | + target_include_directories(${test_target} PRIVATE |
| 19 | + ${CMAKE_SOURCE_DIR}/include |
| 20 | + ) |
| 21 | + set_target_properties(${test_target} PROPERTIES |
| 22 | + RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build/tests |
| 23 | + ) |
| 24 | + set_property(SOURCE ${test_target}.cpp PROPERTY SKIP_AUTOMOC OFF) |
| 25 | + |
| 26 | + add_test(NAME ${test_target} COMMAND ${test_target}) |
| 27 | +endforeach() |
0 commit comments