Skip to content

Commit da57bd5

Browse files
committed
Merge branch 'PHP-8.3' into PHP-8.4
2 parents 3734fdb + 141c448 commit da57bd5

File tree

5 files changed

+84
-44
lines changed

5 files changed

+84
-44
lines changed

bin/check-cmake.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -708,7 +708,7 @@ function checkAll(array $options): int
708708
{
709709
$status = 0;
710710

711-
output($options['script'] . ': Working tree ' . $options['path']);
711+
output($options['script'] . ': Working tree ' . realpath($options['path']));
712712

713713
output($options['script'] . ': Checking CMake modules');
714714
$allCMakeFiles = getAllCMakeFiles($options['path']);

cmake/cmake/modules/PHP/ConfigureFile.cmake

Lines changed: 32 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ The following function is exposed:
1212
1313
```cmake
1414
php_configure_file(
15-
<template-file>
16-
<output-file>
15+
<INPUT <template-file>|CONTENT <template-content>>
16+
OUTPUT <output-file>
1717
[VARIABLES [<variable> <value>] ...]
1818
)
1919
```
@@ -138,23 +138,31 @@ endfunction()
138138
function(php_configure_file)
139139
cmake_parse_arguments(
140140
PARSE_ARGV
141-
2
142-
parsed # prefix
143-
"" # options
144-
"" # one-value keywords
145-
"VARIABLES" # multi-value keywords
141+
0
142+
parsed # prefix
143+
"" # options
144+
"INPUT;CONTENT;OUTPUT" # one-value keywords
145+
"VARIABLES" # multi-value keywords
146146
)
147147

148148
if(parsed_UNPARSED_ARGUMENTS)
149149
message(FATAL_ERROR "Bad arguments: ${parsed_UNPARSED_ARGUMENTS}")
150150
endif()
151151

152-
if(NOT ARGV0)
153-
message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION} expects a template filename")
152+
if(NOT parsed_INPUT AND NOT parsed_CONTENT)
153+
message(
154+
FATAL_ERROR
155+
"${CMAKE_CURRENT_FUNCTION} expects either INPUT or CONTENT keyword to "
156+
"specify template."
157+
)
154158
endif()
155159

156-
if(NOT ARGV1)
157-
message(FATAL_ERROR "${CMAKE_CURRENT_FUNCTION} expects an output filename")
160+
if(NOT parsed_OUTPUT)
161+
message(
162+
FATAL_ERROR
163+
"${CMAKE_CURRENT_FUNCTION} expects OUTPUT keyword to specify output "
164+
"filename."
165+
)
158166
endif()
159167

160168
# Check for even number of keyword values.
@@ -168,15 +176,24 @@ function(php_configure_file)
168176
)
169177
endif()
170178

171-
set(___phpConfigureFileTemplate "${ARGV0}")
172-
if(NOT IS_ABSOLUTE "${___phpConfigureFileTemplate}")
179+
if(parsed_INPUT)
180+
set(___phpConfigureFileTemplate "${parsed_INPUT}")
181+
if(NOT IS_ABSOLUTE "${___phpConfigureFileTemplate}")
182+
set(
183+
___phpConfigureFileTemplate
184+
"${CMAKE_CURRENT_SOURCE_DIR}/${___phpConfigureFileTemplate}"
185+
)
186+
endif()
187+
else()
188+
cmake_path(GET parsed_OUTPUT FILENAME ___phpConfigureFileTemplate)
173189
set(
174190
___phpConfigureFileTemplate
175-
"${CMAKE_CURRENT_SOURCE_DIR}/${___phpConfigureFileTemplate}"
191+
"${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/${___phpConfigureFileTemplate}.in"
176192
)
193+
file(WRITE ${___phpConfigureFileTemplate} "${parsed_CONTENT}")
177194
endif()
178195

