|
1 | 1 | if (NOT FOLLY_INSTALL_DIR)
|
2 |
| - set(FOLLY_INSTALL_DIR $ENV{HOME}/folly) |
| 2 | + set(FOLLY_INSTALL_DIR ${CMAKE_BINARY_DIR}/folly-install) |
3 | 3 | endif ()
|
4 | 4 |
|
5 |
| -# Check if the correct version of folly is already installed. |
6 |
| -set(FOLLY_VERSION v2018.06.25.00) |
7 |
| -set(FOLLY_VERSION_FILE ${FOLLY_INSTALL_DIR}/${FOLLY_VERSION}) |
8 | 5 | if (RSOCKET_INSTALL_DEPS)
|
9 |
| - if (NOT EXISTS ${FOLLY_VERSION_FILE}) |
10 |
| - # Remove the old version of folly. |
11 |
| - file(REMOVE_RECURSE ${FOLLY_INSTALL_DIR}) |
12 |
| - set(INSTALL_FOLLY True) |
13 |
| - endif () |
14 |
| -endif () |
15 |
| - |
16 |
| -if (INSTALL_FOLLY) |
17 |
| - # Build and install folly. |
18 |
| - ExternalProject_Add( |
19 |
| - folly-ext |
20 |
| - GIT_REPOSITORY https://github.com/facebook/folly |
21 |
| - GIT_TAG ${FOLLY_VERSION} |
22 |
| - BINARY_DIR folly-ext-prefix/src/folly-ext/folly |
23 |
| - CONFIGURE_COMMAND autoreconf -ivf |
24 |
| - COMMAND ./configure CXX=${CMAKE_CXX_COMPILER} |
25 |
| - --prefix=${FOLLY_INSTALL_DIR} |
26 |
| - BUILD_COMMAND make -j4 |
27 |
| - INSTALL_COMMAND make install |
28 |
| - COMMAND cmake -E touch ${FOLLY_VERSION_FILE}) |
29 |
| - |
30 |
| - set(FOLLY_INCLUDE_DIR ${FOLLY_INSTALL_DIR}/include) |
31 |
| - set(lib ${CMAKE_SHARED_LIBRARY_PREFIX}folly${CMAKE_SHARED_LIBRARY_SUFFIX}) |
32 |
| - set(benchlib ${CMAKE_SHARED_LIBRARY_PREFIX}follybenchmark${CMAKE_SHARED_LIBRARY_SUFFIX}) |
33 |
| - set(FOLLY_LIBRARY ${FOLLY_INSTALL_DIR}/lib/${lib}) |
34 |
| - set(FOLLY_BENCHMARK_LIBRARY ${FOLLY_INSTALL_DIR}/lib/${benchlib}) |
35 |
| - |
36 |
| - # CMake requires directories listed in INTERFACE_INCLUDE_DIRECTORIES to exist. |
37 |
| - file(MAKE_DIRECTORY ${FOLLY_INCLUDE_DIR}) |
38 |
| -else () |
39 |
| - # Use installed folly. |
40 |
| - find_package(Folly REQUIRED) |
| 6 | + execute_process( |
| 7 | + COMMAND |
| 8 | + ${CMAKE_SOURCE_DIR}/scripts/build_folly.sh |
| 9 | + ${CMAKE_BINARY_DIR}/folly-src |
| 10 | + ${FOLLY_INSTALL_DIR} |
| 11 | + RESULT_VARIABLE folly_result |
| 12 | + ) |
| 13 | + if (NOT "${folly_result}" STREQUAL "0") |
| 14 | + message(FATAL_ERROR "failed to build folly") |
| 15 | + endif() |
41 | 16 | endif ()
|
42 | 17 |
|
43 | 18 | find_package(Threads)
|
44 |
| -find_library(EVENT_LIBRARY event) |
45 |
| - |
46 |
| -add_library(folly SHARED IMPORTED) |
47 |
| -set_property(TARGET folly PROPERTY IMPORTED_LOCATION ${FOLLY_LIBRARY}) |
48 |
| -set_property(TARGET folly |
49 |
| - APPEND PROPERTY INTERFACE_LINK_LIBRARIES |
50 |
| - ${EXTRA_LINK_FLAGS} ${EVENT_LIBRARY} ${CMAKE_THREAD_LIBS_INIT}) |
51 |
| -if (TARGET folly-ext) |
52 |
| - add_dependencies(folly folly-ext) |
53 |
| -endif () |
54 |
| - |
55 |
| -add_library(folly-benchmark SHARED IMPORTED) |
56 |
| -set_property(TARGET folly-benchmark PROPERTY IMPORTED_LOCATION ${FOLLY_BENCHMARK_LIBRARY}) |
57 |
| -set_property(TARGET folly-benchmark |
58 |
| - APPEND PROPERTY INTERFACE_LINK_LIBRARIES |
59 |
| - ${EXTRA_LINK_FLAGS} ${EVENT_LIBRARY} ${CMAKE_THREAD_LIBS_INIT}) |
60 |
| -if (TARGET folly-ext) |
61 |
| - add_dependencies(folly-benchmark folly-ext) |
62 |
| -endif () |
63 |
| - |
64 |
| -# Folly includes are marked as system to prevent errors on non-standard |
65 |
| -# extensions when compiling with -pedantic and -Werror. |
66 |
| -set_property(TARGET folly |
67 |
| - APPEND PROPERTY INTERFACE_SYSTEM_INCLUDE_DIRECTORIES ${FOLLY_INCLUDE_DIR}) |
68 |
| -set_property(TARGET folly |
69 |
| - APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${FOLLY_INCLUDE_DIR}) |
70 |
| -set_property(TARGET folly-benchmark |
71 |
| - APPEND PROPERTY INTERFACE_SYSTEM_INCLUDE_DIRECTORIES ${FOLLY_INCLUDE_DIR}) |
72 |
| -set_property(TARGET folly-benchmark |
73 |
| - APPEND PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${FOLLY_INCLUDE_DIR}) |
| 19 | +find_package(folly CONFIG REQUIRED PATHS ${FOLLY_INSTALL_DIR}) |
0 commit comments