Created
February 22, 2016 14:13
-
-
Save m0ppers/8ef4480041394a410969 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
cmake_minimum_required (VERSION 3.2) | |
include(FindPackageHandleStandardArgs) | |
include("cmake/HunterGate.cmake") | |
include(ExternalProject) | |
HunterGate( | |
URL "https://github.com/ruslo/hunter/archive/v0.12.45.tar.gz" | |
SHA1 "a1d363c7ffb324eb55a410715868ada32e595622" | |
) | |
project (arangodb-mesos-framework CXX) | |
set(CMAKE_LINKER "clang++") | |
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin) | |
SET(CMAKE_FIND_LIBRARY_SUFFIXES ".a") | |
SET(BUILD_SHARED_LIBRARIES OFF) | |
SET(CMAKE_EXE_LINKER_FLAGS "-static -static-libgcc -static-libstdc++") | |
add_executable( | |
arangodb-mesos-framework | |
src/framework.cpp | |
) | |
add_library( | |
arangodb-mesos STATIC | |
src/ArangoManager.cpp | |
src/ArangoScheduler.cpp | |
src/ArangoState.cpp | |
src/Caretaker.cpp | |
src/CaretakerStandalone.cpp | |
src/CaretakerCluster.cpp | |
src/Global.cpp | |
src/HttpServer.cpp | |
src/arangodb.pb.cc | |
src/utils.cpp | |
3rdParty/pbjson/src/pbjson.cpp | |
) | |
target_compile_features(arangodb-mesos-framework PRIVATE cxx_constexpr) | |
target_compile_features(arangodb-mesos PRIVATE cxx_constexpr) | |
if(NOT MESOS_SOURCE_PATH) | |
set(MESOS_SOURCE_PATH ${CMAKE_CURRENT_BINARY_DIR}/mesos) | |
endif() | |
find_path(MESOS_FOUND_SOURCE_PATH | |
NAMES build/3rdparty/libprocess/3rdparty/stout/include/Makefile | |
PATHS ${MESOS_SOURCE_PATH} | |
NO_CMAKE_SYSTEM_PATH | |
) | |
if(NOT MESOS_FOUND_SOURCE_PATH) | |
message(FATAL_ERROR "Please provide -DMESOS_SOURCE_PATH or link the mesos source directory to ${CMAKE_BINARY_DIR}/mesos") | |
endif () | |
set(MESOS_LIBRARIES | |
${MESOS_FOUND_SOURCE_PATH}/build/src/.libs/libmesos_no_3rdparty.a | |
${MESOS_FOUND_SOURCE_PATH}/build/3rdparty/libprocess/.libs/libprocess.a | |
${MESOS_FOUND_SOURCE_PATH}/build/3rdparty/libprocess/3rdparty/glog-0.3.3/.libs/libglog.a | |
${MESOS_FOUND_SOURCE_PATH}/build/3rdparty/libprocess/3rdparty/protobuf-2.5.0/src/.libs/libprotobuf.a | |
${MESOS_FOUND_SOURCE_PATH}/build/3rdparty/zookeeper-3.4.5/src/c/.libs/libzookeeper_st.a | |
${MESOS_FOUND_SOURCE_PATH}/build/3rdparty/leveldb/libleveldb.a | |
${MESOS_FOUND_SOURCE_PATH}/build/3rdparty/libprocess/3rdparty/libev-4.15/.libs/libev.a | |
) | |
set(THREADS_PREFER_PTHREAD_FLAG ON) | |
find_package (Threads REQUIRED) | |
#hunter_add_package(CURL) | |
#find_package(CURL REQUIRED) | |
hunter_add_package(libmicrohttpd) | |
find_package(libmicrohttpd REQUIRED) | |
hunter_add_package(ZLIB) | |
find_package(ZLIB REQUIRED) | |
hunter_add_package(GnuTLS) | |
find_package(GnuTLS REQUIRED) | |
hunter_add_package(libgpgerror) | |
find_package(libgpgerror REQUIRED) | |
hunter_add_package(nettle) | |
find_package(nettle REQUIRED) | |
hunter_add_package(apr) | |
find_package(apr REQUIRED) | |
hunter_add_package(svn) | |
find_package(svn REQUIRED) | |
#find_path(MHD_INCLUDE_DIR | |
# libmicrohttpd/platform.h | |
#) | |
#find_library(MHD_LIBRARY | |
# microhttpd | |
#) | |
#find_package_handle_standard_args(Microhttpd DEFAULT_MSG | |
# MHD_LIBRARY MHD_INCLUDE_DIR) | |
#if ( NOT Microhttpd_FOUND) | |
# message(FATAL_ERROR "libmicrohttpd not found!") | |
#endif() | |
include_directories( | |
${CMAKE_CURRENT_SOURCE_DIR}/3rdParty/pbjson/src | |
${MESOS_FOUND_SOURCE_PATH}/3rdparty/libprocess/include | |
${MESOS_FOUND_SOURCE_PATH}/3rdparty/libprocess/3rdparty/stout/include | |
${MESOS_FOUND_SOURCE_PATH}/include | |
${MESOS_FOUND_SOURCE_PATH}/src | |
${MESOS_FOUND_SOURCE_PATH}/build/3rdparty/libprocess/3rdparty/stout/include | |
${MESOS_FOUND_SOURCE_PATH}/build/3rdparty/libprocess/include | |
${MESOS_FOUND_SOURCE_PATH}/build/3rdparty/zookeeper-3.4.5/src/c/include | |
${MESOS_FOUND_SOURCE_PATH}/build/3rdparty/zookeeper-3.4.5/src/c/generated | |
${MESOS_FOUND_SOURCE_PATH}/build/3rdparty/libprocess/3rdparty/protobuf-2.5.0/src | |
${MESOS_FOUND_SOURCE_PATH}/build/src | |
${MESOS_FOUND_SOURCE_PATH}/build/include | |
${MESOS_FOUND_SOURCE_PATH}/build/3rdparty/libprocess/3rdparty/picojson-1.3.0/ | |
${libmicrohttpd_INCLUDE_DIR} | |
${CURL_INCLUDE_DIR} | |
) | |
target_link_libraries( | |
arangodb-mesos-framework | |
arangodb-mesos | |
) | |
target_link_libraries( | |
arangodb-mesos | |
${MESOS_LIBRARIES} | |
${ZLIB_LIBRARIES} | |
${CURL_LIBRARIES} | |
${svn_LIBRARIES} | |
${apr_LIBRARIES} | |
${libmicrohttpd_LIBRARY} | |
${GNUTLS_LIBRARIES} | |
${libgcrypt_LIBRARIES} | |
${libgpgerror_LIBRARIES} | |
${nettle_LIBRARY} | |
${hogweed_LIBRARY} | |
${OPENSSL_SSL_LIBRARY} | |
${OPENSSL_CRYPTO_LIBRARY} | |
${SASL2_LIBRARY} | |
${SASL2_ROOT}/lib/sasl2/libgssapiv2.a | |
Threads::Threads | |
) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment