Skip to content

Commit 7714666

Browse files
committed
Merge branch 'PHP-8.4'
2 parents b8e8889 + 01ad1c2 commit 7714666

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

@@ -181,7 +180,7 @@ if(PHP_EXECUTABLE)
181180
# Install phar.phar file to destination. Here a duplicate phar.phar generation
182181
# step is used to generate it to a destination directory because of the
183182
# install prefix used in shebang (when using 'cmake --install --prefix ...').
184-
php_install(CODE "
183+
install(CODE "
185184
execute_process(
186185
COMMAND
187186
${PHP_EXECUTABLE}
@@ -199,7 +198,7 @@ if(PHP_EXECUTABLE)
199198
-p 0
200199
-s ${CMAKE_CURRENT_SOURCE_DIR}/phar/phar.php
201200
-h sha1
202-
-b \${CMAKE_INSTALL_FULL_BINDIR}/$<TARGET_FILE_NAME:php_cli>
201+
-b $<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_BINDIR},\${CMAKE_INSTALL_PREFIX}>/$<TARGET_FILE_NAME:php_cli>
203202
${CMAKE_CURRENT_SOURCE_DIR}/phar
204203
)
205204
@@ -219,13 +218,13 @@ if(PHP_EXECUTABLE)
219218
file(
220219
COPY_FILE
221220
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/phar.phar
222-
\$ENV{DESTDIR}\${CMAKE_INSTALL_FULL_BINDIR}/${PHP_PROGRAM_PREFIX}phar${PHP_PROGRAM_SUFFIX}.phar
221+
\$ENV{DESTDIR}$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_BINDIR},\${CMAKE_INSTALL_PREFIX}>/${PHP_PROGRAM_PREFIX}phar${PHP_PROGRAM_SUFFIX}.phar
223222
)
224223
225224
file(
226225
CREATE_LINK
227226
${PHP_PROGRAM_PREFIX}phar${PHP_PROGRAM_SUFFIX}.phar
228-
\$ENV{DESTDIR}\${CMAKE_INSTALL_FULL_BINDIR}/${PHP_PROGRAM_PREFIX}phar${PHP_PROGRAM_SUFFIX}
227+
\$ENV{DESTDIR}$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_BINDIR},\${CMAKE_INSTALL_PREFIX}>/${PHP_PROGRAM_PREFIX}phar${PHP_PROGRAM_SUFFIX}
229228
SYMBOLIC
230229
)
231230
")

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
@@ -2054,7 +2054,7 @@
20542054
# cmakedefine CONFIGURE_COMMAND "@CONFIGURE_COMMAND@"
20552055

20562056
/* The PEAR installation directory. */
2057-
# define PEAR_INSTALLDIR "@PREFIX@\\pear"
2057+
# define PEAR_INSTALLDIR "@EXPANDED_PEAR_INSTALLDIR@"
20582058

20592059
/* The path to the bin directory. */
20602060
# define PHP_BINDIR "@PREFIX@"
@@ -2072,7 +2072,7 @@
20722072
# define PHP_EXTENSION_DIR "@PREFIX@\\ext"
20732073

20742074
/* The 'include_path' PHP INI directive. */
2075-
# define PHP_INCLUDE_PATH ".;@PREFIX@\\pear"
2075+
# define PHP_INCLUDE_PATH "@INCLUDE_PATH@"
20762076

20772077
/* The path containing system libraries (lib or lib64). */
20782078
# 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)