diff options
Diffstat (limited to 'tests/auto/cmake/test_qt_manual_moc/CMakeLists.txt')
-rw-r--r-- | tests/auto/cmake/test_qt_manual_moc/CMakeLists.txt | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/tests/auto/cmake/test_qt_manual_moc/CMakeLists.txt b/tests/auto/cmake/test_qt_manual_moc/CMakeLists.txt new file mode 100644 index 0000000000..513995c4cf --- /dev/null +++ b/tests/auto/cmake/test_qt_manual_moc/CMakeLists.txt @@ -0,0 +1,61 @@ +# Copyright (C) 2024 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause + +cmake_minimum_required(VERSION 3.16) + +find_package(Qt6 ${PROJECT_VERSION} CONFIG REQUIRED COMPONENTS BuildInternals Core) + +set(CMAKE_AUTOMOC FALSE) + +qt_manual_moc(moc_files testclass.h + DEFINITIONS + -DMY_FIRST_DEF + MY_SECOND_DEF + -DMY_THIRD_DEF=1 + MY_FOURTH_DEF=1 +) + +add_custom_target(verify_testclass ALL COMMAND ${CMAKE_COMMAND} + "-DMOC_ARGS=moc_testclass.cpp_parameters$<$<BOOL:$<CONFIG>>:_$<CONFIG>>" + "-DDEFINITIONS=MY_FIRST_DEF;MY_SECOND_DEF;MY_THIRD_DEF=1;MY_FOURTH_DEF=1" + -P "${CMAKE_CURRENT_SOURCE_DIR}/VerifyDefines.cmake" + VERBATIM +) + +add_library(MyInterfaceLib INTERFACE) +target_compile_definitions(MyInterfaceLib INTERFACE -DMY_TRANSITIVE_DEF=1) + +add_library(MyLib SHARED testclass1.h testclass.cpp) +target_link_libraries(MyLib PRIVATE Qt6::Core MyInterfaceLib) +target_compile_definitions(MyLib PRIVATE + -DMY_FIRST_DEF + MY_SECOND_DEF + -DMY_THIRD_DEF=1 + MY_FOURTH_DEF=1 +) + +add_library(MyLib2 SHARED testclass1.h testclass.cpp) +target_link_libraries(MyLib2 PRIVATE Qt6::Core) +target_compile_definitions(MyLib2 PRIVATE + -DMY_FOREIGN_DEF +) + +qt_manual_moc(moc_files testclass1.h TARGETS MyLib MyLib2) +target_sources(MyLib PRIVATE ${moc_files}) +target_sources(MyLib2 PRIVATE ${moc_files}) + +string(JOIN ";" expected + "MY_FIRST_DEF" + "MY_SECOND_DEF" + "MY_THIRD_DEF=1" + "MY_FOURTH_DEF=1" + "MY_TRANSITIVE_DEF=1" + "MY_FOREIGN_DEF" +) + +add_custom_target(verify_testclass1 ALL COMMAND ${CMAKE_COMMAND} + "-DMOC_ARGS=moc_testclass1.cpp_parameters$<$<BOOL:$<CONFIG>>:_$<CONFIG>>" + "-DDEFINITIONS=${expected}" + -P "${CMAKE_CURRENT_SOURCE_DIR}/VerifyDefines.cmake" + VERBATIM +) |