@@ -16,65 +16,97 @@ include_guard(GLOBAL)
1616include (CMakeDependentOption)
1717include (FeatureSummary)
1818
19- set (PHP_UNAME "" CACHE STRING "Build system uname" )
20- mark_as_advanced (PHP_UNAME)
21-
22- if (CMAKE_UNAME AND NOT PHP_UNAME)
23- execute_process (
24- COMMAND ${CMAKE_UNAME} -a
25- OUTPUT_VARIABLE PHP_UNAME
26- OUTPUT_STRIP_TRAILING_WHITESPACE
27- ERROR_QUIET
19+ block()
20+ set (CACHE {PHP_UNAME} TYPE STRING HELP "Build system uname" VALUE "" )
21+ mark_as_advanced (PHP_UNAME)
22+
23+ find_program (
24+ PHP_UNAME_EXECUTABLE
25+ NAMES uname
26+ DOC "Path to the uname command-line executable"
2827 )
29- elseif (NOT PHP_UNAME AND CMAKE_HOST_SYSTEM )
30- set_property (CACHE PHP_UNAME PROPERTY VALUE "${CMAKE_HOST_SYSTEM} " )
31- endif ()
28+ mark_as_advanced (PHP_UNAME_EXECUTABLE)
29+
30+ if (NOT PHP_UNAME AND PHP_UNAME_EXECUTABLE)
31+ execute_process (
32+ COMMAND ${PHP_UNAME_EXECUTABLE} -a
33+ OUTPUT_VARIABLE output
34+ OUTPUT_STRIP_TRAILING_WHITESPACE
35+ ERROR_QUIET
36+ )
37+ set_property (CACHE PHP_UNAME PROPERTY VALUE "${output} " )
38+ elseif (NOT PHP_UNAME AND CMAKE_HOST_SYSTEM )
39+ set_property (CACHE PHP_UNAME PROPERTY VALUE "${CMAKE_HOST_SYSTEM} " )
40+ endif ()
41+ endblock()
3242
33- set (PHP_BUILD_SYSTEM "${PHP_UNAME} " CACHE STRING "Build system uname" )
43+ set (
44+ CACHE {PHP_BUILD_SYSTEM}
45+ TYPE STRING
46+ HELP "Build system uname"
47+ VALUE "${PHP_UNAME} "
48+ )
3449mark_as_advanced (PHP_BUILD_SYSTEM)
3550
3651set (
37- PHP_BUILD_ARCH "${CMAKE_C_COMPILER_ARCHITECTURE_ID} "
38- CACHE STRING "Build target architecture displayed in phpinfo"
52+ CACHE {PHP_BUILD_ARCH}
53+ TYPE STRING
54+ HELP "Build target architecture displayed in phpinfo"
55+ VALUE "${CMAKE_C_COMPILER_ARCHITECTURE_ID} "
3956)
4057mark_as_advanced (PHP_BUILD_ARCH)
4158
4259set (
43- PHP_BUILD_COMPILER "${CMAKE_C_COMPILER_ID} ${CMAKE_C_COMPILER_VERSION} "
44- CACHE STRING "Compiler used for build displayed in phpinfo"
60+ CACHE {PHP_BUILD_COMPILER}
61+ TYPE STRING
62+ HELP "Compiler used for build displayed in phpinfo"
63+ VALUE "${CMAKE_C_COMPILER_ID} ${CMAKE_C_COMPILER_VERSION} "
4564)
4665mark_as_advanced (PHP_BUILD_COMPILER)
4766
48- set (PHP_BUILD_PROVIDER "" CACHE STRING "Build provider displayed in phpinfo" )
67+ set (
68+ CACHE {PHP_BUILD_PROVIDER}
69+ TYPE STRING
70+ HELP "Build provider displayed in phpinfo"
71+ VALUE ""
72+ )
4973mark_as_advanced (PHP_BUILD_PROVIDER)
5074
5175set (
52- PHP_INCLUDE_PREFIX "php"
53- CACHE STRING
54- "The relative directory inside the CMAKE_INSTALL_INCLUDEDIR, where to install\
55- PHP headers. For example, 'php/${PHP_VERSION} ' to specify version or other\
56- build-related characteristics and have multiple PHP versions installed.\
57- Absolute paths are treated as relative; set CMAKE_INSTALL_INCLUDEDIR if\
58- absolute path needs to be set."
76+ CACHE {PHP_INCLUDE_PREFIX}
77+ TYPE STRING
78+ HELP
79+ "The relative directory inside the CMAKE_INSTALL_INCLUDEDIR, where to "
80+ "install PHP headers. For example, 'php/${PHP_VERSION} ' to specify version "
81+ "or other build-related characteristics and have multiple PHP versions "
82+ "installed. Absolute paths are treated as relative; set "
83+ "CMAKE_INSTALL_INCLUDEDIR if absolute path needs to be set."
84+ VALUE "php"
5985)
6086mark_as_advanced (PHP_INCLUDE_PREFIX)
6187
6288set (
63- PHP_CONFIG_FILE_SCAN_DIR ""
64- CACHE PATH "The path where to scan for additional INI configuration files; By\
65- default it is empty value; Pass it as a relative path inside the install\
66- prefix, which will be automatically prepended; If given as an absolute path,\
67- install prefix is not prepended."
89+ CACHE {PHP_CONFIG_FILE_SCAN_DIR}
90+ TYPE PATH
91+ HELP
92+ "The path where to scan for additional INI configuration files; By default "
93+ "it is empty value; Pass it as a relative path inside the install prefix, "
94+ "which will be automatically prepended; If given as an absolute path, "
95+ "install prefix is not prepended."
96+ VALUE ""
6897)
6998mark_as_advanced (PHP_CONFIG_FILE_SCAN_DIR)
7099
71100if (NOT CMAKE_SYSTEM_NAME STREQUAL "Windows" )
72101 set (
73- PHP_CONFIG_FILE_PATH ""
74- CACHE FILEPATH "The path in which to look for php.ini; By default, it is\
75- set to SYSCONFDIR (etc); Relative path gets the CMAKE_INSTALL_PREFIX\
76- automatically prepended; If given as an absolute path, install prefix is\
77- not appended."
102+ CACHE {PHP_CONFIG_FILE_PATH}
103+ TYPE FILEPATH
104+ HELP
105+ "The path in which to look for php.ini; By default, it is set to "
106+ "SYSCONFDIR (etc); Relative path gets the CMAKE_INSTALL_PREFIX "
107+ "automatically prepended; If given as an absolute path, install prefix "
108+ "is not appended."
109+ VALUE ""
78110 )
79111 mark_as_advanced (PHP_CONFIG_FILE_PATH)
80112 if (NOT PHP_CONFIG_FILE_PATH)
@@ -86,10 +118,20 @@ if(NOT CMAKE_SYSTEM_NAME STREQUAL "Windows")
86118 endif ()
87119endif ()
88120
89- set (PHP_PROGRAM_PREFIX "" CACHE STRING "Prepend prefix to the program names" )
121+ set (
122+ CACHE {PHP_PROGRAM_PREFIX}
123+ TYPE STRING
124+ HELP "Prepend prefix to the program names"
125+ VALUE ""
126+ )
90127mark_as_advanced (PHP_PROGRAM_PREFIX)
91128
92- set (PHP_PROGRAM_SUFFIX "" CACHE STRING "Append suffix to the program names" )
129+ set (
130+ CACHE {PHP_PROGRAM_SUFFIX}
131+ TYPE STRING
132+ HELP "Append suffix to the program names"
133+ VALUE ""
134+ )
93135mark_as_advanced (PHP_PROGRAM_SUFFIX)
94136
95137option (PHP_THREAD_SAFETY "Enable thread safety (ZTS)" )
@@ -130,13 +172,18 @@ mark_as_advanced(PHP_DMALLOC)
130172option (PHP_DTRACE "Enable DTrace support" )
131173mark_as_advanced (PHP_DTRACE)
132174
133- set (PHP_FD_SETSIZE "" CACHE STRING "Size of file descriptor sets" )
175+ set (
176+ CACHE {PHP_FD_SETSIZE}
177+ TYPE STRING
178+ HELP "Size of file descriptor sets"
179+ VALUE ""
180+ )
181+ mark_as_advanced (PHP_FD_SETSIZE)
134182if (CMAKE_SYSTEM_NAME STREQUAL "Windows" AND PHP_FD_SETSIZE STREQUAL "" )
135183 # This allows up to 256 sockets to be select()ed in a single call to select(),
136184 # instead of the usual 64.
137185 set_property (CACHE PHP_FD_SETSIZE PROPERTY VALUE "256" )
138186endif ()
139- mark_as_advanced (PHP_FD_SETSIZE)
140187
141188option (PHP_VALGRIND "Enable the Valgrind support" )
142189mark_as_advanced (PHP_VALGRIND)
@@ -167,30 +214,30 @@ mark_as_advanced(PHP_CCACHE)
167214################################################################################
168215
169216set (
170- PHP_EXTENSION_DIR ""
171- CACHE PATH
172- "Default directory for dynamically loadable PHP extensions. If left empty, it\
173- is determined automatically. Can be overridden using the PHP 'extension_dir'\
174- INI directive."
217+ CACHE {PHP_EXTENSION_DIR}
218+ TYPE PATH
219+ HELP
220+ "Default directory for dynamically loadable PHP extensions. If left empty, "
221+ "it is determined automatically. Can be overridden using the PHP "
222+ "'extension_dir' INI directive."
223+ VALUE ""
175224)
176225mark_as_advanced (PHP_EXTENSION_DIR)
177226
178227# Assemble the PHP_EXTENSION_DIR default value.
179- block()
180- if (NOT PHP_EXTENSION_DIR)
181- set (
182- extensionDir
183- "${CMAKE_INSTALL_LIBDIR} /php/$<TARGET_PROPERTY:Zend::Zend,ZEND_MODULE_API_NO>$<$<BOOL:$<TARGET_PROPERTY:PHP::config,PHP_THREAD_SAFETY>>:-zts>$<$<BOOL:$<CONFIG>>:-$<CONFIG>>"
184- )
185-
186- # This would resemble the PHP Autotools --with-layout=GNU:
187- #set(extensionDir "${CMAKE_INSTALL_LIBDIR}/php/$<TARGET_PROPERTY:Zend::Zend,ZEND_MODULE_API_NO>$<$<BOOL:$<TARGET_PROPERTY:PHP::config,PHP_THREAD_SAFETY>>:-zts>$<$<CONFIG:Debug,DebugAssertions>:-debug>")
188- # This would resemble the PHP Autotools --with-layout=PHP (default):
189- #set(extensionDir "${CMAKE_INSTALL_LIBDIR}/php/extensions/$<IF:$<CONFIG:Debug,DebugAssertions>,debug,no-debug>$<IF:$<BOOL:$<TARGET_PROPERTY:PHP::config,PHP_THREAD_SAFETY>>,-zts,-non-zts>-$<TARGET_PROPERTY:Zend::Zend,ZEND_MODULE_API_NO>")
228+ if (NOT PHP_EXTENSION_DIR)
229+ set_property (
230+ CACHE PHP_EXTENSION_DIR
231+ PROPERTY
232+ VALUE
233+ "${CMAKE_INSTALL_LIBDIR} /php/$<TARGET_PROPERTY:Zend::Zend,ZEND_MODULE_API_NO>$<$<BOOL:$<TARGET_PROPERTY:PHP::config,PHP_THREAD_SAFETY>>:-zts>$<$<BOOL:$<CONFIG>>:-$<CONFIG>>"
234+ )
190235
191- set_property (CACHE PHP_EXTENSION_DIR PROPERTY VALUE "${extensionDir} " )
192- endif ()
193- endblock()
236+ # This would resemble the PHP Autotools --with-layout=GNU:
237+ #set(extension_dir "${CMAKE_INSTALL_LIBDIR}/php/$<TARGET_PROPERTY:Zend::Zend,ZEND_MODULE_API_NO>$<$<BOOL:$<TARGET_PROPERTY:PHP::config,PHP_THREAD_SAFETY>>:-zts>$<$<CONFIG:Debug,DebugAssertions>:-debug>")
238+ # This would resemble the PHP Autotools --with-layout=PHP (default):
239+ #set(extension_dir "${CMAKE_INSTALL_LIBDIR}/php/extensions/$<IF:$<CONFIG:Debug,DebugAssertions>,debug,no-debug>$<IF:$<BOOL:$<TARGET_PROPERTY:PHP::config,PHP_THREAD_SAFETY>>,-zts,-non-zts>-$<TARGET_PROPERTY:Zend::Zend,ZEND_MODULE_API_NO>")
240+ endif ()
194241
195242################################################################################
196243# Various global internal configuration.
0 commit comments