1 cmake_minimum_required(VERSION 3.11 FATAL_ERROR)
8 set(CMAKE_CXX_STANDARD 11)
9 set(CMAKE_CXX_EXTENSIONS OFF)
10 set(CMAKE_CXX_STANDARD_REQUIRED ON)
11 set(CMAKE_CXX_FLAGS "-O2")
15 CACHE STRING "Build type" FORCE)
17 include(GNUInstallDirs)
19 set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY
20 ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
21 set(CMAKE_LIBRARY_OUTPUT_DIRECTORY
22 ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
23 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY
24 ${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_BINDIR})
27 ${CMAKE_INSTALL_LIBDIR}
28 CACHE PATH "directory for libraries")
30 ${CMAKE_INSTALL_BINDIR}
31 CACHE PATH "directory for executables")
32 set(INSTALL_INCLUDEDIR
33 ${CMAKE_INSTALL_INCLUDEDIR}
34 CACHE PATH "directory for header files")
36 set(DEF_INSTALL_CMAKEDIR share/cmake/${PROJECT_NAME})
38 ${DEF_INSTALL_CMAKEDIR}
39 CACHE PATH "directory for CMake files")
41 set_property(DIRECTORY PROPERTY EP_BASE ${CMAKE_BINARY_DIR}/subs)
43 set(STAGED_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/stage)
44 message(STATUS "${PROJECT_NAME} staged install: ${STAGED_INSTALL_PREFIX}")
46 find_package(OpenSSL REQUIRED)
47 message("OpenSSL include dir: ${OPENSSL_INCLUDE_DIR}")
48 message("OpenSSL libraries: ${OPENSSL_LIBRARIES}")
52 CACHE STRING "thrift version")
54 include(ExternalProject)
57 URL https://github.com/apache/thrift/archive/refs/tags/v${THRIFT_VERSION}.tar.gz
59 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${STAGED_INSTALL_PREFIX}
60 -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
61 -DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
62 -DCMAKE_POSITION_INDEPENDENT_CODE=TRUE
68 -DBUILD_JAVASCRIPT=OFF
74 -DWITH_BOOSTTHREADS=OFF
75 -DWITH_BOOST_FUNCTIONAL=OFF
76 -DWITH_BOOST_SMART_PTR=OFF
77 CMAKE_CACHE_ARGS -DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS}
79 DOWNLOAD_NO_PROGRESS 1
85 DIRECTORY ${STAGED_INSTALL_PREFIX}/
87 USE_SOURCE_PERMISSIONS)