Skip to content

Commit 91a9ab4

Browse files
committed
Refactor scripts
1 parent 4cae46c commit 91a9ab4

File tree

1 file changed

+101
-89
lines changed

1 file changed

+101
-89
lines changed

cmake/scripts/CMakeLists.txt

Lines changed: 101 additions & 89 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()
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+
)
49+
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
56+
)
2557
endblock()
2658

27-
# The php-config and phpize scripts.
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+
2879
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"
35-
)
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()
43-
44-
##############################################################################
4580
message(STATUS "Creating scripts/php-config")
46-
##############################################################################
4781

4882
get_property(sapis GLOBAL PROPERTY PHP_SAPIS)
4983
set(sapis "$<JOIN:$<LIST:SORT,${sapis}>, >")
@@ -65,7 +99,7 @@ block()
6599
)
66100

67101
string(CONFIGURE [[
68-
set(SED "@SED@")
102+
set(SED "@PHP_SED@")
69103
set(prefix "${CMAKE_INSTALL_PREFIX}")
70104
set(datarootdir "$<PATH:ABSOLUTE_PATH,NORMALIZE,@CMAKE_INSTALL_DATAROOTDIR@,${CMAKE_INSTALL_PREFIX}>")
71105
set(exec_prefix "${CMAKE_INSTALL_PREFIX}")
@@ -81,7 +115,6 @@ block()
81115
set(program_prefix "@PHP_PROGRAM_PREFIX@")
82116
set(program_suffix "@PHP_PROGRAM_SUFFIX@")
83117
set(EXEEXT "@CMAKE_EXECUTABLE_SUFFIX@")
84-
# TODO:
85118
set(CONFIGURE_OPTIONS "")
86119
set(PHP_INSTALLED_SAPIS "@sapis@")
87120
set(EXPANDED_PHP_CONFIG_FILE_SCAN_DIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,@PHP_CONFIG_FILE_SCAN_DIR@,${CMAKE_INSTALL_PREFIX}>")
@@ -114,10 +147,14 @@ block()
114147
DESTINATION ${CMAKE_INSTALL_BINDIR}
115148
RENAME ${PHP_PROGRAM_PREFIX}php-config${PHP_PROGRAM_SUFFIX}
116149
)
150+
endblock()
151+
152+
################################################################################
153+
# Configure phpize script.
154+
################################################################################
117155

118-
##############################################################################
156+
block()
119157
message(STATUS "Creating scripts/phpize")
120-
##############################################################################
121158

122159
# Patch phpize template: Replace the upstream phpize script hardcoded php
123160
# include directory to a template placeholder.
@@ -137,7 +174,7 @@ block()
137174
set(exec_prefix "${CMAKE_INSTALL_PREFIX}")
138175
set(libdir "$<PATH:ABSOLUTE_PATH,NORMALIZE,@CMAKE_INSTALL_LIBDIR@/php,${CMAKE_INSTALL_PREFIX}>")
139176
set(includedir "$<PATH:ABSOLUTE_PATH,NORMALIZE,@CMAKE_INSTALL_INCLUDEDIR@/@PHP_INCLUDE_PREFIX@,${CMAKE_INSTALL_PREFIX}>")
140-
set(SED "@SED@")
177+
set(SED "@PHP_SED@")
141178
]] code @ONLY)
142179
cmake_language(EVAL CODE "${code}")
143180
string(CONFIGURE "${content}" content @ONLY)
@@ -163,55 +200,30 @@ block()
163200
)
164201
endblock()
165202

