Revision 20fa4ce8d89369441dc4f8a74d62611e8dfa36ea authored by Matthew Woehlke on 18 July 2024, 16:07:26 UTC, committed by Matthew Woehlke on 23 July 2024, 16:13:39 UTC
In order to support generation of Common Package Specifications, the mechanisms CMake uses to export package information need to be made more abstract. The prior commits began this refactoring; this continues by (actually) restructuring the classes used to generate the actual export files. To minimize churn, this introduces virtual base classes and diamond inheritance in order to separate logic which is format-agnostic but depends on the export mode (build-tree versus install-tree) from logic which is format-specific but mode-agnostic. This could probably be refactored further to use helper classes instead, and a future commit may do that, however an initial attempt to do that was proving even more invasive, such that this approach was deemed more manageable. While we're at it, add 'const' in more places where possible.
1 parent 6c66340
FindPHP4.cmake
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#[=======================================================================[.rst:
FindPHP4
--------
Find PHP4
This module finds if PHP4 is installed and determines where the
include files and libraries are. It also determines what the name of
the library is. This code sets the following variables:
::
PHP4_INCLUDE_PATH = path to where php.h can be found
PHP4_EXECUTABLE = full path to the php4 binary
#]=======================================================================]
set(PHP4_POSSIBLE_INCLUDE_PATHS
/usr/include/php4
/usr/local/include/php4
/usr/include/php
/usr/local/include/php
/usr/local/apache/php
)
set(PHP4_POSSIBLE_LIB_PATHS
/usr/lib
)
find_path(PHP4_FOUND_INCLUDE_PATH main/php.h
${PHP4_POSSIBLE_INCLUDE_PATHS})
if(PHP4_FOUND_INCLUDE_PATH)
set(php4_paths "${PHP4_POSSIBLE_INCLUDE_PATHS}")
foreach(php4_path Zend main TSRM)
set(php4_paths ${php4_paths} "${PHP4_FOUND_INCLUDE_PATH}/${php4_path}")
endforeach()
set(PHP4_INCLUDE_PATH "${php4_paths}")
endif()
find_program(PHP4_EXECUTABLE NAMES php4 php )
mark_as_advanced(
PHP4_EXECUTABLE
PHP4_FOUND_INCLUDE_PATH
)
if(APPLE)
# this is a hack for now
string(APPEND CMAKE_SHARED_MODULE_CREATE_C_FLAGS
" -Wl,-flat_namespace")
foreach(symbol
__efree
__emalloc
__estrdup
__object_init_ex
__zend_get_parameters_array_ex
__zend_list_find
__zval_copy_ctor
_add_property_zval_ex
_alloc_globals
_compiler_globals
_convert_to_double
_convert_to_long
_zend_error
_zend_hash_find
_zend_register_internal_class_ex
_zend_register_list_destructors_ex
_zend_register_resource
_zend_rsrc_list_get_rsrc_type
_zend_wrong_param_count
_zval_used_for_init
)
string(APPEND CMAKE_SHARED_MODULE_CREATE_C_FLAGS
",-U,${symbol}")
endforeach()
endif()
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(PHP4 DEFAULT_MSG PHP4_EXECUTABLE PHP4_INCLUDE_PATH)
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...