diff --git a/cmake/FindQtRuntime.cmake b/cmake/FindQtRuntime.cmake index 68f53c7ca..0fd7f423a 100644 --- a/cmake/FindQtRuntime.cmake +++ b/cmake/FindQtRuntime.cmake @@ -41,6 +41,8 @@ set(QT_COMPONENTS_ORACLE Concurrent Network Svg Widgets) set(QT_COMPONENTS_SERVATRICE Network Sql WebSockets) +# Union of Qt modules required across all test targets (independent of application targets). +# When adding a new test that needs additional Qt modules, add them here rather than in the test's CMakeLists.txt. set(QT_COMPONENTS_TEST Concurrent Network Svg Widgets) # --------------------------------------------------------------------------- @@ -71,6 +73,7 @@ list(REMOVE_DUPLICATES REQUIRED_QT_COMPONENTS) # Find Qt and define minimum version centrally # --------------------------------------------------------------------------- +# Add Qt Linguist as required component unrelated of build target find_package(Qt6 6.4 REQUIRED COMPONENTS ${REQUIRED_QT_COMPONENTS} LinguistTools) set(QT_MAIN_VERSION_STRING Qt6) @@ -92,10 +95,11 @@ else() endif() # --------------------------------------------------------------------------- -# Convert components list, e.g.: Network;Sql;WebSockets -# into Qt modules: Qt6::Network;Qt6::Sql;Qt6::WebSockets +# Export Qt target lists for individual targets # --------------------------------------------------------------------------- +# Convert components list, e.g.: Network;Sql;WebSockets +# into Qt modules: Qt6::Network;Qt6::Sql;Qt6::WebSockets function(_qt_components_to_targets COMPONENTS OUTPUT_VARIABLE) set(TARGETS) @@ -109,10 +113,6 @@ function(_qt_components_to_targets COMPONENTS OUTPUT_VARIABLE) ) endfunction() -# --------------------------------------------------------------------------- -# Export Qt target lists for the individual targets -# --------------------------------------------------------------------------- - if(WITH_CLIENT) _qt_components_to_targets("${QT_COMPONENTS_COCKATRICE}" QT_MODULES_COCKATRICE) endif() @@ -133,7 +133,7 @@ endif() set(QT_CORE_MODULE "${QT_MAIN_VERSION_STRING}::Core") # --------------------------------------------------------------------------- -# Qt runtime/plugin paths +# Qt runtime library & plugin paths # --------------------------------------------------------------------------- if(NOT TARGET "${QT_CORE_MODULE}") diff --git a/cockatrice/CMakeLists.txt b/cockatrice/CMakeLists.txt index 61bfedf88..57116c364 100644 --- a/cockatrice/CMakeLists.txt +++ b/cockatrice/CMakeLists.txt @@ -551,7 +551,7 @@ target_link_libraries( libcockatrice_models libcockatrice_rng libcockatrice_settings - ${COCKATRICE_QT_MODULES} + ${QT_MODULES_COCKATRICE} ) if(UNIX) diff --git a/libcockatrice_network/CMakeLists.txt b/libcockatrice_network/CMakeLists.txt index 3069c0db4..98871d974 100644 --- a/libcockatrice_network/CMakeLists.txt +++ b/libcockatrice_network/CMakeLists.txt @@ -10,5 +10,5 @@ add_library(libcockatrice_network INTERFACE) target_include_directories(libcockatrice_network INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}) target_link_libraries( - libcockatrice_network INTERFACE ${COCKATRICE_QT_MODULES} libcockatrice_network_client libcockatrice_network_server + libcockatrice_network INTERFACE ${QT_MODULES_COCKATRICE} libcockatrice_network_client libcockatrice_network_server ) diff --git a/libcockatrice_network/libcockatrice/network/client/CMakeLists.txt b/libcockatrice_network/libcockatrice/network/client/CMakeLists.txt index bcf62463c..d6ce8648d 100644 --- a/libcockatrice_network/libcockatrice/network/client/CMakeLists.txt +++ b/libcockatrice_network/libcockatrice/network/client/CMakeLists.txt @@ -12,7 +12,7 @@ target_include_directories(libcockatrice_network_client INTERFACE .) target_link_libraries( libcockatrice_network_client - INTERFACE ${COCKATRICE_QT_VERSION_NAME}::Network ${COCKATRICE_QT_VERSION_NAME}::WebSockets + INTERFACE ${QT_MAIN_VERSION_STRING}::Network ${QT_MAIN_VERSION_STRING}::WebSockets libcockatrice_network_client_abstract libcockatrice_network_client_local libcockatrice_network_client_remote ) diff --git a/libcockatrice_network/libcockatrice/network/client/abstract/CMakeLists.txt b/libcockatrice_network/libcockatrice/network/client/abstract/CMakeLists.txt index 6fba8d629..85cd6fc2c 100644 --- a/libcockatrice_network/libcockatrice/network/client/abstract/CMakeLists.txt +++ b/libcockatrice_network/libcockatrice/network/client/abstract/CMakeLists.txt @@ -15,7 +15,6 @@ add_dependencies(libcockatrice_network_client_abstract libcockatrice_protocol li target_include_directories(libcockatrice_network_client_abstract PUBLIC .) target_link_libraries( - libcockatrice_network_client_abstract - PUBLIC ${COCKATRICE_QT_VERSION_NAME}::Network ${COCKATRICE_QT_VERSION_NAME}::WebSockets libcockatrice_protocol - libcockatrice_network_server_remote + libcockatrice_network_client_abstract PUBLIC ${QT_MAIN_VERSION_STRING}::Network ${QT_MAIN_VERSION_STRING}::WebSockets + libcockatrice_protocol libcockatrice_network_server_remote ) diff --git a/libcockatrice_network/libcockatrice/network/client/local/CMakeLists.txt b/libcockatrice_network/libcockatrice/network/client/local/CMakeLists.txt index 2ac12e1fe..50938e372 100644 --- a/libcockatrice_network/libcockatrice/network/client/local/CMakeLists.txt +++ b/libcockatrice_network/libcockatrice/network/client/local/CMakeLists.txt @@ -15,7 +15,6 @@ add_dependencies(libcockatrice_network_client_local libcockatrice_network_client target_include_directories(libcockatrice_network_client_local PUBLIC .) target_link_libraries( - libcockatrice_network_client_local - PUBLIC ${COCKATRICE_QT_VERSION_NAME}::Network ${COCKATRICE_QT_VERSION_NAME}::WebSockets - libcockatrice_network_client_abstract + libcockatrice_network_client_local PUBLIC ${QT_MAIN_VERSION_STRING}::Network ${QT_MAIN_VERSION_STRING}::WebSockets + libcockatrice_network_client_abstract ) diff --git a/libcockatrice_network/libcockatrice/network/client/remote/CMakeLists.txt b/libcockatrice_network/libcockatrice/network/client/remote/CMakeLists.txt index cb68d0c37..fe6eff583 100644 --- a/libcockatrice_network/libcockatrice/network/client/remote/CMakeLists.txt +++ b/libcockatrice_network/libcockatrice/network/client/remote/CMakeLists.txt @@ -16,6 +16,6 @@ target_include_directories(libcockatrice_network_client_remote PUBLIC .) target_link_libraries( libcockatrice_network_client_remote - PUBLIC ${COCKATRICE_QT_VERSION_NAME}::Network ${COCKATRICE_QT_VERSION_NAME}::WebSockets - libcockatrice_network_client_abstract libcockatrice_interfaces libcockatrice_utility libcockatrice_protocol + PUBLIC ${QT_MAIN_VERSION_STRING}::Network ${QT_MAIN_VERSION_STRING}::WebSockets libcockatrice_network_client_abstract + libcockatrice_interfaces libcockatrice_utility libcockatrice_protocol ) diff --git a/libcockatrice_network/libcockatrice/network/server/CMakeLists.txt b/libcockatrice_network/libcockatrice/network/server/CMakeLists.txt index cbb717ad8..cdfc8fb65 100644 --- a/libcockatrice_network/libcockatrice/network/server/CMakeLists.txt +++ b/libcockatrice_network/libcockatrice/network/server/CMakeLists.txt @@ -10,6 +10,6 @@ add_library(libcockatrice_network_server INTERFACE) target_include_directories(libcockatrice_network_server INTERFACE .) target_link_libraries( - libcockatrice_network_server INTERFACE ${COCKATRICE_QT_MODULES} libcockatrice_network_server_local + libcockatrice_network_server INTERFACE ${QT_MODULES_COCKATRICE} libcockatrice_network_server_local libcockatrice_network_server_remote ) diff --git a/libcockatrice_network/libcockatrice/network/server/local/CMakeLists.txt b/libcockatrice_network/libcockatrice/network/server/local/CMakeLists.txt index 494ae1294..9a9b19206 100644 --- a/libcockatrice_network/libcockatrice/network/server/local/CMakeLists.txt +++ b/libcockatrice_network/libcockatrice/network/server/local/CMakeLists.txt @@ -14,4 +14,4 @@ add_dependencies(libcockatrice_network_server_local libcockatrice_protocol) target_include_directories(libcockatrice_network_server_local PUBLIC .) -target_link_libraries(libcockatrice_network_server_local PUBLIC ${COCKATRICE_QT_MODULES} libcockatrice_protocol) +target_link_libraries(libcockatrice_network_server_local PUBLIC ${QT_MODULES_COCKATRICE} libcockatrice_protocol) diff --git a/libcockatrice_network/libcockatrice/network/server/remote/CMakeLists.txt b/libcockatrice_network/libcockatrice/network/server/remote/CMakeLists.txt index e11a962d1..bb23ad40a 100644 --- a/libcockatrice_network/libcockatrice/network/server/remote/CMakeLists.txt +++ b/libcockatrice_network/libcockatrice/network/server/remote/CMakeLists.txt @@ -60,5 +60,5 @@ target_include_directories(libcockatrice_network_server_remote PUBLIC .) # Make cockatrice_server depend on cockatrice_protocol target_link_libraries( libcockatrice_network_server_remote PUBLIC libcockatrice_protocol libcockatrice_utility libcockatrice_rng - libcockatrice_deck_list ${COCKATRICE_QT_MODULES} + libcockatrice_deck_list ${QT_MODULES_COCKATRICE} ) diff --git a/libcockatrice_utility/CMakeLists.txt b/libcockatrice_utility/CMakeLists.txt index db23f7951..f5c7f8345 100644 --- a/libcockatrice_utility/CMakeLists.txt +++ b/libcockatrice_utility/CMakeLists.txt @@ -39,5 +39,3 @@ find_package(OpenSSL REQUIRED) target_link_libraries(libcockatrice_utility PUBLIC libcockatrice_rng OpenSSL::Crypto ${QT_CORE_MODULE}) set(ORACLE_LIBS) - -include_directories(${${COCKATRICE_QT_VERSION_NAME}Core_INCLUDE_DIRS}) diff --git a/oracle/CMakeLists.txt b/oracle/CMakeLists.txt index ef2bdb9f3..c94d92028 100644 --- a/oracle/CMakeLists.txt +++ b/oracle/CMakeLists.txt @@ -122,7 +122,7 @@ target_link_libraries( PUBLIC libcockatrice_card PUBLIC libcockatrice_settings PUBLIC libcockatrice_network - PUBLIC ${ORACLE_QT_MODULES} + PUBLIC ${QT_MODULES_ORACLE} ) if(ZLIB_FOUND) diff --git a/servatrice/CMakeLists.txt b/servatrice/CMakeLists.txt index a7e24d585..cc707f02c 100644 --- a/servatrice/CMakeLists.txt +++ b/servatrice/CMakeLists.txt @@ -99,12 +99,12 @@ target_precompile_headers(servatrice PRIVATE "${CMAKE_SOURCE_DIR}/cmake/pch/qtco if(CMAKE_HOST_SYSTEM MATCHES "FreeBSD") target_link_libraries( - servatrice libcockatrice_deck_list libcockatrice_network_server_remote Threads::Threads ${SERVATRICE_QT_MODULES} + servatrice libcockatrice_deck_list libcockatrice_network_server_remote Threads::Threads ${QT_MODULES_SERVATRICE} ${LIBEXECINFO_LIBRARY} ) else() target_link_libraries( - servatrice libcockatrice_deck_list libcockatrice_network_server_remote Threads::Threads ${SERVATRICE_QT_MODULES} + servatrice libcockatrice_deck_list libcockatrice_network_server_remote Threads::Threads ${QT_MODULES_SERVATRICE} ) endif() diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 18ab60d06..84d6d967c 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -77,39 +77,39 @@ endif() include_directories(${GTEST_INCLUDE_DIRS}) target_link_libraries(dummy_test Threads::Threads ${GTEST_BOTH_LIBRARIES}) -target_link_libraries(expression_test libcockatrice_utility Threads::Threads ${GTEST_BOTH_LIBRARIES} ${TEST_QT_MODULES}) +target_link_libraries(expression_test libcockatrice_utility Threads::Threads ${GTEST_BOTH_LIBRARIES} ${QT_MODULES_TEST}) target_link_libraries( - clamped_arithmetic_test libcockatrice_utility Threads::Threads ${GTEST_BOTH_LIBRARIES} ${TEST_QT_MODULES} + clamped_arithmetic_test libcockatrice_utility Threads::Threads ${GTEST_BOTH_LIBRARIES} ${QT_MODULES_TEST} ) target_link_libraries( - test_age_formatting libcockatrice_utility Threads::Threads ${GTEST_BOTH_LIBRARIES} ${TEST_QT_MODULES} + test_age_formatting libcockatrice_utility Threads::Threads ${GTEST_BOTH_LIBRARIES} ${QT_MODULES_TEST} ) target_link_libraries( - password_hash_test libcockatrice_utility Threads::Threads ${GTEST_BOTH_LIBRARIES} ${TEST_QT_MODULES} + password_hash_test libcockatrice_utility Threads::Threads ${GTEST_BOTH_LIBRARIES} ${QT_MODULES_TEST} ) target_link_libraries( playmat_resolver_test libcockatrice_deck_list libcockatrice_utility Threads::Threads ${GTEST_BOTH_LIBRARIES} - ${TEST_QT_MODULES} + ${QT_MODULES_TEST} ) target_link_libraries( deck_hash_performance_test libcockatrice_deck_list libcockatrice_utility Threads::Threads ${GTEST_BOTH_LIBRARIES} - ${TEST_QT_MODULES} + ${QT_MODULES_TEST} ) target_link_libraries( - server_card_counter_test libcockatrice_network Threads::Threads ${GTEST_BOTH_LIBRARIES} ${TEST_QT_MODULES} + server_card_counter_test libcockatrice_network Threads::Threads ${GTEST_BOTH_LIBRARIES} ${QT_MODULES_TEST} ) target_link_libraries( - server_counter_test libcockatrice_network Threads::Threads ${GTEST_BOTH_LIBRARIES} ${TEST_QT_MODULES} + server_counter_test libcockatrice_network Threads::Threads ${GTEST_BOTH_LIBRARIES} ${QT_MODULES_TEST} ) target_link_libraries( - server_rate_limiter_test libcockatrice_utility Threads::Threads ${GTEST_BOTH_LIBRARIES} ${TEST_QT_MODULES} + server_rate_limiter_test libcockatrice_utility Threads::Threads ${GTEST_BOTH_LIBRARIES} ${QT_MODULES_TEST} ) target_link_libraries( - warning_categories_test libcockatrice_utility Threads::Threads ${GTEST_BOTH_LIBRARIES} ${TEST_QT_MODULES} + warning_categories_test libcockatrice_utility Threads::Threads ${GTEST_BOTH_LIBRARIES} ${QT_MODULES_TEST} ) -target_link_libraries(lag_monitor_test Threads::Threads ${GTEST_BOTH_LIBRARIES} ${TEST_QT_MODULES}) +target_link_libraries(lag_monitor_test Threads::Threads ${GTEST_BOTH_LIBRARIES} ${QT_MODULES_TEST}) target_link_libraries( - latency_tracker_test libcockatrice_network Threads::Threads ${GTEST_BOTH_LIBRARIES} ${TEST_QT_MODULES} + latency_tracker_test libcockatrice_network Threads::Threads ${GTEST_BOTH_LIBRARIES} ${QT_MODULES_TEST} ) add_subdirectory(card_zone_algorithms) diff --git a/tests/carddatabase/CMakeLists.txt b/tests/carddatabase/CMakeLists.txt index 811cebc1d..042b2911a 100644 --- a/tests/carddatabase/CMakeLists.txt +++ b/tests/carddatabase/CMakeLists.txt @@ -16,7 +16,7 @@ target_link_libraries( PRIVATE libcockatrice_card PRIVATE Threads::Threads PRIVATE ${GTEST_BOTH_LIBRARIES} - PRIVATE ${TEST_QT_MODULES} + PRIVATE ${QT_MODULES_TEST} ) add_test(NAME carddatabase_test COMMAND carddatabase_test) @@ -32,7 +32,7 @@ target_link_libraries( PRIVATE libcockatrice_models PRIVATE Threads::Threads PRIVATE ${GTEST_BOTH_LIBRARIES} - PRIVATE ${TEST_QT_MODULES} + PRIVATE ${QT_MODULES_TEST} ) if(NOT GTEST_FOUND) @@ -51,7 +51,7 @@ if(WITH_ORACLE OR WITH_CLIENT) PRIVATE libcockatrice_filters PRIVATE Threads::Threads PRIVATE ${GTEST_BOTH_LIBRARIES} - PRIVATE ${TEST_QT_MODULES} + PRIVATE ${QT_MODULES_TEST} ) add_test(NAME filter_string_test COMMAND filter_string_test) diff --git a/tests/deck_list_model/CMakeLists.txt b/tests/deck_list_model/CMakeLists.txt index e3096c559..ad8d472d7 100644 --- a/tests/deck_list_model/CMakeLists.txt +++ b/tests/deck_list_model/CMakeLists.txt @@ -11,7 +11,7 @@ target_link_libraries( libcockatrice_deck_list Threads::Threads ${GTEST_BOTH_LIBRARIES} - ${TEST_QT_MODULES} + ${QT_MODULES_TEST} ) add_test(NAME deck_list_model_custom_zones_test COMMAND deck_list_model_custom_zones_test) @@ -28,6 +28,6 @@ target_link_libraries( libcockatrice_deck_list Threads::Threads ${GTEST_BOTH_LIBRARIES} - ${TEST_QT_MODULES} + ${QT_MODULES_TEST} ) add_test(NAME deck_list_model_zone_integration_test COMMAND deck_list_model_zone_integration_test) diff --git a/tests/deck_list_zones/CMakeLists.txt b/tests/deck_list_zones/CMakeLists.txt index 0710be94d..c445ede88 100644 --- a/tests/deck_list_zones/CMakeLists.txt +++ b/tests/deck_list_zones/CMakeLists.txt @@ -5,6 +5,6 @@ if(NOT GTEST_FOUND) endif() target_link_libraries( - deck_list_zones_test libcockatrice_deck_list Threads::Threads ${GTEST_BOTH_LIBRARIES} ${TEST_QT_MODULES} + deck_list_zones_test libcockatrice_deck_list Threads::Threads ${GTEST_BOTH_LIBRARIES} ${QT_MODULES_TEST} ) add_test(NAME deck_list_zones_test COMMAND deck_list_zones_test) diff --git a/tests/loading_from_clipboard/CMakeLists.txt b/tests/loading_from_clipboard/CMakeLists.txt index 719d62f45..c144b6205 100644 --- a/tests/loading_from_clipboard/CMakeLists.txt +++ b/tests/loading_from_clipboard/CMakeLists.txt @@ -7,6 +7,6 @@ endif() target_link_libraries( loading_from_clipboard_test libcockatrice_deck_list libcockatrice_card Threads::Threads ${GTEST_BOTH_LIBRARIES} - ${TEST_QT_MODULES} + ${QT_MODULES_TEST} ) add_test(NAME loading_from_clipboard_test COMMAND loading_from_clipboard_test) diff --git a/tests/movecard_tests/CMakeLists.txt b/tests/movecard_tests/CMakeLists.txt index 769047148..eaa81b345 100755 --- a/tests/movecard_tests/CMakeLists.txt +++ b/tests/movecard_tests/CMakeLists.txt @@ -10,7 +10,7 @@ target_link_libraries( PRIVATE libcockatrice_rng PRIVATE Threads::Threads PRIVATE ${GTEST_BOTH_LIBRARIES} - PRIVATE ${TEST_QT_MODULES} + PRIVATE ${QT_MODULES_TEST} ) add_test(NAME reverse_card_move_test COMMAND reverse_card_move_test) diff --git a/tests/oracle/CMakeLists.txt b/tests/oracle/CMakeLists.txt index 9bc5ee5be..6e98fc469 100644 --- a/tests/oracle/CMakeLists.txt +++ b/tests/oracle/CMakeLists.txt @@ -4,7 +4,7 @@ if(NOT GTEST_FOUND) add_dependencies(parse_cipt_test gtest) endif() -target_link_libraries(parse_cipt_test Threads::Threads ${GTEST_BOTH_LIBRARIES} ${TEST_QT_MODULES}) +target_link_libraries(parse_cipt_test Threads::Threads ${GTEST_BOTH_LIBRARIES} ${QT_MODULES_TEST}) add_test(NAME parse_cipt_test COMMAND parse_cipt_test) @@ -20,7 +20,7 @@ endif() target_link_libraries( oracle_importer_test libcockatrice_card libcockatrice_interfaces Threads::Threads ${GTEST_BOTH_LIBRARIES} - ${TEST_QT_MODULES} + ${QT_MODULES_TEST} ) add_test(NAME oracle_importer_test COMMAND oracle_importer_test) @@ -64,6 +64,6 @@ target_link_libraries( libcockatrice_interfaces Threads::Threads ${GTEST_BOTH_LIBRARIES} - ${TEST_QT_MODULES} + ${QT_MODULES_TEST} ${_ORACLE_BENCH_EXTRA_LIBRARIES} ) diff --git a/tests/settings/CMakeLists.txt b/tests/settings/CMakeLists.txt index 7ee32a645..fdff92e6e 100644 --- a/tests/settings/CMakeLists.txt +++ b/tests/settings/CMakeLists.txt @@ -3,16 +3,16 @@ add_executable(settings_defaults_test settings_defaults_test.cpp) add_executable(settings_migration_test settings_migration_test.cpp) target_link_libraries( - settings_manager_test libcockatrice_settings Threads::Threads ${GTEST_BOTH_LIBRARIES} ${TEST_QT_MODULES} + settings_manager_test libcockatrice_settings Threads::Threads ${GTEST_BOTH_LIBRARIES} ${QT_MODULES_TEST} ) target_link_libraries( - settings_defaults_test libcockatrice_settings Threads::Threads ${GTEST_BOTH_LIBRARIES} ${TEST_QT_MODULES} + settings_defaults_test libcockatrice_settings Threads::Threads ${GTEST_BOTH_LIBRARIES} ${QT_MODULES_TEST} ) target_compile_definitions(settings_defaults_test PRIVATE SETTINGS_UNIT_TEST) target_link_libraries( - settings_migration_test libcockatrice_settings Threads::Threads ${GTEST_BOTH_LIBRARIES} ${TEST_QT_MODULES} + settings_migration_test libcockatrice_settings Threads::Threads ${GTEST_BOTH_LIBRARIES} ${QT_MODULES_TEST} ) add_test(NAME settings_manager_test COMMAND settings_manager_test)