Skip to content

Commit 8ec2c72

Browse files
committed
Add support for generator expressions to PHP_CLI property
For example: ```cmake set_target_properties( php_extension PROPERTIES PHP_CLI $<IF:$<PLATFORM_ID:Windows>,FALSE,TRUE> ) ```
1 parent 422b7bc commit 8ec2c72

File tree

2 files changed

+13
-15
lines changed

2 files changed

+13
-15
lines changed

cmake/ext/CMakeLists.txt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -114,15 +114,15 @@ foreach(extension IN LISTS extensions)
114114
target_link_libraries(
115115
php_extensions
116116
INTERFACE
117-
$<IF:$<BOOL:$<TARGET_PROPERTY:PHP::${extension},PHP_CLI>>,$<$<BOOL:$<TARGET_PROPERTY:PHP_CLI>>:$<LINK_ONLY:PHP::${extension}>>,$<LINK_ONLY:PHP::${extension}>>
117+
$<IF:$<BOOL:$<TARGET_GENEX_EVAL:PHP::${extension},$<TARGET_PROPERTY:PHP::${extension},PHP_CLI>>>,$<$<BOOL:$<TARGET_PROPERTY:PHP_CLI>>:$<LINK_ONLY:PHP::${extension}>>,$<LINK_ONLY:PHP::${extension}>>
118118
)
119119

120120
target_sources(
121121
php_extensions
122122
INTERFACE
123-
$<IF:$<BOOL:$<TARGET_PROPERTY:PHP::${extension},PHP_CLI>>,$<$<BOOL:$<TARGET_PROPERTY:PHP_CLI>>:$<TARGET_OBJECTS:PHP::${extension}>>,$<TARGET_OBJECTS:PHP::${extension}>>
123+
$<IF:$<BOOL:$<TARGET_GENEX_EVAL:PHP::${extension},$<TARGET_PROPERTY:PHP::${extension},PHP_CLI>>>,$<$<BOOL:$<TARGET_PROPERTY:PHP_CLI>>:$<TARGET_OBJECTS:PHP::${extension}>>,$<TARGET_OBJECTS:PHP::${extension}>>
124124

125-
$<IF:$<BOOL:$<TARGET_PROPERTY:PHP::${extension},PHP_CLI>>,$<$<BOOL:$<TARGET_PROPERTY:PHP_CLI>>:$<TARGET_PROPERTY:PHP::${extension},INTERFACE_SOURCES>>,$<TARGET_PROPERTY:PHP::${extension},INTERFACE_SOURCES>>
125+
$<IF:$<BOOL:$<TARGET_GENEX_EVAL:PHP::${extension},$<TARGET_PROPERTY:PHP::${extension},PHP_CLI>>>,$<$<BOOL:$<TARGET_PROPERTY:PHP_CLI>>:$<TARGET_PROPERTY:PHP::${extension},INTERFACE_SOURCES>>,$<TARGET_PROPERTY:PHP::${extension},INTERFACE_SOURCES>>
126126
)
127127
endif()
128128

cmake/main/CMakeLists.txt

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -310,8 +310,6 @@ block()
310310
continue()
311311
endif()
312312

313-
get_target_property(isCli php_${extension} PHP_CLI)
314-
315313
file(GLOB_RECURSE headers ${PHP_SOURCE_DIR}/ext/${extension}/*.h)
316314

317315
foreach(header IN LISTS headers)
@@ -322,17 +320,13 @@ block()
322320
cmake_path(GET header FILENAME filename)
323321
set(code "#include \"ext/${extension}/${filename}\"\n")
324322
string(APPEND includesCli "${code}")
325-
if(NOT isCli)
326-
string(APPEND includes "${code}")
327-
endif()
323+
string(APPEND includes "$<$<NOT:$<BOOL:$<TARGET_GENEX_EVAL:PHP::${extension},$<TARGET_PROPERTY:PHP::${extension},PHP_CLI>>>>:${code}>")
328324
endif()
329325
endforeach()
330326

331327
set(code "\n\tphpext_${extension}_ptr,")
332328
set(pointersCli "${pointersCli}${code}")
333-
if(NOT isCli)
334-
set(pointers "${pointers}${code}")
335-
endif()
329+
set(pointers "${pointers}$<$<NOT:$<BOOL:$<TARGET_GENEX_EVAL:PHP::${extension},$<TARGET_PROPERTY:PHP::${extension},PHP_CLI>>>>:${code}>")
336330
endforeach()
337331

338332
cmake_path(
@@ -342,15 +336,19 @@ block()
342336
OUTPUT_VARIABLE relativeBinaryDir
343337
)
344338

339+
file(READ internal_functions.c.in template)
340+
341+
message(STATUS "Configuring ${relativeBinaryDir}/internal_functions.c")
345342
set(EXT_INCLUDE_CODE "${includes}")
346343
set(EXT_MODULE_PTRS "${pointers}")
347-
message(STATUS "Creating ${relativeBinaryDir}/internal_functions.c")
348-
configure_file(internal_functions.c.in internal_functions.c)
344+
string(CONFIGURE "${template}" content)
345+
file(GENERATE OUTPUT internal_functions.c CONTENT "${content}")
349346

347+
message(STATUS "Configuring ${relativeBinaryDir}/internal_functions_cli.c")
350348
set(EXT_INCLUDE_CODE "${includesCli}")
351349
set(EXT_MODULE_PTRS "${pointersCli}")
352-
message(STATUS "Creating ${relativeBinaryDir}/internal_functions_cli.c")
353-
configure_file(internal_functions.c.in internal_functions_cli.c)
350+
string(CONFIGURE "${template}" content)
351+
file(GENERATE OUTPUT internal_functions_cli.c CONTENT "${content}")
354352
endblock()
355353

356354
################################################################################

0 commit comments

Comments
 (0)