166-
# Configure pkg-config php.pc metadata file.
167-
include(PHP/PkgConfig)
168-
php_pkgconfig_generate_pc(
169-
php.pc.in
170-
php.pc
171-
TARGET PHP::sapi::cli
172-
VARIABLES
173-
prefix "$<INSTALL_PREFIX>"
174-
exec_prefix "$<INSTALL_PREFIX>"
175-
includedir "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_INCLUDEDIR},$<INSTALL_PREFIX>>"
176-
php_include_prefix "${PHP_INCLUDE_PREFIX}"
177-
libdir "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_LIBDIR},$<INSTALL_PREFIX>>"
178-
PHP_VERSION "${PHP_VERSION}"
179-
PHP_VERSION_ID "${PHP_VERSION_ID}"
180-
PHP_EXTENSION_DIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,${PHP_EXTENSION_DIR},$<INSTALL_PREFIX>>"
181-
PHP_CONFIG_FILE_SCAN_DIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,${PHP_CONFIG_FILE_SCAN_DIR},$<INSTALL_PREFIX>>"
182-
PHP_CONFIG_FILE_PATH "$<PATH:ABSOLUTE_PATH,NORMALIZE,${PHP_CONFIG_FILE_PATH},$<INSTALL_PREFIX>>"
183-
PHP_DEBUG "$<IF:$<CONFIG:Debug,DebugAssertions>,yes,no>"
184-
PHP_THREAD_SAFETY "$<IF:$<BOOL:$<TARGET_PROPERTY:PHP::config,PHP_THREAD_SAFETY>>,yes,no>"
185-
)
203+
################################################################################
204+
# Install Autotools build files.
205+
################################################################################
186206

187207
install(
188-
FILES ${CMAKE_CURRENT_BINARY_DIR}/php.pc
189-
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
208+
FILES
209+
${PHP_SOURCE_DIR}/build/ax_check_compile_flag.m4
210+
${PHP_SOURCE_DIR}/build/ax_gcc_func_attribute.m4
211+
${PHP_SOURCE_DIR}/build/gen_stub.php
212+
${PHP_SOURCE_DIR}/build/libtool.m4
213+
${PHP_SOURCE_DIR}/build/ltmain.sh
214+
${PHP_SOURCE_DIR}/build/Makefile.global
215+
${PHP_SOURCE_DIR}/build/php_cxx_compile_stdcxx.m4
216+
${PHP_SOURCE_DIR}/build/php.m4
217+
${PHP_SOURCE_DIR}/build/pkg.m4
218+
${PHP_SOURCE_DIR}/run-tests.php
219+
${PHP_SOURCE_DIR}/scripts/phpize.m4
220+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/php/build
190221
)
191222

192-
# Install Autotools build files.
193-
if(NOT CMAKE_SYSTEM_NAME STREQUAL "Windows")
194-
install(
195-
FILES
196-
${PHP_SOURCE_DIR}/build/ax_check_compile_flag.m4
197-
${PHP_SOURCE_DIR}/build/ax_gcc_func_attribute.m4
198-
${PHP_SOURCE_DIR}/build/gen_stub.php
199-
${PHP_SOURCE_DIR}/build/libtool.m4
200-
${PHP_SOURCE_DIR}/build/ltmain.sh
201-
${PHP_SOURCE_DIR}/build/Makefile.global
202-
${PHP_SOURCE_DIR}/build/php_cxx_compile_stdcxx.m4
203-
${PHP_SOURCE_DIR}/build/php.m4
204-
${PHP_SOURCE_DIR}/build/pkg.m4
205-
${PHP_SOURCE_DIR}/run-tests.php
206-
${PHP_SOURCE_DIR}/scripts/phpize.m4
207-
DESTINATION ${CMAKE_INSTALL_LIBDIR}/php/build
208-
)
209-
210-
install(
211-
PROGRAMS
212-
${PHP_SOURCE_DIR}/build/config.guess
213-
${PHP_SOURCE_DIR}/build/config.sub
214-
${PHP_SOURCE_DIR}/build/shtool
215-
DESTINATION ${CMAKE_INSTALL_LIBDIR}/php/build
216-
)
217-
endif()
223+
install(
224+
PROGRAMS
225+
${PHP_SOURCE_DIR}/build/config.guess
226+
${PHP_SOURCE_DIR}/build/config.sub
227+
${PHP_SOURCE_DIR}/build/shtool
228+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/php/build
229+
)

0 commit comments

Comments
 (0)