Skip to content

Commit df0d816

Browse files
committed
Merge branch 'PHP-8.3' into PHP-8.4
2 parents bbb7ade + 91a9ab4 commit df0d816

File tree

1 file changed

+103
-92
lines changed

1 file changed

+103
-92
lines changed

cmake/scripts/CMakeLists.txt

Lines changed: 103 additions & 92 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,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
)
178214
endblock()
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

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

Comments
 (0)