Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions cmake/cmake/Testing.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ block()

get_property(extensions GLOBAL PROPERTY PHP_EXTENSIONS)
foreach(extension IN LISTS extensions)
get_target_property(type php_${extension} TYPE)
get_target_property(type php_ext_${extension} TYPE)
if(type MATCHES "^(MODULE|SHARED)_LIBRARY$")
get_target_property(isZendExtension php_${extension} PHP_ZEND_EXTENSION)
get_target_property(isZendExtension php_ext_${extension} PHP_ZEND_EXTENSION)
if(isZendExtension)
list(APPEND options -d zend_extension=${extension})
elseif(NOT extension STREQUAL "dl_test")
Expand Down
1 change: 1 addition & 0 deletions cmake/cmake/modules/FindRE2C.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,7 @@ if(RE2C_ENABLE_DOWNLOAD AND (NOT RE2C_EXECUTABLE OR NOT _re2c_version_valid))
URL https://github.com/skvadrik/re2c/archive/refs/tags/${RE2C_VERSION}.tar.gz
)

message(STATUS "Downloading RE2C")
FetchContent_MakeAvailable(RE2C)

# Set executable to re2c target name.
Expand Down
54 changes: 27 additions & 27 deletions cmake/cmake/modules/PHP/Extensions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ https://bugs.php.net/53141
capabilities.

```cmake
set_target_properties(php_<extension_name> PROPERTIES PHP_ZEND_EXTENSION TRUE)
set_target_properties(php_ext_<extension_name> PROPERTIES PHP_ZEND_EXTENSION TRUE)
```

* `PHP_EXTENSION_<extension>_DEPS`
Expand Down Expand Up @@ -195,9 +195,9 @@ function(_php_extensions_parse_dependencies extension result)
# Command invocation:
"add_dependencies[ \t]*\\("
# Target name:
"[ \t\r\n]*php_${extension}[ \t\r\n]+"
"[ \t\r\n]*php_ext_${extension}[ \t\r\n]+"
# Dependencies:
"[\"]?(php_[a-zA-Z0-9_; \t\r\n]+)"
"[\"]?(php_ext_[a-zA-Z0-9_; \t\r\n]+)"
)

string(REGEX MATCHALL "${regex}" matches "${content}")
Expand All @@ -209,7 +209,7 @@ function(_php_extensions_parse_dependencies extension result)
if(CMAKE_MATCH_1)
string(STRIP "${CMAKE_MATCH_1}" dependencies)
string(REPLACE " " ";" dependencies "${dependencies}")
list(TRANSFORM dependencies REPLACE "^php_" "")
list(TRANSFORM dependencies REPLACE "^php_ext_" "")
list(APPEND allDependencies ${dependencies})
endif()
endif()
Expand Down Expand Up @@ -364,17 +364,17 @@ endfunction()

# Postconfigure extension right after it has been configured.
function(php_extensions_postconfigure extension)
if(NOT TARGET php_${extension})
if(NOT TARGET php_ext_${extension})
return()
endif()

# If extension is enabled, enable also all its dependencies.
get_target_property(
dependencies
php_${extension}
php_ext_${extension}
MANUALLY_ADDED_DEPENDENCIES
)
list(TRANSFORM dependencies REPLACE "^php_" "")
list(TRANSFORM dependencies REPLACE "^php_ext_" "")
get_property(alwaysEnabledExtensions GLOBAL PROPERTY PHP_ALWAYS_ENABLED_EXTENSIONS)
get_property(allExtensions GLOBAL PROPERTY PHP_ALL_EXTENSIONS)

Expand Down Expand Up @@ -409,18 +409,18 @@ function(php_extensions_postconfigure extension)
endif()
endforeach()

if(NOT TARGET PHP::${extension})
add_library(PHP::${extension} ALIAS php_${extension})
if(NOT TARGET PHP::ext::${extension})
add_library(PHP::ext::${extension} ALIAS php_ext_${extension})
endif()

# Set target output filename to "<extension>".
get_target_property(output php_${extension} OUTPUT_NAME)
get_target_property(output php_ext_${extension} OUTPUT_NAME)
if(NOT output)
set_property(TARGET php_${extension} PROPERTY OUTPUT_NAME ${extension})
set_property(TARGET php_ext_${extension} PROPERTY OUTPUT_NAME ${extension})
endif()

