]>
Commit | Line | Data |
---|---|---|
f67539c2 TL |
1 | function(build_thrift) |
2 | set(thrift_SOURCE_DIR "${CMAKE_SOURCE_DIR}/src/jaegertracing/thrift") | |
3 | set(thrift_BINARY_DIR "${CMAKE_BINARY_DIR}/external/thrift") | |
4 | ||
5 | set(thrift_CMAKE_ARGS -DCMAKE_BUILD_TYPE=Release | |
6 | -DCMAKE_POSITION_INDEPENDENT_CODE=ON | |
7 | -DBUILD_JAVA=OFF | |
8 | -DBUILD_PYTHON=OFF | |
9 | -DBUILD_TESTING=OFF | |
10 | -DBUILD_TUTORIALS=OFF | |
11 | -DBUILD_C_GLIB=OFF | |
12 | -DBUILD_HASKELL=OFF | |
13 | -DWITH_LIBEVENT=OFF | |
14 | -DWITH_ZLIB=OFF | |
15 | -DBoost_INCLUDE_DIRS=${CMAKE_BINARY_DIR}/boost/include | |
16 | -DCMAKE_INSTALL_PREFIX="${CMAKE_BINARY_DIR}/boost;${CMAKE_BINARY_DIR}/boost/include;${CMAKE_BINARY_DIR}/external" | |
17 | -DCMAKE_FIND_ROOT_PATH="${CMAKE_BINARY_DIR}/boost;${CMAKE_BINARY_DIR}/boost/include;${CMAKE_BINARY_DIR}/external" | |
18 | -DCMAKE_INSTALL_RPATH=${CMAKE_BINARY_DIR}/external/lib | |
19 | -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE | |
20 | -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/external | |
21 | -DCMAKE_INSTALL_LIBDIR=${CMAKE_BINARY_DIR}/external/lib) | |
22 | ||
23 | if(WITH_SYSTEM_BOOST) | |
24 | message(STATUS "thrift will be using system boost") | |
25 | set(dependencies "") | |
26 | list(APPEND thrift_CMAKE_ARGS -DBOOST_ROOT=/opt/ceph) | |
27 | list(APPEND thrift_CMAKE_ARGS -DCMAKE_FIND_ROOT_PATH=/opt/ceph) | |
28 | else() | |
29 | message(STATUS "thrift will be using external build boost") | |
30 | set(dependencies Boost) | |
31 | list(APPEND thrift_CMAKE_ARGS -DCMAKE_FIND_ROOT_PATH=${CMAKE_BINARY_DIR}/boost) | |
32 | list(APPEND thrift_CMAKE_ARGS -DCMAKE_PREFIX_PATH=${CMAKE_BINARY_DIR}/external) | |
33 | endif() | |
34 | ||
35 | if(CMAKE_MAKE_PROGRAM MATCHES "make") | |
36 | # try to inherit command line arguments passed by parent "make" job | |
37 | set(make_cmd $(MAKE)) | |
38 | else() | |
39 | set(make_cmd ${CMAKE_COMMAND} --build <BINARY_DIR> --target thrift) | |
40 | endif() | |
41 | ||
42 | set(install_cmd $(MAKE) install DESTDIR=) | |
43 | ||
44 | include(ExternalProject) | |
45 | ExternalProject_Add(thrift | |
46 | SOURCE_DIR ${thrift_SOURCE_DIR} | |
47 | PREFIX "${CMAKE_BINARY_DIR}/external/thrift" | |
48 | CMAKE_ARGS ${thrift_CMAKE_ARGS} | |
49 | BINARY_DIR ${thrift_BINARY_DIR} | |
50 | BUILD_COMMAND ${make_cmd} | |
51 | INSTALL_COMMAND ${install_cmd} | |
52 | DEPENDS ${dependencies} | |
53 | ) | |
54 | endfunction() |