Skip to content

Commit 8345fd3

Browse files
committed
Fix FILE_SET usage
When same header set (HEADERS) has base directory inside the other it doesn't work. So a completely separate FILE_SET with name must be created instead.
1 parent 485ea47 commit 8345fd3

File tree

6 files changed

+45
-26
lines changed

6 files changed

+45
-26
lines changed

cmake/Zend/CMakeLists.txt

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,15 @@ target_sources(
180180
PUBLIC
181181
FILE_SET HEADERS
182182
FILES
183+
Optimizer/zend_call_graph.h
184+
Optimizer/zend_cfg.h
185+
Optimizer/zend_dfg.h
186+
Optimizer/zend_dump.h
187+
Optimizer/zend_func_info.h
188+
Optimizer/zend_inference.h
189+
Optimizer/zend_optimizer.h
190+
Optimizer/zend_ssa.h
191+
Optimizer/zend_worklist.h
183192
zend_alloc_sizes.h
184193
zend_alloc.h
185194
zend_API.h
@@ -276,18 +285,9 @@ target_sources(
276285
zend_weakrefs_arginfo.h
277286
zend_weakrefs.h
278287
zend.h
279-
Optimizer/zend_call_graph.h
280-
Optimizer/zend_cfg.h
281-
Optimizer/zend_dfg.h
282-
Optimizer/zend_dump.h
283-
Optimizer/zend_func_info.h
284-
Optimizer/zend_inference.h
285-
Optimizer/zend_optimizer.h
286-
Optimizer/zend_ssa.h
287-
Optimizer/zend_worklist.h
288-
# A separate file set so binary dir can also be created within a source dir.
289288
PUBLIC
290-
FILE_SET HEADERS
289+
FILE_SET generated
290+
TYPE HEADERS
291291
BASE_DIRS ${CMAKE_CURRENT_BINARY_DIR}
292292
FILES
293293
$<$<NOT:$<PLATFORM_ID:Windows>>:${CMAKE_CURRENT_BINARY_DIR}/zend_config.h>
@@ -686,4 +686,6 @@ install(
686686
ARCHIVE EXCLUDE_FROM_ALL
687687
FILE_SET HEADERS
688688
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PHP_INCLUDE_PREFIX}/Zend
689+
FILE_SET generated
690+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PHP_INCLUDE_PREFIX}/Zend
689691
)

cmake/cmake/modules/PHP/Extensions.cmake

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -419,16 +419,27 @@ function(php_extensions_postconfigure extension)
419419
set_property(TARGET php_${extension} PROPERTY OUTPUT_NAME ${extension})
420420
endif()
421421

422-
# Add extension's default installation instructions.
422+
# Specify extension's default installation rules.
423+
get_target_property(sets php_${extension} INTERFACE_HEADER_SETS)
424+
set(fileSets "")
425+
foreach(set IN LISTS sets)
426+
list(
427+
APPEND
428+
fileSets
429+
FILE_SET
430+
${set}
431+
DESTINATION
432+
${CMAKE_INSTALL_INCLUDEDIR}/${PHP_INCLUDE_PREFIX}/ext/${extension}
433+
)
434+
endforeach()
423435
install(
424436
TARGETS php_${extension}
425437
ARCHIVE EXCLUDE_FROM_ALL
426438
RUNTIME
427439
DESTINATION ${PHP_EXTENSION_DIR}
428440
LIBRARY
429441
DESTINATION ${PHP_EXTENSION_DIR}
430-
FILE_SET HEADERS
431-
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PHP_INCLUDE_PREFIX}/ext/${extension}
442+
${fileSets}
432443
)
433444

434445
# Configure shared extension.

