Skip to content

Commit 01ad1c2

Browse files
committed
Merge branch 'PHP-8.3' into PHP-8.4
2 parents f218dc6 + 5016355 commit 01ad1c2

File tree

5 files changed

+50
-50
lines changed

5 files changed

+50
-50
lines changed

cmake/cmake/Configuration.cmake

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -221,23 +221,6 @@ block()
221221
endif()
222222
endblock()
223223

224-
set(
225-
PHP_FULL_EXTENSION_DIR "" CACHE INTERNAL
226-
"Absolute path for the dynamically loadable extensions."
227-
)
228-
229-
if(IS_ABSOLUTE "${PHP_EXTENSION_DIR}")
230-
set_property(
231-
CACHE PHP_FULL_EXTENSION_DIR
232-
PROPERTY VALUE "${PHP_EXTENSION_DIR}"
233-
)
234-
elseif(PHP_EXTENSION_DIR)
235-
set_property(
236-
CACHE PHP_FULL_EXTENSION_DIR
237-
PROPERTY VALUE "${CMAKE_INSTALL_PREFIX}/${PHP_EXTENSION_DIR}"
238-
)
239-
endif()
240-
241224
################################################################################
242225
# Various global internal configuration.
243226
################################################################################

cmake/ext/phar/CMakeLists.txt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
include(CMakeDependentOption)
22
include(FeatureSummary)
3-
include(PHP/Install)
43

54
option(EXT_PHAR "Enable the phar extension" ON)
65

@@ -185,7 +184,7 @@ if(PHP_EXECUTABLE)
185184
# Install phar.phar file to destination. Here a duplicate phar.phar generation
186185
# step is used to generate it to a destination directory because of the
187186
# install prefix used in shebang (when using 'cmake --install --prefix ...').
188-
php_install(CODE "
187+
install(CODE "
189188
execute_process(
190189
COMMAND
191190
${PHP_EXECUTABLE}
@@ -203,7 +202,7 @@ if(PHP_EXECUTABLE)
203202
-p 0
204203
-s ${CMAKE_CURRENT_SOURCE_DIR}/phar/phar.php
205204
-h sha1
206-
-b \${CMAKE_INSTALL_FULL_BINDIR}/$<TARGET_FILE_NAME:php_cli>
205+
-b $<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_BINDIR},\${CMAKE_INSTALL_PREFIX}>/$<TARGET_FILE_NAME:php_cli>
207206
${CMAKE_CURRENT_SOURCE_DIR}/phar
208207
)
209208
@@ -223,13 +222,13 @@ if(PHP_EXECUTABLE)
223222
file(
224223
COPY_FILE
225224
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/phar.phar
226-
\$ENV{DESTDIR}\${CMAKE_INSTALL_FULL_BINDIR}/${PHP_PROGRAM_PREFIX}phar${PHP_PROGRAM_SUFFIX}.phar
225+
\$ENV{DESTDIR}$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_BINDIR},\${CMAKE_INSTALL_PREFIX}>/${PHP_PROGRAM_PREFIX}phar${PHP_PROGRAM_SUFFIX}.phar
227226
)
228227
229228
file(
230229
CREATE_LINK
231230
${PHP_PROGRAM_PREFIX}phar${PHP_PROGRAM_SUFFIX}.phar
232-
\$ENV{DESTDIR}\${CMAKE_INSTALL_FULL_BINDIR}/${PHP_PROGRAM_PREFIX}phar${PHP_PROGRAM_SUFFIX}
231+
\$ENV{DESTDIR}$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_BINDIR},\${CMAKE_INSTALL_PREFIX}>/${PHP_PROGRAM_PREFIX}phar${PHP_PROGRAM_SUFFIX}
233232
SYMBOLIC
234233
)
235234
")

cmake/main/CMakeLists.txt

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -284,10 +284,27 @@ function(_php_main_create_files)
284284

