FindPHP4.cmake 1.98 KB
Newer Older
1 2 3
# Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.

4 5 6
#.rst:
# FindPHP4
# --------
7
#
8
# Find PHP4
9
#
10 11 12 13 14 15 16 17
# 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
18

19
set(PHP4_POSSIBLE_INCLUDE_PATHS
20 21 22 23 24 25 26
  /usr/include/php4
  /usr/local/include/php4
  /usr/include/php
  /usr/local/include/php
  /usr/local/apache/php
  )

27
set(PHP4_POSSIBLE_LIB_PATHS
28 29 30
  /usr/lib
  )

31
find_path(PHP4_FOUND_INCLUDE_PATH main/php.h
32 33
  ${PHP4_POSSIBLE_INCLUDE_PATHS})

34 35 36 37
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}")
38
  endforeach()
39
  set(PHP4_INCLUDE_PATH "${php4_paths}")
40
endif()
41

42
find_program(PHP4_EXECUTABLE NAMES php4 php )
43

44
mark_as_advanced(
45 46 47 48
  PHP4_EXECUTABLE
  PHP4_FOUND_INCLUDE_PATH
  )

49
if(APPLE)
50
# this is a hack for now
51 52
  string(APPEND CMAKE_SHARED_MODULE_CREATE_C_FLAGS
   " -Wl,-flat_namespace")
53
  foreach(symbol
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
    __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
    )
75 76
    string(APPEND CMAKE_SHARED_MODULE_CREATE_C_FLAGS
      ",-U,${symbol}")
77 78
  endforeach()
endif()
79

80
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)
81
FIND_PACKAGE_HANDLE_STANDARD_ARGS(PHP4 DEFAULT_MSG PHP4_EXECUTABLE PHP4_INCLUDE_PATH)