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,24 +92,23 @@ block()
5892 content
5993 "${content} "
6094 )
61-
6295 file (
6396 WRITE
6497 "${CMAKE_CURRENT_BINARY_DIR} /CMakeFiles/PHP/php-config.in"
6598 "${content} "
6699 )
67100
68101 if (TARGET PHP::sapi::embed)
69- get_target_property (embed_type PHP::sapi::embed TYPE )
70- if (embed_type MATCHES "^(MODULE|SHARED)_LIBRARY$" )
102+ get_target_property (type PHP::sapi::embed TYPE )
103+ if (type MATCHES "^(MODULE|SHARED)_LIBRARY$" )
71104 set (PHP_EMBED_TYPE "shared" )
72105 else ()
73106 set (PHP_EMBED_TYPE "static" )
74107 endif ()
75108 endif ()
76109
77110 string (CONFIGURE [[
78- set(SED "@SED @")
111+ set(SED "@PHP_SED @")
79112 set(prefix "${CMAKE_INSTALL_PREFIX}")
80113 set(datarootdir "$<PATH:ABSOLUTE_PATH,NORMALIZE,@CMAKE_INSTALL_DATAROOTDIR@,${CMAKE_INSTALL_PREFIX}>")
81114 set(exec_prefix "${CMAKE_INSTALL_PREFIX}")
@@ -91,7 +124,6 @@ block()
91124 set(program_prefix "@PHP_PROGRAM_PREFIX@")
92125 set(program_suffix "@PHP_PROGRAM_SUFFIX@")
93126 set(EXEEXT "@CMAKE_EXECUTABLE_SUFFIX@")
94- # TODO:
95127 set(CONFIGURE_OPTIONS "")
96128 set(PHP_INSTALLED_SAPIS "@sapis@")
97129 set(EXPANDED_PHP_CONFIG_FILE_SCAN_DIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,@PHP_CONFIG_FILE_SCAN_DIR@,${CMAKE_INSTALL_PREFIX}>")
@@ -128,10 +160,14 @@ block()
128160 DESTINATION ${CMAKE_INSTALL_BINDIR}
129161 RENAME ${PHP_PROGRAM_PREFIX} php-config${PHP_PROGRAM_SUFFIX}
130162 )
163+ endblock()
131164
132- ##############################################################################
165+ ################################################################################
166+ # Configure phpize script.
167+ ################################################################################
168+
169+ block()
133170 message (STATUS "Creating scripts/phpize" )
134- ##############################################################################
135171
136172 # Patch phpize template: Replace the upstream phpize script hardcoded php
137173 # include directory to a template placeholder.
@@ -151,7 +187,7 @@ block()
151187 set(exec_prefix "${CMAKE_INSTALL_PREFIX}")
152188 set(libdir "$<PATH:ABSOLUTE_PATH,NORMALIZE,@CMAKE_INSTALL_LIBDIR@/php,${CMAKE_INSTALL_PREFIX}>")
153189 set(includedir "$<PATH:ABSOLUTE_PATH,NORMALIZE,@CMAKE_INSTALL_INCLUDEDIR@/@PHP_INCLUDE_PREFIX@,${CMAKE_INSTALL_PREFIX}>")
154- set(SED "@SED @")
190+ set(SED "@PHP_SED @")
155191 ]] code @ONLY)
156192 cmake_language(EVAL CODE "${code} " )
157193 string (CONFIGURE "${content} " content @ONLY)
@@ -177,55 +213,30 @@ block()
177213 )
178214endblock()
179215
180- # Configure pkg-config php.pc metadata file.
181- include (PHP/PkgConfig)
182- php_pkgconfig_generate_pc(
183- php.pc.in
184- php.pc
185- TARGET PHP::sapi::cli
186- VARIABLES
187- prefix "$<INSTALL_PREFIX>"
188- exec_prefix "$<INSTALL_PREFIX>"
189- includedir "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_INCLUDEDIR} ,$<INSTALL_PREFIX>>"
190- php_include_prefix "${PHP_INCLUDE_PREFIX} "
191- libdir "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_LIBDIR} ,$<INSTALL_PREFIX>>"
192- PHP_VERSION "${PHP_VERSION} "
193- PHP_VERSION_ID "${PHP_VERSION_ID} "
194- PHP_EXTENSION_DIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,${PHP_EXTENSION_DIR} ,$<INSTALL_PREFIX>>"
195- PHP_CONFIG_FILE_SCAN_DIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,${PHP_CONFIG_FILE_SCAN_DIR} ,$<INSTALL_PREFIX>>"
196- PHP_CONFIG_FILE_PATH "$<PATH:ABSOLUTE_PATH,NORMALIZE,${PHP_CONFIG_FILE_PATH} ,$<INSTALL_PREFIX>>"
197- PHP_DEBUG "$<IF:$<CONFIG:Debug,DebugAssertions>,yes,no>"
198- PHP_THREAD_SAFETY "$<IF:$<BOOL:$<TARGET_PROPERTY:PHP::config,PHP_THREAD_SAFETY>>,yes,no>"
199- )
216+ ################################################################################
217+ # Install Autotools build files.
218+ ################################################################################
200219
201220install (
202- FILES ${CMAKE_CURRENT_BINARY_DIR} /php.pc
203- DESTINATION ${CMAKE_INSTALL_LIBDIR} /pkgconfig
221+ FILES
222+ ${PHP_SOURCE_DIR} /build /ax_check_compile_flag.m4
223+ ${PHP_SOURCE_DIR} /build /ax_gcc_func_attribute.m4
224+ ${PHP_SOURCE_DIR} /build /gen_stub.php
225+ ${PHP_SOURCE_DIR} /build /libtool.m4
226+ ${PHP_SOURCE_DIR} /build /ltmain.sh
227+ ${PHP_SOURCE_DIR} /build /Makefile.global
228+ ${PHP_SOURCE_DIR} /build /php_cxx_compile_stdcxx.m4
229+ ${PHP_SOURCE_DIR} /build /php.m4
230+ ${PHP_SOURCE_DIR} /build /pkg.m4
231+ ${PHP_SOURCE_DIR} /run-tests.php
232+ ${PHP_SOURCE_DIR} /scripts/phpize.m4
233+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /php/build
204234)
205235
206- # Install Autotools build files.
207- if (NOT CMAKE_SYSTEM_NAME STREQUAL "Windows" )
208- install (
209- FILES
210- ${PHP_SOURCE_DIR} /build /ax_check_compile_flag.m4
211- ${PHP_SOURCE_DIR} /build /ax_gcc_func_attribute.m4
212- ${PHP_SOURCE_DIR} /build /gen_stub.php
213- ${PHP_SOURCE_DIR} /build /libtool.m4
214- ${PHP_SOURCE_DIR} /build /ltmain.sh
215- ${PHP_SOURCE_DIR} /build /Makefile.global
216- ${PHP_SOURCE_DIR} /build /php_cxx_compile_stdcxx.m4
217- ${PHP_SOURCE_DIR} /build /php.m4
218- ${PHP_SOURCE_DIR} /build /pkg.m4
219- ${PHP_SOURCE_DIR} /run-tests.php
220- ${PHP_SOURCE_DIR} /scripts/phpize.m4
221- DESTINATION ${CMAKE_INSTALL_LIBDIR} /php/build
222- )
223-
224- install (
225- PROGRAMS
226- ${PHP_SOURCE_DIR} /build /config.guess
227- ${PHP_SOURCE_DIR} /build /config.sub
228- ${PHP_SOURCE_DIR} /build /shtool
229- DESTINATION ${CMAKE_INSTALL_LIBDIR} /php/build
230- )
231- endif ()
236+ install (
237+ PROGRAMS
238+ ${PHP_SOURCE_DIR} /build /config.guess
239+ ${PHP_SOURCE_DIR} /build /config.sub
240+ ${PHP_SOURCE_DIR} /build /shtool
241+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /php/build
242+ )
0 commit comments