@@ -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