1 auto_sources(IDL_SRCS "*.idl.json" "RECURSE" "${HPHP_HOME}/hphp/system/idl")
2 ZEND_COMPAT_STRIP_IDLS(IDL_SRCS ${ZEND_COMPAT_EXCLUDE_IDLS})
4 add_custom_command(OUTPUT "class_map.cpp" "constants.h"
5 DEPENDS ${IDL_SRCS} gen-class-map
6 COMMAND "${HPHP_HOME}/hphp/tools/bootstrap/gen-class-map"
8 "${CMAKE_CURRENT_SOURCE_DIR}/class_map.cpp"
9 "${CMAKE_CURRENT_SOURCE_DIR}/constants.h"
11 COMMENT "Generating class_map.cpp and constants.h")
13 set(CXX_SOURCES "class_map.cpp" "systemlib.cpp")
15 add_library(hphp_system STATIC ${CXX_SOURCES})
17 # Needed to force system/constants.h to generate prior to files which need it
18 add_dependencies(hphp_runtime_static hphp_system)
19 add_dependencies(hphp_analysis hphp_system)
21 FILE(STRINGS "php.txt" SYSTEMLIB_CLASSES)
23 set(SYSTEMLIB_SRCS_STR)
24 foreach(cls ${SYSTEMLIB_CLASSES})
25 STRING(REGEX REPLACE "[ \t]*#.*" "" cls "${cls}")
26 if (NOT "${cls}" STREQUAL "")
27 list(APPEND SYSTEMLIB_SRCS "../../${cls}")
28 set(SYSTEMLIB_SRCS_STR "${SYSTEMLIB_SRCS_STR} ${cls}")
32 add_custom_target(systemlib
33 DEPENDS "php.txt" ${SYSTEMLIB_SRCS}
34 COMMAND "INSTALL_DIR=${CMAKE_CURRENT_SOURCE_DIR}"
35 "FBCODE_DIR=${HPHP_HOME}"
36 "${HPHP_HOME}/hphp/runtime/ext_hhvm/make_systemlib.sh"
37 "--install_dir=${CMAKE_CURRENT_SOURCE_DIR}" "--fbcode_dir=${HPHP_HOME}"
38 "${SYSTEMLIB_SRCS_STR}"
39 COMMENT "Generating systemlib.php")