@@ -52,6 +52,10 @@ if(NOT PHP_SAPI_CLI)
52
52
return ()
53
53
endif ()
54
54
55
+ ################################################################################
56
+ # Configuration checks.
57
+ ################################################################################
58
+
55
59
check_symbol_exists(setproctitle "unistd.h;stdlib.h" HAVE_SETPROCTITLE)
56
60
check_include_file(sys/pstat.h HAVE_SYS_PSTAT_H)
57
61
@@ -74,6 +78,10 @@ else()
74
78
message (CHECK_FAIL "no" )
75
79
endif ()
76
80
81
+ ################################################################################
82
+ # The cli SAPI.
83
+ ################################################################################
84
+
77
85
add_executable (php_sapi_cli)
78
86
add_executable (PHP::sapi::cli ALIAS php_sapi_cli)
79
87
@@ -102,7 +110,7 @@ target_compile_definitions(
102
110
target_link_libraries (
103
111
php_sapi_cli
104
112
PRIVATE
105
- PHP::sapi
113
+ $<BUILD_INTERFACE: PHP::sapi>
106
114
$<$<PLATFORM_ID:Windows>:ws2_32;shell32>
107
115
)
108
116
@@ -116,8 +124,8 @@ set_target_properties(
116
124
php_sapi_cli
117
125
PROPERTIES
118
126
OUTPUT_NAME ${PHP_PROGRAM_PREFIX} php${PHP_PROGRAM_SUFFIX}
119
- # TODO: Check if there's a better solution here:
120
- ENABLE_EXPORTS TRUE
127
+ ENABLE_EXPORTS TRUE # TODO: Check if there's a better solution.
128
+ EXPORT_NAME Interpreter
121
129
PHP_CLI TRUE
122
130
)
123
131
@@ -130,6 +138,42 @@ if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
130
138
)
131
139
endif ()
132
140
141
+ # Man documentation.
142
+ block()
143
+ set (program_prefix "${PHP_PROGRAM_PREFIX} " )
144
+ configure_file (php.1.in php.1 @ONLY)
145
+ endblock()
146
+
147
+ install (
148
+ TARGETS php_sapi_cli
149
+ EXPORT PHP::Interpreter
150
+ RUNTIME
151
+ DESTINATION ${CMAKE_INSTALL_BINDIR}
152
+ COMPONENT PHP::Interpreter
153
+ FILE_SET HEADERS
154
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /${PHP_INCLUDE_PREFIX} /sapi/cli
155
+ COMPONENT PHP::Interpreter
156
+ )
157
+
158
+ install (
159
+ EXPORT PHP::Interpreter
160
+ FILE PHP_Interpreter.cmake
161
+ NAMESPACE PHP::
162
+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/PHP
163
+ COMPONENT PHP::Interpreter
164
+ )
165
+
166
+ install (
167
+ FILES ${CMAKE_CURRENT_BINARY_DIR} /php.1
168
+ RENAME ${PHP_PROGRAM_PREFIX} php${PHP_PROGRAM_SUFFIX} .1
169
+ DESTINATION ${CMAKE_INSTALL_MANDIR} /man1
170
+ COMPONENT PHP::Interpreter
171
+ )
172
+
173
+ ################################################################################
174
+ # The cli SAPI without console on Windows.
175
+ ################################################################################
176
+
133
177
if (PHP_SAPI_CLI_WIN_NO_CONSOLE)
134
178
add_executable (php_sapi_cli_win)
135
179
add_executable (PHP::sapi::cli_win ALIAS php_sapi_cli_win)
@@ -147,6 +191,7 @@ if(PHP_SAPI_CLI_WIN_NO_CONSOLE)
147
191
php_sapi_cli_win
148
192
PROPERTIES
149
193
OUTPUT_NAME ${PHP_PROGRAM_PREFIX} php-win${PHP_PROGRAM_SUFFIX}
194
+ EXPORT_NAME InterpreterNoConsole
150
195
)
151
196
152
197
target_compile_definitions (
@@ -158,7 +203,7 @@ if(PHP_SAPI_CLI_WIN_NO_CONSOLE)
158
203
target_link_libraries (
159
204
php_sapi_cli_win
160
205
PRIVATE
161
- PHP::sapi
206
+ $<BUILD_INTERFACE: PHP::sapi>
162
207
shell32
163
208
)
164
209
@@ -167,26 +212,14 @@ if(PHP_SAPI_CLI_WIN_NO_CONSOLE)
167
212
PRIVATE
168
213
/stack:67108864
169
214
)
170
- endif ()
171
-
172
- # Man documentation.
173
- block()
174
- set (program_prefix "${PHP_PROGRAM_PREFIX} " )
175
- configure_file (php.1.in php.1 @ONLY)
176
- endblock()
177
-
178
- install (
179
- TARGETS php_sapi_cli
180
- RUNTIME
181
- DESTINATION ${CMAKE_INSTALL_BINDIR}
182
- FILE_SET HEADERS
183
- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /${PHP_INCLUDE_PREFIX} /sapi/cli
184
- )
185
215
186
- install (
187
- FILES ${CMAKE_CURRENT_BINARY_DIR} /php.1
188
- RENAME ${PHP_PROGRAM_PREFIX} php${PHP_PROGRAM_SUFFIX} .1
189
- DESTINATION ${CMAKE_INSTALL_MANDIR} /man1
190
- )
216
+ install (
217
+ TARGETS php_sapi_cli_win
218
+ EXPORT PHP::Interpreter
219
+ RUNTIME
220
+ DESTINATION ${CMAKE_INSTALL_BINDIR}
221
+ COMPONENT PHP::Interpreter
222
+ )
223
+ endif ()
191
224
192
225
configure_file (cmake/config.h.in config.h)
0 commit comments