@@ -45,6 +45,7 @@ target_sources(
4545 streams/xp_socket.c
4646 strlcat.c
4747 strlcpy.c
48+ ${PHP_BINARY_DIR} /main/build -defs.h
4849 PUBLIC
4950 FILE_SET HEADERS
5051 FILES
@@ -285,7 +286,10 @@ function(_php_main_create_files)
285286 # TODO: Set configure command string.
286287 set (CONFIGURE_COMMAND "cmake" )
287288
288- # TODO: Fix the installation prefix when passed via --prefix option.
289+ # TODO: Fix the installation prefixes below when passed via the '--prefix'
290+ # option of the 'cmake --install ...' command. PHP is at the time of writing
291+ # not a relocatable program.
292+
289293 if (PHP_PEAR_DIR)
290294 set (
291295 EXPANDED_PEAR_INSTALLDIR
@@ -305,16 +309,47 @@ function(_php_main_create_files)
305309 "$<PATH:ABSOLUTE_PATH,NORMALIZE,${PHP_EXTENSION_DIR} ,${CMAKE_INSTALL_PREFIX} >"
306310 )
307311
308- set (EXPANDED_PHP_CONFIG_FILE_PATH "${PHP_FULL_CONFIG_FILE_PATH} " )
309- set (EXPANDED_PHP_CONFIG_FILE_SCAN_DIR "${PHP_FULL_CONFIG_FILE_SCAN_DIR} " )
310- set (EXPANDED_BINDIR "${CMAKE_INSTALL_FULL_BINDIR} " )
311- set (EXPANDED_SBINDIR "${CMAKE_INSTALL_FULL_SBINDIR} " )
312- set (EXPANDED_MANDIR "${CMAKE_INSTALL_FULL_MANDIR} " )
313- set (EXPANDED_LIBDIR "${CMAKE_INSTALL_FULL_LIBDIR} " )
314- set (EXPANDED_DATADIR "${CMAKE_INSTALL_FULL_DATADIR} " )
312+ # Set the directory where php.ini is looked for.
313+ set (
314+ EXPANDED_PHP_CONFIG_FILE_PATH
315+ "$<PATH:ABSOLUTE_PATH,NORMALIZE,${PHP_CONFIG_FILE_PATH} ,${CMAKE_INSTALL_PREFIX} >"
316+ )
317+
318+ # Set the directory where additional ini files are searched for.
319+ set (
320+ EXPANDED_PHP_CONFIG_FILE_SCAN_DIR
321+ "$<PATH:ABSOLUTE_PATH,NORMALIZE,${PHP_CONFIG_FILE_SCAN_DIR} ,${CMAKE_INSTALL_PREFIX} >"
322+ )
323+
324+ set (
325+ EXPANDED_BINDIR
326+ "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_BINDIR} ,${CMAKE_INSTALL_PREFIX} >"
327+ )
328+
329+ set (
330+ EXPANDED_SBINDIR
331+ "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_SBINDIR} ,${CMAKE_INSTALL_PREFIX} >"
332+ )
333+
334+ set (
335+ EXPANDED_MANDIR
336+ "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_MANDIR} ,${CMAKE_INSTALL_PREFIX} >"
337+ )
338+
339+ set (
340+ EXPANDED_LIBDIR
341+ "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_LIBDIR} ,${CMAKE_INSTALL_PREFIX} >"
342+ )
343+
344+ set (
345+ EXPANDED_DATADIR
346+ "$<PATH:ABSOLUTE_PATH,NORMALIZE,${CMAKE_INSTALL_DATADIR} ,${CMAKE_INSTALL_PREFIX} >"
347+ )
348+
315349 set (EXPANDED_SYSCONFDIR "${CMAKE_INSTALL_FULL_SYSCONFDIR} " )
316350 set (EXPANDED_LOCALSTATEDIR "${CMAKE_INSTALL_FULL_LOCALSTATEDIR} " )
317351 set (prefix "${CMAKE_INSTALL_PREFIX} " )
352+
318353 # Set shared library object extension.
319354 string (REPLACE "." "" SHLIB_DL_SUFFIX_NAME ${CMAKE_SHARED_MODULE_SUFFIX} )
320355
@@ -344,6 +379,40 @@ function(_php_main_create_files)
344379 CONTENT "${content} "
345380 )
346381
382+ #[[
383+ TODO: This enables regenerating the build-defs.h file on the install step
384+ when using different install prefix at the 'cmake --install ... --prefix'
385+ phase. Needs to be adjusted further to rebuild PHP at such case.
386+ include(PHP/ConfigureFile)
387+ php_configure_file(
388+ ${PHP_SOURCE_DIR}/main/build-defs.h.in
389+ ${PHP_BINARY_DIR}/main/build-defs.h
390+ VARIABLES
391+ CONFIGURE_COMMAND "cmake"
392+ ODBC_CFLAGS "${ODBC_CFLAGS}"
393+ ODBC_LFLAGS "${ODBC_LFLAGS}"
394+ ODBC_LIBS "${ODBC_LIBS}"
395+ ODBC_TYPE "${ODBC_TYPE}"
396+ PROG_SENDMAIL "${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+ EXPANDED_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}/main/build-defs.h)
413+ add_dependencies(php_main php_main_build_defs_h)
414+ #]]
415+
347416 set (HAVE_BUILD_DEFS_H 1)
348417 set (PHP_CONFIG_H_WINDOWS 0)
349418 set (file php_config.h)
0 commit comments