Skip to content

Commit 7c759ff

Browse files
committed
Refactor Zend signals check into its own file
1 parent 478237d commit 7c759ff

File tree

3 files changed

+42
-36
lines changed

3 files changed

+42
-36
lines changed

cmake/Zend/CMakeLists.txt

Lines changed: 1 addition & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -63,19 +63,6 @@ include(CMakePushCheckState)
6363
include(FeatureSummary)
6464
include(PHP/AddCustomCommand)
6565

66-
################################################################################
67-
# Configuration.
68-
################################################################################
69-
70-
cmake_dependent_option(
71-
ZEND_SIGNALS
72-
"Enable Zend signal handling"
73-
ON
74-
[[NOT CMAKE_SYSTEM_NAME STREQUAL "Windows"]]
75-
OFF
76-
)
77-
mark_as_advanced(ZEND_SIGNALS)
78-
7966
################################################################################
8067
# Add library.
8168
################################################################################
@@ -426,28 +413,7 @@ include(cmake/Fibers.cmake)
426413
include(cmake/GenerateGrammar.cmake)
427414
include(cmake/GlobalRegisterVariables.cmake)
428415
include(cmake/MaxExecutionTimers.cmake)
429-
430-
################################################################################
431-
# Zend signals.
432-
################################################################################
433-
434-
message(CHECK_START "Checking whether to enable Zend signal handling")
435-
check_symbol_exists(sigaction signal.h HAVE_SIGACTION)
436-
if(HAVE_SIGACTION AND ZEND_SIGNALS)
437-
message(CHECK_PASS "yes")
438-
439-
# zend_config.h (or its parent php_config.h) isn't included in some zend_*
440-
# files, therefore also compilation definition is added.
441-
target_compile_definitions(zend PUBLIC ZEND_SIGNALS)
442-
else()
443-
set(ZEND_SIGNALS OFF)
444-
message(CHECK_FAIL "no")
445-
endif()
446-
add_feature_info(
447-
"Zend signals"
448-
ZEND_SIGNALS
449-
"signal handling for performance"
450-
)
416+
include(cmake/Signals.cmake)
451417

452418
################################################################################
453419
# Create files and set installation.

cmake/Zend/cmake/Signals.cmake

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
#[=============================================================================[
2+
Check whether to enable Zend signals.
3+
#]=============================================================================]
4+
5+
include(CheckSymbolExists)
6+
include(CMakeDependentOption)
7+
include(FeatureSummary)
8+
9+
cmake_dependent_option(
10+
ZEND_SIGNALS
11+
"Enable Zend signal handling"
12+
ON
13+
[[NOT CMAKE_SYSTEM_NAME STREQUAL "Windows"]]
14+
OFF
15+
)
16+
mark_as_advanced(ZEND_SIGNALS)
17+
18+
message(CHECK_START "Checking whether to enable Zend signal handling")
19+
20+
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
21+
set(HAVE_SIGACTION FALSE)
22+
endif()
23+
24+
check_symbol_exists(sigaction signal.h HAVE_SIGACTION)
25+
26+
if(HAVE_SIGACTION AND ZEND_SIGNALS)
27+
message(CHECK_PASS "yes")
28+
29+
# zend_config.h (or its wrapper php_config.h) isn't included in some zend_*
30+
# files, therefore also compilation definition is added.
31+
target_compile_definitions(zend PUBLIC ZEND_SIGNALS)
32+
else()
33+
set(ZEND_SIGNALS OFF)
34+
message(CHECK_FAIL "no")
35+
endif()
36+
37+
add_feature_info(
38+
"Zend signals"
39+
ZEND_SIGNALS
40+
"signal handling for performance"
41+
)

cmake/cmake/platforms/Windows.cmake

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,6 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
131131
set(HAVE_SETITIMER FALSE)
132132
set(HAVE_SETPROCTITLE FALSE)
133133
set(HAVE_SHM_CREATE_LARGEPAGE FALSE)
134-
set(HAVE_SIGACTION FALSE)
135134
set(HAVE_SIGPROCMASK FALSE)
136135
set(HAVE_SIGSETJMP FALSE) # Windows has setjmp() in <setjmp.h> instead.
137136
set(HAVE_SIZEOF_GID_T FALSE)

0 commit comments

Comments
 (0)