@@ -237,101 +237,89 @@ function(_php_main_create_files)
237237 # Map CMake variable names to names in PHP configuration headers where needed.
238238 ##############################################################################
239239
240- # TODO: Set configure command string.
241- set (CONFIGURE_COMMAND "cmake" )
240+ # Add build system configuration.
242241
243- # TODO: Fix the installation prefixes below when passed via the '--prefix'
244- # option of the 'cmake --install ...' command. PHP is at the time of writing
245- # not a relocatable program.
242+ # TODO: Fix this:
243+ set (EXPANDED_SYSCONFDIR "${CMAKE_INSTALL_FULL_SYSCONFDIR} " )
244+ # TODO: Fix this:
245+ set (EXPANDED_LOCALSTATEDIR "${CMAKE_INSTALL_FULL_LOCALSTATEDIR} " )
246246
247- if (PHP_PEAR_DIR)
248- set (
249- EXPANDED_PEAR_INSTALLDIR
250- "$<PATH:ABSOLUTE_PATH,NORMALIZE,${PHP_PEAR_DIR} ,${CMAKE_INSTALL_PREFIX} >"
251- )
252- endif ()
247+ string (CONFIGURE [[
248+ # TODO: Set configure command string.
249+ set(CONFIGURE_COMMAND "cmake")
253250
254- # Set the 'include_path' INI directive.
255- set (
256- INCLUDE_PATH
257- ".$<IF:$<PLATFORM_ID:Windows>,;,:>${EXPANDED_PEAR_INSTALLDIR} "
258- )
251+ set(PHP_PROG_SENDMAIL "@Sendmail_PROGRAM@")
259252
260- # Set the PHP extensions directory.
261- set (
262- EXPANDED_EXTENSION_DIR
263- "$<PATH:ABSOLUTE_PATH,NORMALIZE,${PHP_EXTENSION_DIR} ,${CMAKE_INSTALL_PREFIX} >"
264- )
253+ if("@PHP_PEAR_DIR@")
254+ set(EXPANDED_PEAR_INSTALLDIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,@PHP_PEAR_DIR@,${CMAKE_INSTALL_PREFIX}>")
255+ endif()
265256
266- # Set the directory where php.ini is looked for.
267- if (CMAKE_SYSTEM_NAME STREQUAL "Windows" )
268- set (EXPANDED_PHP_CONFIG_FILE_PATH "" )
269- else ()
270- set (
271- EXPANDED_PHP_CONFIG_FILE_PATH
272- "$<PATH:ABSOLUTE_PATH,NORMALIZE,${PHP_CONFIG_FILE_PATH} ,${CMAKE_INSTALL_PREFIX} >"
273- )
274- endif ()
257+ # Set the 'include_path' INI directive.
258+ if("@CMAKE_SYSTEM_NAME@" STREQUAL "Windows")
259+ set(INCLUDE_PATH ".;@EXPANDED_PEAR_INSTALLDIR@")
260+ else()
261+ set(INCLUDE_PATH ".:@EXPANDED_PEAR_INSTALLDIR@")
262+ endif()
275263
276- # Set the directory where additional ini files are searched for.
277- set (
278- EXPANDED_PHP_CONFIG_FILE_SCAN_DIR
279- "$<PATH:ABSOLUTE_PATH,NORMALIZE,${PHP_CONFIG_FILE_SCAN_DIR} ,${CMAKE_INSTALL_PREFIX} >"
280- )
264+ # Set the PHP extensions directory.
265+ set(EXPANDED_EXTENSION_DIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,@PHP_EXTENSION_DIR@,${CMAKE_INSTALL_PREFIX}>")
281266
282- set (
283- EXPANDED_BINDIR
284- "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_BINDIR} ,${CMAKE_INSTALL_PREFIX} >"
285- )
267+ set(prefix "${CMAKE_INSTALL_PREFIX}")
286268
287- set (
288- EXPANDED_SBINDIR
289- "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_SBINDIR} ,${CMAKE_INSTALL_PREFIX} >"
290- )
269+ set(EXPANDED_BINDIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,@CMAKE_INSTALL_BINDIR@,${CMAKE_INSTALL_PREFIX}>")
291270
292- if (CMAKE_SYSTEM_NAME STREQUAL "Windows" )
293- set (PHP_MANDIR "" )
294- else ()
295- set (
296- PHP_MANDIR
297- "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_MANDIR} ,${CMAKE_INSTALL_PREFIX} >"
298- )
299- endif ()
271+ set(EXPANDED_SBINDIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,@CMAKE_INSTALL_SBINDIR@,${CMAKE_INSTALL_PREFIX}>")
300272
301- set (
302- EXPANDED_LIBDIR
303- "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_LIBDIR} ,${CMAKE_INSTALL_PREFIX} >"
304- )
273+ # Set man documentation directory.
274+ if("@CMAKE_SYSTEM_NAME@" STREQUAL "Windows")
275+ set(PHP_MANDIR "")
276+ else()
277+ set(PHP_MANDIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,@CMAKE_INSTALL_MANDIR@,${CMAKE_INSTALL_PREFIX}>")
278+ endif()
305279
306- set (
307- EXPANDED_DATADIR
308- "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_DATADIR} ,${CMAKE_INSTALL_PREFIX} >"
309- )
280+ set(EXPANDED_LIBDIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,@CMAKE_INSTALL_LIBDIR@,${CMAKE_INSTALL_PREFIX}>")
310281
311- set (EXPANDED_SYSCONFDIR "${CMAKE_INSTALL_FULL_SYSCONFDIR} " )
312- set (EXPANDED_LOCALSTATEDIR "${CMAKE_INSTALL_FULL_LOCALSTATEDIR} " )
313- set (prefix "${CMAKE_INSTALL_PREFIX} " )
282+ set(EXPANDED_DATADIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,@CMAKE_INSTALL_DATADIR@,${CMAKE_INSTALL_PREFIX}>")
283+
284+ set(EXPANDED_SYSCONFDIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,@CMAKE_INSTALL_SYSCONFDIR@,${CMAKE_INSTALL_PREFIX}>")
285+
286+ set(EXPANDED_LOCALSTATEDIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,@CMAKE_INSTALL_LOCALSTATEDIR@,${CMAKE_INSTALL_PREFIX}>")
287+
288+ # Set the directory where php.ini is looked for.
289+ if("@CMAKE_SYSTEM_NAME@" STREQUAL "Windows")
290+ set(EXPANDED_PHP_CONFIG_FILE_PATH "")
291+ else()
292+ set(EXPANDED_PHP_CONFIG_FILE_PATH "$<PATH:ABSOLUTE_PATH,NORMALIZE,@PHP_CONFIG_FILE_PATH@,${CMAKE_INSTALL_PREFIX}>")
293+ endif()
294+
295+ # Set the directory where additional ini files are searched for.
296+ set(EXPANDED_PHP_CONFIG_FILE_SCAN_DIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,@PHP_CONFIG_FILE_SCAN_DIR@,${CMAKE_INSTALL_PREFIX}>")
314297
315- # Set shared library object extension.
316- string (REPLACE "." "" SHLIB_DL_SUFFIX_NAME "${CMAKE_SHARED_MODULE_SUFFIX} " )
298+ # Set shared library object extension.
299+ string(REPLACE "." "" SHLIB_DL_SUFFIX_NAME "@CMAKE_SHARED_MODULE_SUFFIX@")
300+
301+ # Set filename prefix for PHP shared extensions.
302+ if("@CMAKE_SYSTEM_NAME@" STREQUAL "Windows")
303+ set(PHP_SHLIB_EXT_PREFIX "php_")
304+ else()
305+ set(PHP_SHLIB_EXT_PREFIX "")
306+ endif()
307+ ]] code @ONLY)
308+ cmake_language(EVAL CODE "${code} " )
317309
318310 if (PHP_DEFAULT_SHORT_OPEN_TAG)
319311 set (DEFAULT_SHORT_OPEN_TAG "1" )
320312 else ()
321313 set (DEFAULT_SHORT_OPEN_TAG "0" )
322314 endif ()
323315
324- set (PHP_PROG_SENDMAIL "${Sendmail_PROGRAM} " )
325-
326316 if (CMAKE_SYSTEM_NAME STREQUAL "Windows" )
327317 set (PHP_CONFIG_H_WINDOWS 1)
328318 set (file config.w32.h)
329- set (PHP_SHLIB_EXT_PREFIX "php_" )
330319 else ()
331320 set (PHP_CONFIG_H_WINDOWS 0)
332321 set (file php_config.h)
333322 set (HAVE_BUILD_DEFS_H TRUE )
334- set (PHP_SHLIB_EXT_PREFIX "" )
335323 endif ()
336324
337325 # Add sapis configuration.
@@ -366,7 +354,6 @@ function(_php_main_create_files)
366354 file (READ ${CMAKE_CURRENT_BINARY_DIR} /Zend/CMakeFiles/zend_config.h config)
367355 string (STRIP "${config} " ZEND_CONFIGURATION)
368356
369- # Add build system configuration.
370357 file (READ main/cmake/build -defs.h.in PHP_BUILD_DEFINITIONS_CODE)
371358 string (CONFIGURE "${PHP_BUILD_DEFINITIONS_CODE} " PHP_BUILD_DEFINITIONS_CODE @ONLY)
372359
@@ -383,35 +370,18 @@ function(_php_main_create_files)
383370
384371 set (PHP_BUILD_DEFINITIONS_CODE "" )
385372
386- #[[
387- TODO: This enables regenerating the build-defs.h file on the install step
388- when using different install prefix at the 'cmake --install ... --prefix'
389- phase. Needs to be adjusted further to rebuild PHP at such case.
390- include(PHP/ConfigureFile)
391- php_configure_file(
392- INPUT ${PHP_SOURCE_DIR}/main/cmake/build-defs.h.in
393- OUTPUT ${PHP_BINARY_DIR}/$<CONFIG>/main/build-defs.h
394- VARIABLES
395- CONFIGURE_COMMAND "${CONFIGURE_COMMAND}"
396- PHP_PROG_SENDMAIL "${PHP_PROG_SENDMAIL}"
397- EXPANDED_PEAR_INSTALLDIR "${EXPANDED_PEAR_INSTALLDIR}"
398- INCLUDE_PATH "${INCLUDE_PATH}"
399- EXPANDED_EXTENSION_DIR "${EXPANDED_EXTENSION_DIR}"
400- prefix "$<INSTALL_PREFIX>"
401- EXPANDED_BINDIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_BINDIR},$<INSTALL_PREFIX>>"
402- EXPANDED_SBINDIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_SBINDIR},$<INSTALL_PREFIX>>"
403- PHP_MANDIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_MANDIR},$<INSTALL_PREFIX>>"
404- EXPANDED_LIBDIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_LIBDIR},$<INSTALL_PREFIX>>"
405- EXPANDED_DATADIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_DATADIR},$<INSTALL_PREFIX>>"
406- EXPANDED_SYSCONFDIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_SYSCONFDIR},$<INSTALL_PREFIX>>"
407- EXPANDED_LOCALSTATEDIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_LOCALSTATEDIR},$<INSTALL_PREFIX>>"
408- EXPANDED_PHP_CONFIG_FILE_PATH "$<PATH:ABSOLUTE_PATH,NORMALIZE,${PHP_CONFIG_FILE_PATH},$<INSTALL_PREFIX>>"
409- EXPANDED_PHP_CONFIG_FILE_SCAN_DIR "$<PATH:ABSOLUTE_PATH,NORMALIZE,${PHP_CONFIG_FILE_SCAN_DIR},$<INSTALL_PREFIX>>"
410- SHLIB_DL_SUFFIX_NAME "${SHLIB_DL_SUFFIX_NAME}"
411- )
412- add_custom_target(php_main_build_defs_h DEPENDS ${PHP_BINARY_DIR}/$<CONFIG>/main/build-defs.h)
413- add_dependencies(php_main php_main_build_defs_h)
414- #]]
373+ # This enables regenerating the build-defs.h file on the install step
374+ # when using different install prefix at the 'cmake --install ... --prefix'
375+ # phase. Needs to be adjusted further to rebuild PHP at such case.
376+ string (CONFIGURE [[
377+ @code@
378+ configure_file(
379+ "@PHP_SOURCE_DIR@/main/cmake/build-defs.h.in"
380+ "@PHP_BINARY_DIR@/$<CONFIG>/main/build-defs.h"
381+ @ONLY
382+ )
383+ ]] code @ONLY)
384+ install (CODE "${code} " )
415385 endif ()
416386
417387 message (STATUS "Creating ${file} " )
@@ -424,17 +394,16 @@ function(_php_main_create_files)
424394 OUTPUT ${PHP_BINARY_DIR} /$<CONFIG>/main/${file}
425395 CONTENT "${content} "
426396 )
427- endfunction ()
428-
429- ################################################################################
430- # Configure installation.
431- ################################################################################
432397
433- install (
434- TARGETS php_main
435- ARCHIVE EXCLUDE_FROM_ALL
436- FILE_SET HEADERS
437- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /${PHP_INCLUDE_PREFIX} /main
438- FILE_SET generated
439- DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /${PHP_INCLUDE_PREFIX} /main
440- )
398+ ##############################################################################
399+ # Configure installation.
400+ ##############################################################################
401+ install (
402+ TARGETS php_main
403+ ARCHIVE EXCLUDE_FROM_ALL
404+ FILE_SET HEADERS
405+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /${PHP_INCLUDE_PREFIX} /main
406+ FILE_SET generated
407+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} /${PHP_INCLUDE_PREFIX} /main
408+ )
409+ endfunction ()
0 commit comments