1+ ##############################################################################
2+ # Configure pkg-config php.pc metadata file.
3+ ##############################################################################
4+
5+ include (PHP/PkgConfig)
6+ php_pkgconfig_generate_pc(
7+ php.pc.in
8+ php.pc
9+ TARGET PHP::sapi::cli
10+ VARIABLES
11+ prefix "$<INSTALL_PREFIX>"
12+ exec_prefix "$<INSTALL_PREFIX>"
13+ includedir "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_INCLUDEDIR} ,$<INSTALL_PREFIX>>"
14+ php_include_prefix "${PHP_INCLUDE_PREFIX} "
15+ libdir "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_LIBDIR} ,$<INSTALL_PREFIX>>"
16+ PHP_VERSION "${PHP_VERSION} "
17+ PHP_VERSION_ID "${PHP_VERSION_ID} "
18+ PHP_EXTENSION_DIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,${PHP_EXTENSION_DIR} ,$<INSTALL_PREFIX>>"
19+ PHP_CONFIG_FILE_SCAN_DIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,${PHP_CONFIG_FILE_SCAN_DIR} ,$<INSTALL_PREFIX>>"
20+ PHP_CONFIG_FILE_PATH "$<PATH:ABSOLUTE_PATH,NORMALIZE,${PHP_CONFIG_FILE_PATH} ,$<INSTALL_PREFIX>>"
21+ PHP_DEBUG "$<IF:$<CONFIG:Debug,DebugAssertions>,yes,no>"
22+ PHP_THREAD_SAFETY "$<IF:$<BOOL:$<TARGET_PROPERTY:PHP::config,PHP_THREAD_SAFETY>>,yes,no>"
23+ )
24+
25+ install (
26+ FILES ${CMAKE_CURRENT_BINARY_DIR} /php.pc
27+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /pkgconfig
28+ )
29+
30+ # The rest of the configuration here is for *nix systems.
31+ if (CMAKE_SYSTEM_NAME STREQUAL "Windows" )
32+ return ()
33+ endif ()
34+
135##############################################################################
236# Configure man documentation.
337##############################################################################
438
539block()
6- if (NOT CMAKE_SYSTEM_NAME STREQUAL "Windows" )
7- set (program_prefix "${PHP_PROGRAM_PREFIX} " )
8-
9- message (STATUS "Creating scripts/man1/php-config.1" )
10- configure_file (man1/php-config.1.in man1/php-config.1 @ONLY)
11- install (
12- FILES ${PROJECT_BINARY_DIR} /scripts/man1/php-config.1
13- RENAME ${PHP_PROGRAM_PREFIX} php-config${PHP_PROGRAM_SUFFIX} .1
14- DESTINATION ${CMAKE_INSTALL_MANDIR} /man1
15- )
40+ set (program_prefix "${PHP_PROGRAM_PREFIX} " )
1641
17- message (STATUS "Creating scripts/man1/phpize.1" )
18- configure_file (man1/phpize.1.in man1/phpize.1 @ONLY)
19- install (
20- FILES ${PROJECT_BINARY_DIR} /scripts/man1/phpize.1
21- RENAME ${PHP_PROGRAM_PREFIX} phpize${PHP_PROGRAM_SUFFIX} .1
22- DESTINATION ${CMAKE_INSTALL_MANDIR} /man1
23- )
24- endif ()
25- endblock()
42+ message (STATUS "Creating scripts/man1/php-config.1" )
43+ configure_file (man1/php-config.1.in man1/php-config.1 @ONLY)
44+ install (
45+ FILES ${PROJECT_BINARY_DIR} /scripts/man1/php-config.1
46+ RENAME ${PHP_PROGRAM_PREFIX} php-config${PHP_PROGRAM_SUFFIX} .1
47+ DESTINATION ${CMAKE_INSTALL_MANDIR} /man1
48+ )
2649
27- # The php-config and phpize scripts.
28- block()
29- find_program (
30- SED_EXECUTABLE
31- NAMES
32- sed # Default name available on most *nix systems
33- gsed # Brew gnu-sed package
34- DOC "Path to the stream editor (sed) for filtering and transforming text"
50+ message (STATUS "Creating scripts/man1/phpize.1" )
51+ configure_file (man1/phpize.1.in man1/phpize.1 @ONLY)
52+ install (
53+ FILES ${PROJECT_BINARY_DIR} /scripts/man1/phpize.1
54+ RENAME ${PHP_PROGRAM_PREFIX} phpize${PHP_PROGRAM_SUFFIX} .1
55+ DESTINATION ${CMAKE_INSTALL_MANDIR} /man1
3556 )
36- mark_as_advanced (SED_EXECUTABLE)
37- if (SED_EXECUTABLE)
38- set (SED "${SED_EXECUTABLE} " )
39- else ()
40- message (WARNING "sed not found, setting default to /usr/bin/sed" )
41- set (SED /usr/bin/sed)
42- endif ()
57+ endblock()
4358
44- ##############################################################################
59+ ################################################################################
60+ # Configure php-config script.
61+ ################################################################################
62+
63+ # Find sed for php-config and phpize scripts.
64+ find_program (
65+ PHP_SED_EXECUTABLE
66+ NAMES
67+ sed # Default name available on most *nix systems
68+ gsed # Brew gnu-sed package
69+ DOC "Path to the stream editor (sed) for filtering and transforming text"
70+ )
71+ mark_as_advanced (PHP_SED_EXECUTABLE)
72+ if (PHP_SED_EXECUTABLE)
73+ set (PHP_SED "${PHP_SED_EXECUTABLE} " )
74+ else ()
75+ message (WARNING "sed not found, setting default to /usr/bin/sed" )
76+ set (PHP_SED /usr/bin/sed)
77+ endif ()
78+
79+ block()
4580 message (STATUS "Creating scripts/php-config" )
46- ##############################################################################
4781
4882 get_property (sapis GLOBAL PROPERTY PHP_SAPIS)
4983 set (sapis "$<JOIN:$<LIST:SORT,${sapis} >, >" )
@@ -58,6 +92,7 @@ block()
5892 content
5993 "${content} "
6094 )
95+
6196 # For consistency, add include directories that were specified as
6297 # INSTALL_INTERFACE.
6398 string (
@@ -75,16 +110,16 @@ block()
75110 )
76111
77112 if (TARGET PHP::sapi::embed)
78- get_target_property (embed_type PHP::sapi::embed TYPE )
79- if (embed_type MATCHES "^(MODULE|SHARED)_LIBRARY$" )
113+ get_target_property (type PHP::sapi::embed TYPE )
114+ if (type MATCHES "^(MODULE|SHARED)_LIBRARY$" )
80115 set (PHP_EMBED_TYPE "shared" )
81116 else ()
82117 set (PHP_EMBED_TYPE "static" )
83118 endif ()
84119 endif ()
85120
86121 string (CONFIGURE [[
87- set(SED "@SED @")
122+ set(SED "@PHP_SED @")
88123 set(prefix "${CMAKE_INSTALL_PREFIX}")
89124 set(datarootdir "$<PATH:ABSOLUTE_PATH,NORMALIZE,@CMAKE_INSTALL_DATAROOTDIR@,${CMAKE_INSTALL_PREFIX}>")
90125 set(exec_prefix "${CMAKE_INSTALL_PREFIX}")
@@ -100,7 +135,6 @@ block()
100135 set(program_prefix "@PHP_PROGRAM_PREFIX@")
101136 set(program_suffix "@PHP_PROGRAM_SUFFIX@")
102137 set(EXEEXT "@CMAKE_EXECUTABLE_SUFFIX@")
103- # TODO:
104138 set(CONFIGURE_OPTIONS "")
105139 set(PHP_INSTALLED_SAPIS "@sapis@")
106140 set(EXPANDED_PHP_CONFIG_FILE_SCAN_DIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,@PHP_CONFIG_FILE_SCAN_DIR@,${CMAKE_INSTALL_PREFIX}>")
@@ -137,10 +171,14 @@ block()
137171 DESTINATION ${CMAKE_INSTALL_BINDIR}
138172 RENAME ${PHP_PROGRAM_PREFIX} php-config${PHP_PROGRAM_SUFFIX}
139173 )
174+ endblock()
140175
141- ##############################################################################
176+ ################################################################################
177+ # Configure phpize script.
178+ ################################################################################
179+
180+ block()
142181 message (STATUS "Creating scripts/phpize" )
143- ##############################################################################
144182
145183 # Patch phpize template: Replace the upstream phpize script hardcoded php
146184 # include directory to a template placeholder.
@@ -160,7 +198,7 @@ block()
160198 set(exec_prefix "${CMAKE_INSTALL_PREFIX}")
161199 set(libdir "$<PATH:ABSOLUTE_PATH,NORMALIZE,@CMAKE_INSTALL_LIBDIR@/php,${CMAKE_INSTALL_PREFIX}>")
162200 set(includedir "$<PATH:ABSOLUTE_PATH,NORMALIZE,@CMAKE_INSTALL_INCLUDEDIR@/@PHP_INCLUDE_PREFIX@,${CMAKE_INSTALL_PREFIX}>")
163- set(SED "@SED @")
201+ set(SED "@PHP_SED @")
164202 ]] code @ONLY)
165203 cmake_language(EVAL CODE "${code} " )
166204 string (CONFIGURE "${content} " content @ONLY)
@@ -186,55 +224,30 @@ block()
186224 )
187225endblock()
188226
189- # Configure pkg-config php.pc metadata file.
190- include (PHP/PkgConfig)
191- php_pkgconfig_generate_pc(
192- php.pc.in
193- php.pc
194- TARGET PHP::sapi::cli
195- VARIABLES
196- prefix "$<INSTALL_PREFIX>"
197- exec_prefix "$<INSTALL_PREFIX>"
198- includedir "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_INCLUDEDIR} ,$<INSTALL_PREFIX>>"
199- php_include_prefix "${PHP_INCLUDE_PREFIX} "
200- libdir "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_LIBDIR} ,$<INSTALL_PREFIX>>"
201- PHP_VERSION "${PHP_VERSION} "
202- PHP_VERSION_ID "${PHP_VERSION_ID} "
203- PHP_EXTENSION_DIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,${PHP_EXTENSION_DIR} ,$<INSTALL_PREFIX>>"
204- PHP_CONFIG_FILE_SCAN_DIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,${PHP_CONFIG_FILE_SCAN_DIR} ,$<INSTALL_PREFIX>>"
205- PHP_CONFIG_FILE_PATH "$<PATH:ABSOLUTE_PATH,NORMALIZE,${PHP_CONFIG_FILE_PATH} ,$<INSTALL_PREFIX>>"
206- PHP_DEBUG "$<IF:$<CONFIG:Debug,DebugAssertions>,yes,no>"
207- PHP_THREAD_SAFETY "$<IF:$<BOOL:$<TARGET_PROPERTY:PHP::config,PHP_THREAD_SAFETY>>,yes,no>"
208- )
227+ ################################################################################
228+ # Install Autotools build files.
229+ ################################################################################
209230
210231install (
211- FILES ${CMAKE_CURRENT_BINARY_DIR} /php.pc
212- DESTINATION ${CMAKE_INSTALL_LIBDIR} /pkgconfig
232+ FILES
233+ ${PHP_SOURCE_DIR} /build /ax_check_compile_flag.m4
234+ ${PHP_SOURCE_DIR} /build /ax_gcc_func_attribute.m4
235+ ${PHP_SOURCE_DIR} /build /gen_stub.php
236+ ${PHP_SOURCE_DIR} /build /libtool.m4
237+ ${PHP_SOURCE_DIR} /build /ltmain.sh
238+ ${PHP_SOURCE_DIR} /build /Makefile.global
239+ ${PHP_SOURCE_DIR} /build /php_cxx_compile_stdcxx.m4
240+ ${PHP_SOURCE_DIR} /build /php.m4
241+ ${PHP_SOURCE_DIR} /build /pkg.m4
242+ ${PHP_SOURCE_DIR} /run-tests.php
243+ ${PHP_SOURCE_DIR} /scripts/phpize.m4
244+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /php/build
213245)
214246
215- # Install Autotools build files.
216- if (NOT CMAKE_SYSTEM_NAME STREQUAL "Windows" )
217- install (
218- FILES
219- ${PHP_SOURCE_DIR} /build /ax_check_compile_flag.m4
220- ${PHP_SOURCE_DIR} /build /ax_gcc_func_attribute.m4
221- ${PHP_SOURCE_DIR} /build /gen_stub.php
222- ${PHP_SOURCE_DIR} /build /libtool.m4
223- ${PHP_SOURCE_DIR} /build /ltmain.sh
224- ${PHP_SOURCE_DIR} /build /Makefile.global
225- ${PHP_SOURCE_DIR} /build /php_cxx_compile_stdcxx.m4
226- ${PHP_SOURCE_DIR} /build /php.m4
227- ${PHP_SOURCE_DIR} /build /pkg.m4
228- ${PHP_SOURCE_DIR} /run-tests.php
229- ${PHP_SOURCE_DIR} /scripts/phpize.m4
230- DESTINATION ${CMAKE_INSTALL_LIBDIR} /php/build
231- )
232-
233- install (
234- PROGRAMS
235- ${PHP_SOURCE_DIR} /build /config.guess
236- ${PHP_SOURCE_DIR} /build /config.sub
237- ${PHP_SOURCE_DIR} /build /shtool
238- DESTINATION ${CMAKE_INSTALL_LIBDIR} /php/build
239- )
240- endif ()
247+ install (
248+ PROGRAMS
249+ ${PHP_SOURCE_DIR} /build /config.guess
250+ ${PHP_SOURCE_DIR} /build /config.sub
251+ ${PHP_SOURCE_DIR} /build /shtool
252+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /php/build
253+ )
0 commit comments