285285
# TODO: Set configure command string.
286286
set(CONFIGURE_COMMAND "cmake")
287-
# Set the 'include_path' INI directive.
288-
set(INCLUDE_PATH ".:${EXPANDED_PEAR_INSTALLDIR}")
287+
289288
# TODO: Fix the installation prefix when passed via --prefix option.
290-
set(EXPANDED_EXTENSION_DIR "${PHP_FULL_EXTENSION_DIR}")
289+
if(PHP_PEAR_DIR)
290+
set(
291+
EXPANDED_PEAR_INSTALLDIR
292+
"$<PATH:ABSOLUTE_PATH,NORMALIZE,${PHP_PEAR_DIR},${CMAKE_INSTALL_PREFIX}>"
293+
)
294+
endif()
295+
296+
# Set the 'include_path' INI directive.
297+
set(
298+
INCLUDE_PATH
299+
".$<IF:$<PLATFORM_ID:Windows>,;,:>${EXPANDED_PEAR_INSTALLDIR}"
300+
)
301+
302+
# Set the PHP extensions directory.
303+
set(
304+
EXPANDED_EXTENSION_DIR
305+
"$<PATH:ABSOLUTE_PATH,NORMALIZE,${PHP_EXTENSION_DIR},${CMAKE_INSTALL_PREFIX}>"
306+
)
307+
291308
set(EXPANDED_PHP_CONFIG_FILE_PATH "${PHP_FULL_CONFIG_FILE_PATH}")
292309
set(EXPANDED_PHP_CONFIG_FILE_SCAN_DIR "${PHP_FULL_CONFIG_FILE_SCAN_DIR}")
293310
set(EXPANDED_BINDIR "${CMAKE_INSTALL_FULL_BINDIR}")

cmake/main/php_config.cmake.h.in

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2050,7 +2050,7 @@
20502050
# cmakedefine CONFIGURE_COMMAND "@CONFIGURE_COMMAND@"
20512051

20522052
/* The PEAR installation directory. */
2053-
# define PEAR_INSTALLDIR "@PREFIX@\\pear"
2053+
# define PEAR_INSTALLDIR "@EXPANDED_PEAR_INSTALLDIR@"
20542054

20552055
/* The path to the bin directory. */
20562056
# define PHP_BINDIR "@PREFIX@"
@@ -2068,7 +2068,7 @@
20682068
# define PHP_EXTENSION_DIR "@PREFIX@\\ext"
20692069

20702070
/* The 'include_path' PHP INI directive. */
2071-
# define PHP_INCLUDE_PATH ".;@PREFIX@\\pear"
2071+
# define PHP_INCLUDE_PATH "@INCLUDE_PATH@"
20722072

20732073
/* The path containing system libraries (lib or lib64). */
20742074
# define PHP_LIBDIR "@PREFIX@"

cmake/pear/CMakeLists.txt

Lines changed: 24 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -11,16 +11,17 @@ add_feature_info(
1111

1212
if(PHP_PEAR)
1313
set(
14-
PHP_PEAR_DIR ""
14+
PHP_PEAR_DIR "${CMAKE_INSTALL_DATADIR}/pear"
1515
CACHE FILEPATH
16-
"Install PEAR in DIR (PREFIX/lib/php)"
16+
"The PEAR installation directory (default: DATADIR/pear)"
1717
)
1818
# Change from INTERNAL type to show variable on consecutive configuration run.
1919
set_property(CACHE PHP_PEAR_DIR PROPERTY TYPE FILEPATH)
2020
elseif(DEFINED PHP_PEAR_DIR)
2121
# Hide variable.
2222
set_property(CACHE PHP_PEAR_DIR PROPERTY TYPE INTERNAL)
2323
endif()
24+
mark_as_advanced(PHP_PEAR_DIR)
2425

2526
message(CHECK_START "Checking for PEAR")
2627

@@ -44,16 +45,6 @@ if(NOT EXT_XML)
4445
"PEAR requires the xml extension to be enabled. Set EXT_XML to 'ON'.")
4546
endif()
4647

