include <sys/time.h>
[hiphop-php.git] / hphp / system / CMakeLists.txt
blob9e4cd5dbd68cbe4120334c56a386d8467f869f53
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"
7                    ARGS "--system"
8                         "${CMAKE_CURRENT_SOURCE_DIR}/class_map.cpp"
9                         "${CMAKE_CURRENT_SOURCE_DIR}/constants.h"
10                         ${IDL_SRCS}
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)
22 set(SYSTEMLIB_SRCS)
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}")
29         endif()
30 endforeach()
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")