179-
set(___phpConfigureFileOutput "${ARGV1}")
196+
set(___phpConfigureFileOutput "${parsed_OUTPUT}")
180197
if(NOT IS_ABSOLUTE "${___phpConfigureFileOutput}")
181198
set(
182199
___phpConfigureFileOutput

cmake/main/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -389,8 +389,8 @@ function(_php_main_create_files)
389389
phase. Needs to be adjusted further to rebuild PHP at such case.
390390
include(PHP/ConfigureFile)
391391
php_configure_file(
392-
${PHP_SOURCE_DIR}/main/build-defs.h.in
393-
${PHP_BINARY_DIR}/main/build-defs.h
392+
INPUT ${PHP_SOURCE_DIR}/main/build-defs.h.in
393+
OUTPUT ${PHP_BINARY_DIR}/main/build-defs.h
394394
VARIABLES
395395
CONFIGURE_COMMAND "cmake"
396396
ODBC_CFLAGS "${ODBC_CFLAGS}"

cmake/sapi/fpm/CMakeLists.txt

Lines changed: 45 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -389,11 +389,23 @@ endif()
389389
################################################################################
390390

391391
# Man documentation.
392+
393+
# Replace the hardcoded runstatedir with a template placeholder.
394+
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/php-fpm.8.in" content)
395+
string(
396+
REPLACE
397+
[[@php_fpm_localstatedir@/run/php-fpm.pid]]
398+
[[@php_fpm_runstatedir@/php-fpm.pid]]
399+
content
400+
"${content}"
401+
)
392402
php_configure_file(
393-
php-fpm.8.in
394-
php-fpm.8
403+
CONTENT "${content}"
404+
OUTPUT php-fpm.8
395405
VARIABLES
396406
php_fpm_localstatedir "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_LOCALSTATEDIR},$<INSTALL_PREFIX>>"
407+
# TODO: Fix the GNU standard adjustment issue with /etc, /var, and /var/run.
408+
php_fpm_runstatedir "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_RUNSTATEDIR},$<INSTALL_PREFIX>>"
397409
php_fpm_sysconfdir "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_SYSCONFDIR},$<INSTALL_PREFIX>>"
398410
php_fpm_prefix "$<INSTALL_PREFIX>"
399411
PHP_VERSION "${PHP_VERSION}"
@@ -405,17 +417,17 @@ install(
405417
)
406418

407419
php_configure_file(
408-
php-fpm.conf.in
409-
php-fpm.conf
420+
INPUT php-fpm.conf.in
421+
OUTPUT php-fpm.conf
410422
VARIABLES
411423
prefix "$<INSTALL_PREFIX>"
412424
EXPANDED_LOCALSTATEDIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_LOCALSTATEDIR},$<INSTALL_PREFIX>>"
413425
php_fpm_sysconfdir "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_SYSCONFDIR},$<INSTALL_PREFIX>>"
414426
)
415427

416428
php_configure_file(
417-
www.conf.in
418-
www.conf
429+
INPUT www.conf.in
430+
OUTPUT www.conf
419431
VARIABLES
420432
prefix "$<INSTALL_PREFIX>"
421433
php_fpm_prefix "$<INSTALL_PREFIX>"
@@ -424,23 +436,44 @@ php_configure_file(
424436
EXPANDED_DATADIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_DATADIR},$<INSTALL_PREFIX>>"
425437
)
426438

439+
# Replace the hardcoded runstatedir with a template placeholder.
440+
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/init.d.php-fpm.in" content)
441+
string(
442+
REPLACE
443+
[[php_fpm_PID=@localstatedir@/run/php-fpm.pid]]
444+
[[php_fpm_PID=@runstatedir@/php-fpm.pid]]
445+
content
446+
"${content}"
447+
)
448+
427449
php_configure_file(
428-
init.d.php-fpm.in
429-
init.d.php-fpm
450+
CONTENT "${content}"
451+
OUTPUT init.d.php-fpm
430452
VARIABLES
431453
prefix "$<INSTALL_PREFIX>"
432454
exec_prefix "$<INSTALL_PREFIX>"
433455
sbindir "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_SBINDIR},$<INSTALL_PREFIX>>"
456+
# TODO: Fix the GNU standard adjustment issue with /etc, /var, and /var/run.
434457
sysconfdir "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_SYSCONFDIR},$<INSTALL_PREFIX>>"
435-
localstatedir "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_LOCALSTATEDIR},$<INSTALL_PREFIX>>"
458+
runstatedir "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_RUNSTATEDIR},$<INSTALL_PREFIX>>"
459+
)
460+
461+
# Replace the hardcoded runstatedir with a template placeholder.
462+
file(READ "${CMAKE_CURRENT_SOURCE_DIR}/php-fpm.service.in" content)
463+
string(
464+
REPLACE
465+
[[PIDFile=@EXPANDED_LOCALSTATEDIR@/run/php-fpm.pid]]
466+
[[PIDFile=@EXPANDED_RUNSTATEDIR@/php-fpm.pid]]
467+
content
468+
"${content}"
436469
)
437470

438471
php_configure_file(
439-
php-fpm.service.in
440-
php-fpm.service
472+
CONTENT "${content}"
473+
OUTPUT php-fpm.service
441474
VARIABLES
442475
php_fpm_systemd "${PHP_FPM_SYSTEMD}"
443-
EXPANDED_LOCALSTATEDIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_LOCALSTATEDIR},$<INSTALL_PREFIX>>"
476+
EXPANDED_RUNSTATEDIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_RUNSTATEDIR},$<INSTALL_PREFIX>>"
444477
EXPANDED_SBINDIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_SBINDIR},$<INSTALL_PREFIX>>"
445478
EXPANDED_SYSCONFDIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_SYSCONFDIR},$<INSTALL_PREFIX>>"
446479
)

cmake/scripts/CMakeLists.txt

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -59,15 +59,10 @@ block()
5959
content
6060
"${content}"
6161
)
62-
file(
63-
WRITE
64-
"${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/php-config.cmake.in"
65-
"${content}"
66-
)
6762

6863
php_configure_file(
69-
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/php-config.cmake.in
70-
php-config
64+
CONTENT "${content}"
65+
OUTPUT php-config
7166
VARIABLES
7267
SED "${SED}"
7368
prefix "$<INSTALL_PREFIX>"
@@ -118,15 +113,10 @@ block()
118113
content
119114
"${content}"
120115
)
121-
file(
122-
WRITE
123-
"${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/phpize.cmake.in"
124-
"${content}"
125-
)
126116

127117
php_configure_file(
128-
${CMAKE_CURRENT_BINARY_DIR}/CMakeFiles/phpize.cmake.in
129-
phpize
118+
CONTENT "${content}"
119+
OUTPUT phpize
130120
VARIABLES
131121
prefix "$<INSTALL_PREFIX>"
132122
datarootdir "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_DATAROOTDIR},$<INSTALL_PREFIX>>"

0 commit comments

Comments
 (0)