@@ -31,8 +31,11 @@ endif()
3131
3232add_subdirectory (libs/miniz)
3333
34- set (SOURCES
34+ set (SOURCES_TESTS
3535 test /test .h
36+ )
37+
38+ set (SOURCES_MC
3639 src/main.cpp
3740 src/binary.h
3841 src/gameTree.h
@@ -47,24 +50,17 @@ set(SOURCES
4750 src/Model.cpp
4851 src/Data.h
4952 src/Data.cpp
53+ )
54+
55+ set (SOURCES_VIEW
5056 src/TombRaiderLinuxLauncher.h
5157 src/TombRaiderLinuxLauncher.cpp
5258 src/TombRaiderLinuxLauncher.ui
53- src/resources.qrc)
54-
55- if (TEST )
56- enable_testing (ON )
57- add_executable (${PROJECT_NAME} Test ${SOURCES} )
58- add_test (NAME ${PROJECT_NAME} Test COMMAND ${PROJECT_NAME} Test )
59- else ()
60- enable_testing (OFF )
61- add_executable (${PROJECT_NAME} ${SOURCES} )
62- endif ()
59+ src/resources.qrc
60+ )
6361
64- target_link_libraries ( ${PROJECT_NAME} PUBLIC
62+ set (LINK_COMMON
6563 Qt5::Core
66- Qt5::Test
67- Qt5::Gui
6864 Qt5::Widgets
6965 Qt5::WebEngineWidgets
7066 Qt5::Sql
@@ -75,19 +71,39 @@ target_link_libraries(${PROJECT_NAME} PUBLIC
7571 Boost::filesystem
7672)
7773
78- target_include_directories (${PROJECT_NAME} PRIVATE
74+ set (LINK_GUI
75+ Qt5::Gui
76+ )
77+
78+ set (INCLUDE_DIR
7979 ${CURL_INCLUDE_DIR}
8080 ${Boost_INCLUDE_DIRS}
8181 libs/miniz
8282 src
83- test
8483)
8584
86- set_target_properties ( ${PROJECT_NAME} PROPERTIES
85+ set (COMPILE_OPT
8786 CXX_STANDARD 17
8887 CXX_STANDARD_REQUIRED ON
8988)
9089
90+ if (TEST )
91+ enable_testing ()
92+ set (SOURCES ${SOURCES_MC} ${SOURCES_TESTS} )
93+ add_executable (${PROJECT_NAME} Test ${SOURCES} )
94+ add_test (NAME ${PROJECT_NAME} Test COMMAND ${PROJECT_NAME} Test )
95+ target_link_libraries (${PROJECT_NAME} Test PUBLIC ${LINK_COMMON} Qt5::Test )
96+ target_include_directories (${PROJECT_NAME} Test PRIVATE ${INCLUDE_DIR} test )
97+ set_target_properties (${PROJECT_NAME} Test PROPERTIES ${COMPILE_OPT} )
98+ target_compile_definitions (${PROJECT_NAME} Test PRIVATE TEST )
99+ else ()
100+ set (SOURCES ${SOURCES_MC} ${SOURCES_VIEW} )
101+ add_executable (${PROJECT_NAME} ${SOURCES} )
102+ target_link_libraries (${PROJECT_NAME} PUBLIC ${LINK_COMMON} ${LINK_GUI} )
103+ target_include_directories (${PROJECT_NAME} PRIVATE ${INCLUDE_DIR} )
104+ set_target_properties (${PROJECT_NAME} PROPERTIES ${COMPILE_OPT} )
105+ endif ()
106+
91107if (NOT TEST )
92108 install (TARGETS ${PROJECT_NAME}
93109 DESTINATION ${CMAKE_INSTALL_PREFIX} /bin
0 commit comments