# Specify extension's default installation rules.
get_target_property(sets php_${extension} INTERFACE_HEADER_SETS)
get_target_property(sets php_ext_${extension} INTERFACE_HEADER_SETS)
set(fileSets "")
foreach(set IN LISTS sets)
list(
Expand All @@ -433,7 +433,7 @@ function(php_extensions_postconfigure extension)
)
endforeach()
install(
TARGETS php_${extension}
TARGETS php_ext_${extension}
ARCHIVE EXCLUDE_FROM_ALL
RUNTIME
DESTINATION ${PHP_EXTENSION_DIR}
Expand All @@ -443,24 +443,24 @@ function(php_extensions_postconfigure extension)
)

# Configure shared extension.
get_target_property(type php_${extension} TYPE)
get_target_property(type php_ext_${extension} TYPE)
if(NOT type MATCHES "^(MODULE|SHARED)_LIBRARY$")
return()
endif()

target_compile_definitions(php_${extension} PRIVATE ZEND_COMPILE_DL_EXT)
target_compile_definitions(php_ext_${extension} PRIVATE ZEND_COMPILE_DL_EXT)

set_target_properties(
php_${extension}
php_ext_${extension}
PROPERTIES
POSITION_INDEPENDENT_CODE ON
)

# Set build-phase location for shared extensions.
get_target_property(location php_${extension} LIBRARY_OUTPUT_DIRECTORY)
get_target_property(location php_ext_${extension} LIBRARY_OUTPUT_DIRECTORY)
if(NOT location)
set_property(
TARGET php_${extension}
TARGET php_ext_${extension}
PROPERTY LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/modules"
)
endif()
Expand All @@ -471,13 +471,13 @@ endfunction()
function(php_extensions_configure_headers)
get_property(extensions GLOBAL PROPERTY PHP_EXTENSIONS)
foreach(extension IN LISTS extensions)
if(NOT TARGET php_${extension})
if(NOT TARGET php_ext_${extension})
continue()
endif()

string(TOUPPER "COMPILE_DL_${extension}" macro)

get_target_property(type php_${extension} TYPE)
get_target_property(type php_ext_${extension} TYPE)
if(type MATCHES "^(MODULE|SHARED)_LIBRARY$")
set(${macro} TRUE)
endif()
Expand All @@ -492,7 +492,7 @@ function(php_extensions_configure_headers)
"#cmakedefine ${macro} 1\n"
)

