]> git.proxmox.com Git - ceph.git/blame - ceph/cmake/modules/Buildthrift.cmake
buildsys: switch source download to quincy
[ceph.git] / ceph / cmake / modules / Buildthrift.cmake
CommitLineData
f67539c2
TL
1function(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 )
54endfunction()