# - Find PHP5 # This module finds if PHP5 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: # # PHP5_INCLUDE_PATH = path to where php.h can be found # PHP5_EXECUTABLE = full path to the php4 binary # # file is derived from FindPHP4.cmake #

SET(PHP5_FOUND “NO”)

SET(PHP5_POSSIBLE_INCLUDE_PATHS

/usr/include/php5
/usr/local/include/php5
/usr/include/php
/usr/local/include/php
/usr/local/apache/php
)

SET(PHP5_POSSIBLE_LIB_PATHS

/usr/lib
)

#FIND_PATH(PHP5_FOUND_INCLUDE_PATH main/php.h # ${PHP5_POSSIBLE_INCLUDE_PATHS}) # #IF(PHP5_FOUND_INCLUDE_PATH) # SET(php5_paths “${PHP5_POSSIBLE_INCLUDE_PATHS}”) # FOREACH(php5_path Zend main TSRM) # SET(php5_paths ${php5_paths} “${PHP5_FOUND_INCLUDE_PATH}/${php5_path}”) # ENDFOREACH(php5_path Zend main TSRM) # SET(PHP5_INCLUDE_PATH “${php5_paths}” INTERNAL “PHP5 include paths”) #ENDIF(PHP5_FOUND_INCLUDE_PATH)

FIND_PROGRAM(PHP5_EXECUTABLE

NAMES php5 php
PATHS
/usr/local/bin
)

MARK_AS_ADVANCED(

PHP5_EXECUTABLE
PHP5_FOUND_INCLUDE_PATH
)

IF(APPLE) # this is a hack for now # SET(CMAKE_SHARED_MODULE_CREATE_C_FLAGS # “${CMAKE_SHARED_MODULE_CREATE_C_FLAGS} -Wl,-flat_namespace”)

 SET(CMAKE_SHARED_MODULE_CREATE_C_FLAGS 
  "-Wl,-flat_namespace")
 FOREACH(symbol
   __efree
   __emalloc
   __estrdup
   __object_init_ex
   __zend_get_parameters_array_ex
   __zend_get_parameters_array
   __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
   _zend_register_list_destructors_ex
   _zend_hash_exists
__zend_hash_init_ex
_php_info_print_table_header
_zend_hash_destroy
__ecalloc
_zend_parse_parameters
_php_sprintf
_php_info_print_table_start
_zend_hash_apply_with_arguments
__estrndup
_zend_fetch_class
_zend_register_internal_class
_zend_objects_get_address
_zend_get_std_object_handlers
_zend_read_property
_zend_register_ini_entries
__erealloc
_zend_hash_internal_pointer_reset_ex
_convert_to_null
__convert_to_string
_php_info_print_table_end
_executor_globals
__safe_emalloc
_zend_str_tolower_copy
__zval_copy_ctor_func
_zend_hash_get_current_key_ex
_zend_hash_num_elements
_display_ini_entries
_zend_ini_string
_zval_update_constant
_zend_do_inheritance
__zval_ptr_dtor
_zend_opcode_handlers
_zval_add_ref
_zend_hash_get_current_data_ex
_zend_get_class_entry
_zend_hash_move_forward_ex
_zend_hash_get_current_key_type_ex
_call_user_function

_zend_object_store_get_object_by_handle _add_next_index_string __array_init __zend_hash_init __zval_ptr_dtor_wrapper __zval_dtor_func

  )
  SET(CMAKE_SHARED_MODULE_CREATE_C_FLAGS 
    "${CMAKE_SHARED_MODULE_CREATE_C_FLAGS},-U,${symbol}")
ENDFOREACH(symbol)

ENDIF(APPLE)

IF( NOT PHP5_CONFIG_EXECUTABLE ) FIND_PROGRAM(PHP5_CONFIG_EXECUTABLE

NAMES php5-config php-config
)

ENDIF( NOT PHP5_CONFIG_EXECUTABLE )

IF(PHP5_CONFIG_EXECUTABLE)

EXECUTE_PROCESS(COMMAND ${PHP5_CONFIG_EXECUTABLE} --version
  OUTPUT_VARIABLE PHP5_VERSION)
STRING(REPLACE "\n" "" PHP5_VERSION "${PHP5_VERSION}")

EXECUTE_PROCESS(COMMAND ${PHP5_CONFIG_EXECUTABLE} --extension-dir
  OUTPUT_VARIABLE PHP5_EXTENSION_DIR)
STRING(REPLACE "\n" "" PHP5_EXTENSION_DIR "${PHP5_EXTENSION_DIR}")

EXECUTE_PROCESS(COMMAND ${PHP5_CONFIG_EXECUTABLE} --includes
  OUTPUT_VARIABLE PHP5_INCLUDES)
STRING(REPLACE "-I" "" PHP5_INCLUDES "${PHP5_INCLUDES}")
STRING(REPLACE " " ";" PHP5_INCLUDES "${PHP5_INCLUDES}")
STRING(REPLACE "\n" "" PHP5_INCLUDES "${PHP5_INCLUDES}")
LIST(GET PHP5_INCLUDES 0 PHP5_INCLUDE_DIR)

set(PHP5_MAIN_INCLUDE_DIR ${PHP5_INCLUDE_DIR}/main)
set(PHP5_TSRM_INCLUDE_DIR ${PHP5_INCLUDE_DIR}/TSRM)
set(PHP5_ZEND_INCLUDE_DIR ${PHP5_INCLUDE_DIR}/Zend)
set(PHP5_REGEX_INCLUDE_DIR ${PHP5_INCLUDE_DIR}/regex)
set(PHP5_EXT_INCLUDE_DIR ${PHP5_INCLUDE_DIR}/ext)
set(PHP5_DATE_INCLUDE_DIR ${PHP5_INCLUDE_DIR}/ext/date/lib)
set(PHP5_STANDARD_INCLUDE_DIR ${PHP5_INCLUDE_DIR}/ext/standard)

MESSAGE(STATUS ${PHP5_MAIN_INCLUDE_DIR})

IF(PHP5_VERSION LESS 5)
  MESSAGE(FATAL_ERROR "PHP version is not 5 or later")
ENDIF(PHP5_VERSION LESS 5)

IF(PHP5_EXECUTABLE AND PHP5_INCLUDES)
  set(PHP5_FOUND "yes")
  MESSAGE(STATUS "Found PHP5-Version ${PHP5_VERSION} (using ${PHP5_CONFIG_EXECUTABLE})")
ENDIF(PHP5_EXECUTABLE AND PHP5_INCLUDES)

FIND_PROGRAM(PHPUNIT_EXECUTABLE
  NAMES phpunit phpunit2
  PATHS
  /usr/local/bin
)

IF(PHPUNIT_EXECUTABLE)
  MESSAGE(STATUS "Found phpunit: ${PHPUNIT_EXECUTABLE}")
ENDIF(PHPUNIT_EXECUTABLE)

ENDIF(PHP5_CONFIG_EXECUTABLE)