Deshim VirtualExecutor in folly
[hiphop-php.git] / hphp / util / CMakeLists.txt
blob08497555234fd6992ccfe919bd9090f59eb8ea44
1 set(CXX_SOURCES)
2 auto_sources(files "*.cpp" "RECURSE" "${CMAKE_CURRENT_SOURCE_DIR}")
3 list(APPEND CXX_SOURCES ${files})
5 set(ASM_SOURCES)
6 auto_sources(files "*.S" "RECURSE" "${CMAKE_CURRENT_SOURCE_DIR}")
7 list(APPEND ASM_SOURCES ${files})
9 set(HEADER_SOURCES)
10 auto_sources(files "*.h" "RECURSE" "${CMAKE_CURRENT_SOURCE_DIR}")
11 list(APPEND HEADER_SOURCES ${files})
13 # Disable Channeled JSON until we're sure it's going to stick
14 # sgolemon(2014-02-19)
15 HHVM_REMOVE_MATCHES_FROM_LISTS(ASM_SOURCES CXX_SOURCES HEADER_SOURCES
16   MATCHES "/test/" "channeled-json-")
18 if (NOT MSVC)
19   list(REMOVE_ITEM CXX_SOURCES
20     ${CMAKE_CURRENT_SOURCE_DIR}/portability/fnmatch.cpp
21     ${CMAKE_CURRENT_SOURCE_DIR}/portability/glob.cpp
22     ${CMAKE_CURRENT_SOURCE_DIR}/portability/rand_r.cpp
23     ${CMAKE_CURRENT_SOURCE_DIR}/portability/strfmon.cpp
24   )
25   list(REMOVE_ITEM HEADER_SOURCES
26     ${CMAKE_CURRENT_SOURCE_DIR}/portability/fnmatch.h
27     ${CMAKE_CURRENT_SOURCE_DIR}/portability/glob.h
28     ${CMAKE_CURRENT_SOURCE_DIR}/portability/rand_r.h
29     ${CMAKE_CURRENT_SOURCE_DIR}/portability/strfmon.h
30   )
31 endif()
33 add_custom_command(
34   OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/low-ptr-def.h
35   COMMAND INSTALL_DIR=${CMAKE_CURRENT_BINARY_DIR} bash ${CMAKE_CURRENT_SOURCE_DIR}/../tools/generate-low-ptr.sh ignored
36   DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/../tools/generate-low-ptr.sh
39 list(APPEND HEADER_SOURCES ${CMAKE_CURRENT_BINARY_DIR}/low-ptr-def.h)
41 HHVM_PUBLIC_HEADERS(util ${HEADER_SOURCES})
43 find_package(LibNuma)
44 if (LIBNUMA_INCLUDE_DIRS)
45   add_definitions("-DHAVE_NUMA=1")
46   include_directories(${LIBNUMA_INCLUDE_DIRS})
47 endif()
49 if(MSVC)
50   list(REMOVE_ITEM CXX_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/afdt-util.cpp")
51   list(REMOVE_ITEM HEADER_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/afdt-util.h")
52   list(REMOVE_ITEM CXX_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/light-process.cpp")
53   list(REMOVE_ITEM HEADER_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/light-process.h")
54 endif()
56 add_library(hphp_util STATIC ${CXX_SOURCES} ${ASM_SOURCES} ${HEADER_SOURCES})
57 auto_source_group("hphp_util" "${CMAKE_CURRENT_SOURCE_DIR}"
58   ${ASM_SOURCES} ${CXX_SOURCES} ${HEADER_SOURCES})
59 if (ENABLE_COTIRE)
60   cotire(hphp_util)
61 endif()
63 target_link_libraries(hphp_util brotli folly zstd)
64 if (LIBNUMA_LIBRARIES)
65   target_link_libraries(hphp_util ${LIBNUMA_LIBRARIES})
66 endif()