get_target_property(binaryDir php_${extension} BINARY_DIR)
get_target_property(binaryDir php_ext_${extension} BINARY_DIR)
set(current "")
if(EXISTS ${binaryDir}/config.h)
file(READ ${binaryDir}/config.h current)
Expand All @@ -511,21 +511,21 @@ function(_php_extensions_validate)
list(TRANSFORM extensions REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/" "")

foreach(extension IN LISTS extensions)
if(NOT TARGET php_${extension})
if(NOT TARGET php_ext_${extension})
continue()
endif()

get_target_property(
dependencies
php_${extension}
php_ext_${extension}
MANUALLY_ADDED_DEPENDENCIES
)

if(NOT dependencies)
continue()
endif()

list(TRANSFORM dependencies REPLACE "^php_" "")
list(TRANSFORM dependencies REPLACE "^php_ext_" "")

get_property(allExtensions GLOBAL PROPERTY PHP_ALL_EXTENSIONS)

Expand All @@ -535,7 +535,7 @@ function(_php_extensions_validate)
continue()
endif()

if(NOT TARGET php_${dependency} OR NOT dependency IN_LIST extensions)
if(NOT TARGET php_ext_${dependency} OR NOT dependency IN_LIST extensions)
string(TOUPPER "${dependency}" dependencyUpper)
message(
SEND_ERROR
Expand All @@ -546,8 +546,8 @@ function(_php_extensions_validate)
)
endif()

get_target_property(dependencyType php_${dependency} TYPE)
get_target_property(extensionType php_${extension} TYPE)
get_target_property(dependencyType php_ext_${dependency} TYPE)
get_target_property(extensionType php_ext_${extension} TYPE)

if(
dependencyType MATCHES "^(MODULE|SHARED)_LIBRARY$"
Expand Down
14 changes: 7 additions & 7 deletions cmake/cmake/modules/PHP/FeatureSummary.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@ function(php_feature_summary)
string(PREPEND item " * ")
if(feature MATCHES "^ext/([^ ]+)$")
if(CMAKE_MATCH_1)
get_target_property(type php_${CMAKE_MATCH_1} TYPE)
get_target_property(type php_ext_${CMAKE_MATCH_1} TYPE)
if(type MATCHES "^(MODULE|SHARED)_LIBRARY$")
string(APPEND item " (shared)")
endif()
Expand Down Expand Up @@ -207,21 +207,21 @@ function(php_feature_summary)
get_property(extensions GLOBAL PROPERTY PHP_EXTENSIONS)

foreach(extension IN LISTS extensions)
if(NOT TARGET php_${extension})
if(NOT TARGET php_ext_${extension})
continue()
endif()

get_target_property(
dependencies
php_${extension}
php_ext_${extension}
MANUALLY_ADDED_DEPENDENCIES
)

if(NOT dependencies)
continue()
endif()

list(TRANSFORM dependencies REPLACE "^php_" "")
list(TRANSFORM dependencies REPLACE "^php_ext_" "")

get_property(allExtensions GLOBAL PROPERTY PHP_ALL_EXTENSIONS)

Expand All @@ -231,14 +231,14 @@ function(php_feature_summary)
continue()
endif()

if(NOT TARGET php_${dependency} OR NOT dependency IN_LIST extensions)
if(NOT TARGET php_ext_${dependency} OR NOT dependency IN_LIST extensions)
list(APPEND missingExtensions ${dependency})
list(APPEND _phpFeatureSummaryReason_${dependency} ${extension})
continue()
endif()

get_target_property(dependencyType php_${dependency} TYPE)
get_target_property(extensionType php_${extension} TYPE)
get_target_property(dependencyType php_ext_${dependency} TYPE)
get_target_property(extensionType php_ext_${extension} TYPE)

if(
dependencyType MATCHES "^(MODULE|SHARED)_LIBRARY$"
Expand Down
24 changes: 12 additions & 12 deletions cmake/ext/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -62,63 +62,63 @@ foreach(extension IN LISTS extensions)
php_extensions_postconfigure("${extension}")
list(POP_BACK CMAKE_MESSAGE_INDENT)

if(NOT TARGET php_${extension})
if(NOT TARGET php_ext_${extension})
message(CHECK_FAIL "disabled")
list(POP_BACK CMAKE_MESSAGE_CONTEXT)
continue()
endif()

set_property(GLOBAL APPEND PROPERTY PHP_EXTENSIONS ${extension})

add_dependencies(php_${extension} Zend::Zend)
add_dependencies(php_ext_${extension} Zend::Zend)

# Add usage requirements to PHP interface targets.
# TODO: Should PHP_CLI extensions pass properties only to PHP_CLI SAPIs?
get_target_property(type php_${extension} TYPE)
get_target_property(type php_ext_${extension} TYPE)
if(NOT type MATCHES "^(MODULE|SHARED)_LIBRARY$")
target_compile_definitions(
php_config
INTERFACE
$<TARGET_PROPERTY:PHP::${extension},INTERFACE_COMPILE_DEFINITIONS>
$<TARGET_PROPERTY:PHP::ext::${extension},INTERFACE_COMPILE_DEFINITIONS>
)

target_compile_options(
php_config
INTERFACE
$<TARGET_PROPERTY:PHP::${extension},INTERFACE_COMPILE_OPTIONS>
$<TARGET_PROPERTY:PHP::ext::${extension},INTERFACE_COMPILE_OPTIONS>
)

target_compile_features(
php_config
INTERFACE
$<TARGET_PROPERTY:PHP::${extension},INTERFACE_COMPILE_FEATURES>
$<TARGET_PROPERTY:PHP::ext::${extension},INTERFACE_COMPILE_FEATURES>
)

target_include_directories(
php_config
INTERFACE
$<TARGET_PROPERTY:PHP::${extension},INTERFACE_INCLUDE_DIRECTORIES>
$<TARGET_PROPERTY:PHP::${extension},INTERFACE_SYSTEM_INCLUDE_DIRECTORIES>
$<TARGET_PROPERTY:PHP::ext::${extension},INTERFACE_INCLUDE_DIRECTORIES>
$<TARGET_PROPERTY:PHP::ext::${extension},INTERFACE_SYSTEM_INCLUDE_DIRECTORIES>
)

target_link_libraries(
php_sapi
INTERFACE
$<IF:$<BOOL:$<TARGET_GENEX_EVAL:PHP::${extension},$<TARGET_PROPERTY:PHP::${extension},PHP_CLI>>>,$<$<BOOL:$<TARGET_PROPERTY:PHP_CLI>>:PHP::${extension}>,PHP::${extension}>
$<IF:$<BOOL:$<TARGET_GENEX_EVAL:PHP::ext::${extension},$<TARGET_PROPERTY:PHP::ext::${extension},PHP_CLI>>>,$<$<BOOL:$<TARGET_PROPERTY:PHP_CLI>>:PHP::ext::${extension}>,PHP::ext::${extension}>
)

target_sources(
php_sapi
INTERFACE
$<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}>>
$<IF:$<BOOL:$<TARGET_GENEX_EVAL:PHP::ext::${extension},$<TARGET_PROPERTY:PHP::ext::${extension},PHP_CLI>>>,$<$<BOOL:$<TARGET_PROPERTY:PHP_CLI>>:$<TARGET_OBJECTS:PHP::ext::${extension}>>,$<TARGET_OBJECTS:PHP::ext::${extension}>>
)
endif()

target_link_libraries(php_${extension} PRIVATE PHP::config)
target_link_libraries(php_ext_${extension} PRIVATE PHP::config)

# Add configuration compile options before the extension compile options.
target_compile_options(
php_${extension}
php_ext_${extension}
BEFORE PRIVATE
$<TARGET_PROPERTY:PHP::config,INTERFACE_COMPILE_OPTIONS>
)
Expand Down
8 changes: 4 additions & 4 deletions cmake/ext/bcmath/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -49,13 +49,13 @@ if(NOT EXT_BCMATH)
endif()

if(EXT_BCMATH_SHARED)
add_library(php_bcmath SHARED)
add_library(php_ext_bcmath SHARED)
else()
add_library(php_bcmath)
add_library(php_ext_bcmath)
endif()

target_sources(
php_bcmath
php_ext_bcmath
PRIVATE
bcmath.c
bcmath.stub.php
Expand All @@ -82,7 +82,7 @@ target_sources(
libbcmath/src/zero.c
)

target_compile_definitions(php_bcmath PRIVATE ZEND_ENABLE_STATIC_TSRMLS_CACHE)
target_compile_definitions(php_ext_bcmath PRIVATE ZEND_ENABLE_STATIC_TSRMLS_CACHE)

set(HAVE_BCMATH TRUE)

Expand Down
10 changes: 5 additions & 5 deletions cmake/ext/bz2/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -51,21 +51,21 @@ if(NOT EXT_BZ2)
endif()

if(EXT_BZ2_SHARED)
add_library(php_bz2 SHARED)
add_library(php_ext_bz2 SHARED)
else()
add_library(php_bz2)
add_library(php_ext_bz2)
endif()

target_sources(
php_bz2
php_ext_bz2
PRIVATE
bz2_filter.c
bz2.c
bz2.stub.php
)

target_compile_definitions(
php_bz2
php_ext_bz2
PRIVATE
$<$<AND:$<PLATFORM_ID:Windows>,$<IN_LIST:$<TARGET_PROPERTY:TYPE>,MODULE_LIBRARY;SHARED_LIBRARY>>:PHP_BZ2_EXPORTS>
)
Expand All @@ -79,7 +79,7 @@ set_package_properties(
)

# Link with PUBLIC scope if include directories are on non-standard places.
target_link_libraries(php_bz2 PUBLIC BZip2::BZip2)
target_link_libraries(php_ext_bz2 PUBLIC BZip2::BZip2)

# Sanity check.
if(TARGET BZip2::BZip2)
Expand Down
Loading
Loading