cmake/ext/date/lib/CMakeLists.txt

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ add_subdirectory(lib)
1313
```
1414
#]=============================================================================]
1515

16+
cmake_minimum_required(VERSION 3.25...3.31)
17+
18+
project(Timelib LANGUAGES C)
19+
1620
include(CheckIncludeFile)
1721

1822
if(NOT TIMELIB_TARGET)
@@ -36,14 +40,15 @@ set(
3640

3741
target_sources(
3842
${TIMELIB_TARGET}
39-
PRIVATE ${timelibSources}
43+
PRIVATE
44+
${timelibSources}
4045
PUBLIC
4146
FILE_SET HEADERS
4247
FILES
4348
timelib.h
44-
# A separate file set so binary dir can also be created within a source dir.
4549
PUBLIC
46-
FILE_SET HEADERS
50+
FILE_SET generated
51+
TYPE HEADERS
4752
BASE_DIRS $<TARGET_PROPERTY:${TIMELIB_TARGET},BINARY_DIR>
4853
FILES
4954
${CMAKE_CURRENT_BINARY_DIR}/timelib_config.h
@@ -59,8 +64,6 @@ target_compile_definitions(
5964
HAVE_STRTOLL
6065
)
6166

62-
# The libmbfl configuration.
63-
6467
check_include_file(io.h HAVE_IO_H)
6568

6669
cmake_path(
@@ -70,7 +73,6 @@ cmake_path(
7073
OUTPUT_VARIABLE relativeDir
7174
)
7275
message(STATUS "Creating ${relativeDir}/timelib_config.h")
73-
7476
file(CONFIGURE OUTPUT timelib_config.h CONTENT [[
7577
/* Define to 1 if you have the <io.h> header file. */
7678
#cmakedefine HAVE_IO_H 1

cmake/ext/mbstring/libmbfl/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,9 @@ target_sources(
7979
mbfl/mbfl_language.h
8080
mbfl/mbfl_memory_device.h
8181
mbfl/mbfl_string.h
82-
# A separate file set so binary dir can also be created within a source dir.
8382
PUBLIC
84-
FILE_SET HEADERS
83+
FILE_SET generated
84+
TYPE HEADERS
8585
BASE_DIRS $<TARGET_PROPERTY:${LIBMBFL_TARGET},BINARY_DIR>
8686
FILES
8787
${CMAKE_CURRENT_BINARY_DIR}/config.h

cmake/main/CMakeLists.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,9 +92,9 @@ target_sources(
9292
streams/php_stream_userspace.h
9393
streams/php_streams_int.h
9494
streams/userspace_arginfo.h
95-
# A separate file set so binary dir can also be created within a source dir.
9695
PUBLIC
97-
FILE_SET HEADERS
96+
FILE_SET generated
97+
TYPE HEADERS
9898
BASE_DIRS ${CMAKE_CURRENT_BINARY_DIR}
9999
FILES
100100
$<$<PLATFORM_ID:Windows>:${CMAKE_CURRENT_BINARY_DIR}/config.w32.h>
@@ -415,4 +415,6 @@ install(
415415
ARCHIVE EXCLUDE_FROM_ALL
416416
FILE_SET HEADERS
417417
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PHP_INCLUDE_PREFIX}/main
418+
FILE_SET generated
419+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PHP_INCLUDE_PREFIX}/main
418420
)

cmake/win32/CMakeLists.txt

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,9 @@ target_sources(
5959
time.h
6060
unistd.h
6161
winutil.h
62-
# A separate file set so binary dir can also be created within a source dir.
6362
PUBLIC
64-
FILE_SET HEADERS
63+
FILE_SET generated
64+
TYPE HEADERS
6565
BASE_DIRS ${CMAKE_CURRENT_BINARY_DIR}
6666
FILES
6767
${CMAKE_CURRENT_BINARY_DIR}/wsyslog.h
@@ -163,4 +163,6 @@ install(
163163
ARCHIVE EXCLUDE_FROM_ALL
164164
FILE_SET HEADERS
165165
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PHP_INCLUDE_PREFIX}/win32
166+
FILE_SET generated
167+
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${PHP_INCLUDE_PREFIX}/win32
166168
)

0 commit comments

Comments
 (0)