Commit aad94b0 1 parent 32098a9 commit aad94b0 Copy full SHA for aad94b0
File tree 5 files changed +45
-48
lines changed
5 files changed +45
-48
lines changed Original file line number Diff line number Diff line change @@ -12,6 +12,11 @@ if (CMAKE_CXX_COMPILER_ID MATCHES GNU|Clang)
12
12
-Werror=switch -Werror=uninitialized -Werror=unused)
13
13
endif ()
14
14
15
+ set (QNC_COMPILE_DEFINITIONS
16
+ -DQT_DISABLE_DEPRECATED_BEFORE=0x050f00
17
+ -DQT_NO_CAST_FROM_ASCII=1
18
+ -DQT_NO_URL_CAST_FROM_STRING=1)
19
+
15
20
set (CMAKE_AUTOMOC ON )
16
21
set (CMAKE_AUTORCC ON )
17
22
set (CMAKE_AUTOUIC ON )
@@ -47,6 +52,28 @@ else()
47
52
endif ()
48
53
endif ()
49
54
55
+ function (qnc_add_library NAME )
56
+ qt_add_library(NAME ${ARGN} )
57
+
58
+ target_include_directories ("${NAME} " PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} )
59
+ target_compile_definitions ("${NAME} " PRIVATE ${QNC_COMPILE_DEFINITIONS} )
60
+ target_compile_options ("${NAME} " PRIVATE ${QNC_COMPILE_OPTIONS} )
61
+ endfunction ()
62
+
63
+ function (qnc_add_executable NAME )
64
+ cmake_parse_arguments (EXECUTABLE "" "TYPE" "" ${ARGN} )
65
+ qt_add_executable(NAME ${EXECUTABLE_UNPARSED_ARGUMENTS} )
66
+
67
+ target_compile_definitions ("${NAME} " PRIVATE ${QNC_COMPILE_DEFINITIONS} )
68
+ target_compile_options ("${NAME} " PRIVATE ${QNC_COMPILE_OPTIONS} )
69
+
70
+ set_target_properties (
71
+ "${NAME} " PROPERTIES
72
+ MACOSX_BUNDLE "de.taschenorakel.qnc.${NAME} "
73
+ XCODE_PRODUCT_TYPE "com.apple.product-type.bundle.${EXECUTABLE_TYPE} "
74
+ )
75
+ endfunction ()
76
+
50
77
add_custom_target (metadata SOURCES LICENSE README.md )
51
78
52
79
add_subdirectory (.github)
Original file line number Diff line number Diff line change 1
1
if (NOT IOS) # FIXME Figure out code signing on Github
2
- add_executable (HttpCompressingServer compressingserver.cpp)
3
- target_compile_options (HttpCompressingServer PRIVATE ${QNC_COMPILE_OPTIONS} )
2
+ qnc_add_executable(HttpCompressingServer TYPE tool compressingserver.cpp)
4
3
target_link_libraries (HttpCompressingServer PUBLIC Qt::Network QtNetworkCrumbs::Zlib)
5
-
6
- set_target_properties (
7
- HttpCompressingServer PROPERTIES
8
- MACOSX_BUNDLE "de.taschenorakel.qnc.HttpCompressingServer"
9
- XCODE_PRODUCT_TYPE "com.apple.product-type.bundle.unit-test"
10
- )
11
4
endif ()
Original file line number Diff line number Diff line change 1
- add_library (
1
+ qcn_add_library (
2
2
MDNSResolver STATIC
3
3
mdnsmessage.cpp
4
4
mdnsmessage.h
5
5
mdnsresolver.cpp
6
6
mdnsresolver.h
7
7
)
8
8
9
- target_include_directories (MDNSResolver PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} )
10
- target_compile_options (MDNSResolver PRIVATE ${QNC_COMPILE_OPTIONS} )
11
9
target_link_libraries (MDNSResolver PUBLIC QtNetworkCrumbs)
12
10
13
- target_compile_definitions (
14
- MDNSResolver PRIVATE
15
- -DQT_DISABLE_DEPRECATED_BEFORE=0x050f00
16
- -DQT_NO_CAST_FROM_ASCII=1
17
- -DQT_NO_URL_CAST_FROM_STRING=1
18
- )
19
11
20
12
if (NOT IOS) # FIXME Figure out code signing on Github
21
- add_executable (MDNSResolverDemo mdnsresolverdemo.cpp)
13
+ qnc_add_executable (MDNSResolverDemo TYPE tool mdnsresolverdemo.cpp)
22
14
target_link_libraries (MDNSResolverDemo PRIVATE MDNSResolver)
23
-
24
- set_target_properties (
25
- MDNSResolverDemo PROPERTIES
26
- MACOSX_BUNDLE "de.taschenorakel.qnc.MDNSResolverDemo"
27
- XCODE_PRODUCT_TYPE "com.apple.product-type.bundle.unit-test"
28
- )
29
15
endif ()
30
16
31
17
#if (WIN32)
32
- # add_executable(WinDNSTest windnstest.cpp)
33
- # target_compile_definitions(WinDNSTest PRIVATE -DWINAPI_FAMILY=WINAPI_FAMILY_DESKTOP_APP)
18
+ # qnc_add_executable(WinDNSTest TYPE tool windnstest.cpp)
34
19
# target_link_libraries(WinDNSTest dnsapi.lib)
35
20
#endif()
Original file line number Diff line number Diff line change 1
- add_library (
1
+ qnc_add_library (
2
2
QtNetworkCrumbs STATIC
3
3
qncliterals.h
4
4
qncliterals.cpp
5
5
)
6
6
7
- target_include_directories (QtNetworkCrumbs PUBLIC ${CMAKE_CURRENT_SOURCE_DIR} )
8
- target_compile_options (QtNetworkCrumbs PRIVATE ${QNC_COMPILE_OPTIONS} )
9
7
target_link_libraries (QtNetworkCrumbs PUBLIC Qt::Network)
10
-
11
- target_compile_definitions (
12
- QtNetworkCrumbs PRIVATE
13
- -DQT_DISABLE_DEPRECATED_BEFORE=0x050f00
14
- -DQT_NO_CAST_FROM_ASCII=1
15
- -DQT_NO_URL_CAST_FROM_STRING=1
16
- )
17
-
Original file line number Diff line number Diff line change 6
6
unset (TEST_RUNNER)
7
7
endif ()
8
8
9
- function (add_testcase NAME )
10
- add_executable (${NAME} ${NAME} .cpp)
11
- target_compile_options (${NAME} PRIVATE ${QNC_COMPILE_OPTIONS} )
12
- target_link_libraries (${NAME} PRIVATE MDNSResolver Qt::Test )
9
+ function (add_testcase SOURCE_FILENAME) # [SOURCES...]
10
+ cmake_parse_arguments (TESTCASE "" "NAME" "LIBRARIES;SOURCES" ${ARGN} )
13
11
14
- set_target_properties (
15
- ${NAME} PROPERTIES
16
- MACOSX_BUNDLE "de.taschenorakel.qnc.${NAME} "
17
- XCODE_PRODUCT_TYPE "com.apple.product-type.bundle.unit-test" )
12
+ if (NOT TESTCASE_NAME)
13
+ cmake_path(GET SOURCE_FILENAME STEM TESTCASE_NAME)
14
+ endif ()
18
15
19
- add_test (NAME ${NAME} COMMAND ${TEST_RUNNER} $<TARGET_FILE:${NAME} >)
16
+ list (PREPEND TESTCASE_SOURCES "${SOURCE_FILENAME} " )
17
+ list (APPEND TESTCASE_SOURCES ${TESTCASE_UNPARSED_ARGUMENTS} )
18
+
19
+ qnc_add_executable("${TESTCASE_NAME} " TYPE "unit-test" ${TESTCASE_SOURCES} )
20
+ target_link_libraries ("${TESTCASE_NAME} " PRIVATE Qt::Test ${TESTCASE_LIBRARIES} )
21
+ add_test (NAME "${TESTCASE_NAME} " COMMAND "${TEST_RUNNER} " "$<TARGET_FILE:${TESTCASE_NAME} >" )
20
22
endfunction ()
21
23
22
- add_testcase(tst_mdnsmessages)
23
- add_testcase(tst_mdnsresolver)
24
+ add_testcase(tst_mdnsmessages.cpp LIBRARIES MDNSResolver )
25
+ add_testcase(tst_mdnsresolver.cpp LIBRARIES MDNSResolver )
You can’t perform that action at this time.
0 commit comments