Add support for HHBC ops with 5 immediates
[hiphop-php.git] / hphp / runtime / CMakeLists.txt
blob739395d93b00aff6adb1eb7d5c6d71c5d4f5293a
1 include(HHVMExtensionConfig)
3 set(RECURSIVE_SOURCE_SUBDIRS base debugger eval server vm)
4 foreach (dir ${RECURSIVE_SOURCE_SUBDIRS})
5   HHVM_SELECT_SOURCES("${CMAKE_CURRENT_SOURCE_DIR}/${dir}")
6 endforeach(dir ${RECURSIVE_SOURCE_SUBDIRS})
7 list(APPEND HEADER_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/version.h")
9 if(NOT LINUX)
10   list(REMOVE_ITEM CXX_SOURCES
11        ${CMAKE_CURRENT_SOURCE_DIR}/vm/debug/elfwriter.cpp)
12   list(REMOVE_ITEM HEADER_SOURCES
13        ${CMAKE_CURRENT_SOURCE_DIR}/vm/debug/elfwriter.h)
14 endif()
16 if(NOT ENABLE_FASTCGI)
17   HHVM_REMOVE_MATCHES_FROM_LISTS(CXX_SOURCES HEADER_SOURCES
18     MATCHES "/fastcgi/")
19 endif()
21 if(NOT ENABLE_PROXYGEN_SERVER)
22   HHVM_REMOVE_MATCHES_FROM_LISTS(CXX_SOURCES HEADER_SOURCES
23     MATCHES "/proxygen/")
24 endif()
26 if(NOT HAVE_CUSTOM_LIBEVENT)
27   HHVM_REMOVE_MATCHES_FROM_LISTS(CXX_SOURCES HEADER_SOURCES
28     MATCHES "/server/libevent-")
29 endif()
31 add_custom_command(
32   OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/ir-opcode-generated.h"
33   COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/../doc/generate-ir-opcodes.sh"
34   DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/../doc/ir.specification"
35           "${CMAKE_CURRENT_SOURCE_DIR}/../doc/generate-ir-opcodes.pl"
36           "${CMAKE_CURRENT_SOURCE_DIR}/../doc/generate-ir-opcodes.sh"
37   WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
38   COMMENT "Generating HHIR opcode table"
39   VERBATIM)
41 add_precompiled_header(
42   "${HPHP_HOME}/hphp/pch/hphp_runtime_static.h"
43   "${HPHP_HOME}/hphp/pch/hphp_runtime_static.cpp"
44   CXX_SOURCES
47 add_object_library(hphp_runtime_static
48             ${CXX_SOURCES} ${C_SOURCES} ${ASM_SOURCES} ${HEADER_SOURCES}
49             "ir-opcode-generated.h")
50 auto_source_group("hphp_runtime_static" "${CMAKE_CURRENT_SOURCE_DIR}"
51   ${ASM_SOURCES} ${C_SOURCES} ${CXX_SOURCES} ${HEADER_SOURCES})
52 SET_TARGET_PROPERTIES(hphp_runtime_static PROPERTIES OUTPUT_NAME "hphp_runtime")
53 SET_TARGET_PROPERTIES(hphp_runtime_static PROPERTIES PREFIX "lib")
54 SET_TARGET_PROPERTIES(hphp_runtime_static PROPERTIES CLEAN_DIRECT_OUTPUT 1)
55 object_library_hphp_link(hphp_runtime_static)
56 object_library_ld_link_libraries(hphp_runtime_static hphp_util hphp_proxygen vixl ppc64-asm hphp_zend hphp_system jit_sort)
57 HHVM_CONFIGURE_TARGET_FOR_EXTENSION_DEPENDENCIES(hphp_runtime_static)
59 SET(CMAKE_CXX_ARCHIVE_APPEND "<CMAKE_AR> q <TARGET> <LINK_FLAGS> <OBJECTS>")
61 HHVM_PUBLIC_HEADERS(runtime ${HEADER_SOURCES})
63 if (ENABLE_COTIRE)
64   cotire(hphp_runtime_static)
65 endif()