Skip to content

Commit 3f82705

Browse files
committed
Merge branch 'PHP-8.4'
2 parents 462527a + df0d816 commit 3f82705

File tree

1 file changed

+104
-91
lines changed

1 file changed

+104
-91
lines changed

cmake/scripts/CMakeLists.txt

Lines changed: 104 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,83 @@
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

539
block()
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
)
187225
endblock()
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

210231
install(
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

Comments
 (0)