47-
if(NOT PHP_PEAR_DIR)
48-
set(_php_pear_dir "\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_DATADIR}/pear")
49-
else()
50-
set(_php_pear_dir "${PHP_PEAR_DIR}")
51-
endif()
52-
53-
# Defined for build-defs.h.
54-
# TODO: INSTALL_PREFIX here cannot be evaluated during the install phase.
55-
set(EXPANDED_PEAR_INSTALLDIR "${_php_pear_dir}" CACHE INTERNAL "PEAR dir")
56-
5748
if(NOT CMAKE_CROSSCOMPILING)
5849
set(PHP_EXECUTABLE "$<TARGET_FILE:php_cli>")
5950
elseif(CMAKE_CROSSCOMPILING AND CMAKE_CROSSCOMPILING_EMULATOR)
@@ -63,7 +54,16 @@ endif()
6354
set(_phpPearInstallerUrl "https://pear.php.net/install-pear-nozlib.phar")
6455

6556
php_install(CODE "
66-
message(STATUS \"Installing PEAR: \$ENV{DESTDIR}${_php_pear_dir}\")
57+
set(
58+
pearInstallDir
59+
\"$<PATH:ABSOLUTE_PATH,NORMALIZE,${PHP_PEAR_DIR},\${CMAKE_INSTALL_PREFIX}>\"
60+
)
61+
set(
62+
binDir
63+
\"$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_BINDIR},\${CMAKE_INSTALL_PREFIX}>\"
64+
)
65+
66+
message(STATUS \"Installing PEAR to \$ENV{DESTDIR}\${pearInstallDir}\")
6767
6868
if(EXISTS \"${CMAKE_CURRENT_SOURCE_DIR}/install-pear-nozlib.phar\"
6969
AND NOT \"${CMAKE_CURRENT_SOURCE_DIR}\" STREQUAL \"${CMAKE_CURRENT_BINARY_DIR}\"
@@ -89,7 +89,7 @@ php_install(CODE "
8989
execute_process(
9090
COMMAND ${PHP_EXECUTABLE}
9191
-n
92-
${CMAKE_CURRENT_BINARY_DIR}/fetch.php
92+
${CMAKE_CURRENT_SOURCE_DIR}/fetch.php
9393
${_phpPearInstallerUrl}
9494
${CMAKE_CURRENT_BINARY_DIR}/install-pear-nozlib.phar
9595
OUTPUT_VARIABLE output
@@ -110,14 +110,15 @@ php_install(CODE "
110110
set(ENV{INSTALL_ROOT} \"\$ENV{DESTDIR}\")
111111
endif()
112112
113-
# The PEAR's --config option doesn't seem to install the pear.conf into the
114-
# specified directory, but the sysconf can be also bypassed with the
115-
# environment variable.
113+
# The PEAR sysconf directory by default matches the PHP SYSCONFDIR and it
114+
# doesn't seem that any configuration option installs the pear.conf into the
115+
# manually specified directory. But the sysconf can be also bypassed with
116+
# the environment variable for the installation time.
116117
set(ENV{PHP_PEAR_SYSCONF_DIR} \${CMAKE_INSTALL_FULL_SYSCONFDIR})
117118
118119
file(
119120
MAKE_DIRECTORY
120-
\$ENV{DESTDIR}${_php_pear_dir}
121+
\$ENV{DESTDIR}\${pearInstallDir}
121122
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/pear
122123
)
123124
@@ -130,12 +131,12 @@ php_install(CODE "
130131
-dmemory_limit=-1
131132
-ddetect_unicode=0
132133
${CMAKE_CURRENT_BINARY_DIR}/install-pear-nozlib.phar
133-
--dir \"${_php_pear_dir}\"
134-
--bin \"\${CMAKE_INSTALL_FULL_BINDIR}\"
135-
--metadata \"${_php_pear_dir}\"
136-
--data \"${_php_pear_dir}\"
134+
--dir \"\${pearInstallDir}\"
135+
--bin \"\${binDir}\"
136+
--metadata \"\${pearInstallDir}\"
137+
--data \"\${pearInstallDir}\"
137138
--temp \"${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/pear\"
138-
#--php \${CMAKE_INSTALL_FULL_BINDIR}/$<TARGET_FILE_NAME:php_cli>
139+
--php \${binDir}/$<TARGET_FILE_NAME:php_cli>
139140
-dp a${PHP_PROGRAM_PREFIX}
140141
-ds a${PHP_PROGRAM_SUFFIX}
141142
OUTPUT_VARIABLE output

0 commit comments

Comments
 (0)