blob: 513995c4cf9cca36fca0e4e1e901f2e9507dcb21 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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
)
|