-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
61 lines (52 loc) · 1.28 KB
/
CMakeLists.txt
File metadata and controls
61 lines (52 loc) · 1.28 KB
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
include(CheckLinkerFlag)
include(FeatureSummary)
# Run extra tests.
if(TARGET PHP::sapi::cli AND NOT CMAKE_SYSTEM_NAME STREQUAL "Windows")
add_test(
NAME PhpRunExtraTests
COMMAND PHP::sapi::cli ${CMAKE_CURRENT_SOURCE_DIR}/../run-extra-tests.php
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/..
)
endif()
# PHP unit tests using PHP embed SAPI.
if(NOT TARGET PHP::sapi::embed)
return()
endif()
find_package(cmocka 1.1.0)
set_package_properties(
cmocka
PROPERTIES
TYPE RECOMMENDED
PURPOSE "Necessary to run PHP unit tests."
)
if(NOT cmocka_FOUND)
return()
endif()
add_executable(
php_unit_test_network
unit/main/test_network.c
)
target_link_libraries(
php_unit_test_network
PRIVATE
PHP::sapi::embed
PHP::config
cmocka::cmocka
)
# TODO: Fix this.
set_target_properties(php_unit_test_network PROPERTIES PHP_CLI TRUE)
check_linker_flag(C LINKER:--wrap=connect PHP_HAS_C_FLAG_WRAP)
if(PHP_HAS_C_FLAG_WRAP)
target_link_options(
php_unit_test_network
PRIVATE
$<$<LINK_LANGUAGE:C>:LINKER:--wrap=connect>
$<$<LINK_LANGUAGE:C>:LINKER:--wrap=poll>
$<$<LINK_LANGUAGE:C>:LINKER:--wrap=getsockopt>
$<$<LINK_LANGUAGE:C>:LINKER:--wrap=gettimeofday>
)
endif()
add_test(
NAME PhpUnitTestNetwork
COMMAND php_unit_test_network
)