mirror of
https://github.com/wassname/ray.git
synced 2026-07-24 13:20:22 +08:00
[cmake] enable using thirdparty env variable to find installed dependency (#2912)
* enable using thirdparty env variable to find installed dependency, to speed up the build process * fix target dependency in cmake. :-) too chaos in each CMakeLists * check env variable defined directory exists
This commit is contained in:
committed by
Philipp Moritz
parent
b29839a0a3
commit
9f9e49e4a1
@@ -92,7 +92,7 @@ endif()
|
||||
|
||||
ExternalProject_Add(arrow_ep
|
||||
PREFIX external/arrow
|
||||
DEPENDS flatbuffers_ep boost_ep
|
||||
DEPENDS flatbuffers boost
|
||||
GIT_REPOSITORY ${arrow_URL}
|
||||
GIT_TAG ${arrow_TAG}
|
||||
${ARROW_CONFIGURE}
|
||||
|
||||
@@ -7,32 +7,47 @@
|
||||
# - Boost_SYSTEM_LIBRARY
|
||||
# - Boost_FILESYSTEM_LIBRARY
|
||||
|
||||
set(Boost_INSTALL_PREFIX ${CMAKE_CURRENT_BINARY_DIR}/external/boost-install)
|
||||
# boost is a stable library in ray, and it supports to find
|
||||
# the boost pre-built in environment to speed up build process
|
||||
if (DEFINED ENV{BOOST_ROOT} AND EXISTS ENV{BOOST_ROOT})
|
||||
set(Boost_USE_STATIC_LIBS ON)
|
||||
set(BOOST_ROOT "$ENV{BOOST_ROOT}")
|
||||
message(STATUS "Find BOOST_ROOT: ${BOOST_ROOT}")
|
||||
# find_package(Boost COMPONENTS system filesystem REQUIRED)
|
||||
set(Boost_INCLUDE_DIR ${BOOST_ROOT}/include)
|
||||
set(Boost_LIBRARY_DIR ${BOOST_ROOT}/lib)
|
||||
set(Boost_SYSTEM_LIBRARY ${Boost_LIBRARY_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}boost_system${CMAKE_STATIC_LIBRARY_SUFFIX})
|
||||
set(Boost_FILESYSTEM_LIBRARY ${Boost_LIBRARY_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}boost_filesystem${CMAKE_STATIC_LIBRARY_SUFFIX})
|
||||
|
||||
set(Boost_INCLUDE_DIR ${Boost_INSTALL_PREFIX}/include)
|
||||
set(BOOST_ROOT ${Boost_INSTALL_PREFIX})
|
||||
set(Boost_LIBRARY_DIR ${Boost_INSTALL_PREFIX}/lib)
|
||||
set(Boost_SYSTEM_LIBRARY ${Boost_LIBRARY_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}boost_system${CMAKE_STATIC_LIBRARY_SUFFIX})
|
||||
set(Boost_FILESYSTEM_LIBRARY ${Boost_LIBRARY_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}boost_filesystem${CMAKE_STATIC_LIBRARY_SUFFIX})
|
||||
add_custom_target(boost_ep)
|
||||
else()
|
||||
set(Boost_INSTALL_PREFIX ${CMAKE_CURRENT_BINARY_DIR}/external/boost-install)
|
||||
|
||||
#set(boost_URL https://github.com/boostorg/boost.git)
|
||||
#set(boost_TAG boost-1.65.1)
|
||||
set(Boost_INCLUDE_DIR ${Boost_INSTALL_PREFIX}/include)
|
||||
set(BOOST_ROOT ${Boost_INSTALL_PREFIX})
|
||||
set(Boost_LIBRARY_DIR ${Boost_INSTALL_PREFIX}/lib)
|
||||
set(Boost_SYSTEM_LIBRARY ${Boost_LIBRARY_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}boost_system${CMAKE_STATIC_LIBRARY_SUFFIX})
|
||||
set(Boost_FILESYSTEM_LIBRARY ${Boost_LIBRARY_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}boost_filesystem${CMAKE_STATIC_LIBRARY_SUFFIX})
|
||||
|
||||
set(Boost_TAR_GZ_URL http://dl.bintray.com/boostorg/release/1.65.1/source/boost_1_65_1.tar.gz)
|
||||
set(Boost_BUILD_PRODUCTS ${Boost_SYSTEM_LIBRARY} ${Boost_FILESYSTEM_LIBRARY})
|
||||
set(Boost_URL_MD5 "ee64fd29a3fe42232c6ac3c419e523cf")
|
||||
#set(boost_URL https://github.com/boostorg/boost.git)
|
||||
#set(boost_TAG boost-1.65.1)
|
||||
|
||||
set(Boost_USE_STATIC_LIBS ON)
|
||||
set(Boost_TAR_GZ_URL http://dl.bintray.com/boostorg/release/1.65.1/source/boost_1_65_1.tar.gz)
|
||||
set(Boost_BUILD_PRODUCTS ${Boost_SYSTEM_LIBRARY} ${Boost_FILESYSTEM_LIBRARY})
|
||||
set(Boost_URL_MD5 "ee64fd29a3fe42232c6ac3c419e523cf")
|
||||
|
||||
ExternalProject_Add(boost_ep
|
||||
PREFIX external/boost
|
||||
URL ${Boost_TAR_GZ_URL}
|
||||
URL_MD5 ${Boost_URL_MD5}
|
||||
# GIT_REPOSITORY ${boost_URL}
|
||||
# GIT_TAG ${boost_TAG}
|
||||
# GIT_SUBMODULES ""
|
||||
BUILD_IN_SOURCE 1
|
||||
BUILD_BYPRODUCTS ${Boost_BUILD_PRODUCTS}
|
||||
CONFIGURE_COMMAND ./bootstrap.sh
|
||||
BUILD_COMMAND bash -c "./b2 cxxflags=-fPIC cflags=-fPIC variant=release link=static --with-filesystem --with-system --with-regex -j8 install --prefix=${Boost_INSTALL_PREFIX} > /dev/null"
|
||||
INSTALL_COMMAND "")
|
||||
set(Boost_USE_STATIC_LIBS ON)
|
||||
|
||||
ExternalProject_Add(boost_ep
|
||||
PREFIX external/boost
|
||||
URL ${Boost_TAR_GZ_URL}
|
||||
URL_MD5 ${Boost_URL_MD5}
|
||||
# GIT_REPOSITORY ${boost_URL}
|
||||
# GIT_TAG ${boost_TAG}
|
||||
# GIT_SUBMODULES ""
|
||||
BUILD_IN_SOURCE 1
|
||||
BUILD_BYPRODUCTS ${Boost_BUILD_PRODUCTS}
|
||||
CONFIGURE_COMMAND ./bootstrap.sh
|
||||
BUILD_COMMAND bash -c "./b2 cxxflags=-fPIC cflags=-fPIC variant=release link=static --with-filesystem --with-system --with-regex -j8 install --prefix=${Boost_INSTALL_PREFIX} > /dev/null"
|
||||
INSTALL_COMMAND "")
|
||||
endif ()
|
||||
|
||||
@@ -10,29 +10,39 @@
|
||||
# - FLATBUFFERS_COMPILER
|
||||
# - FBS_DEPENDS, to keep compatible
|
||||
|
||||
set(flatbuffers_VERSION "1.9.0")
|
||||
set(flatbuffers_URL "https://github.com/google/flatbuffers/archive/v${flatbuffers_VERSION}.tar.gz")
|
||||
set(flatbuffers_URL_MD5 "8be7513bf960034f6873326d09521a4b")
|
||||
|
||||
set(FLATBUFFERS_INSTALL_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/external/flatbuffers-install")
|
||||
set(FBS_DEPENDS flatbuffers_ep)
|
||||
|
||||
# The following is needed because in CentOS, the lib directory is named lib64
|
||||
if(EXISTS "/etc/redhat-release" AND CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||
set(LIB_SUFFIX 64)
|
||||
endif()
|
||||
|
||||
set(FLATBUFFERS_HOME "${FLATBUFFERS_INSTALL_PREFIX}")
|
||||
set(FLATBUFFERS_INCLUDE_DIR "${FLATBUFFERS_INSTALL_PREFIX}/include")
|
||||
set(FLATBUFFERS_STATIC_LIB "${FLATBUFFERS_INSTALL_PREFIX}/lib${LIB_SUFFIX}/libflatbuffers.a")
|
||||
set(FLATBUFFERS_COMPILER "${FLATBUFFERS_INSTALL_PREFIX}/bin/flatc")
|
||||
if(DEFINED ENV{FLATBUFFERS_HOME} AND EXISTS ENV{FLATBUFFERS_HOME})
|
||||
set(FLATBUFFERS_HOME "$ENV{FLATBUFFERS_HOME}")
|
||||
set(FLATBUFFERS_INCLUDE_DIR "${FLATBUFFERS_HOME}/include")
|
||||
set(FLATBUFFERS_STATIC_LIB "${FLATBUFFERS_HOME}/lib${LIB_SUFFIX}/libflatbuffers.a")
|
||||
set(FLATBUFFERS_COMPILER "${FLATBUFFERS_HOME}/bin/flatc")
|
||||
|
||||
ExternalProject_Add(flatbuffers_ep
|
||||
PREFIX external/flatbuffers
|
||||
URL ${flatbuffers_URL}
|
||||
URL_MD5 ${flatbuffers_URL_MD5}
|
||||
CMAKE_ARGS
|
||||
"-DCMAKE_CXX_FLAGS=-fPIC"
|
||||
"-DCMAKE_INSTALL_PREFIX:PATH=${FLATBUFFERS_INSTALL_PREFIX}"
|
||||
"-DFLATBUFFERS_BUILD_TESTS=OFF"
|
||||
"-DCMAKE_BUILD_TYPE=RELEASE")
|
||||
add_custom_target(flatbuffers_ep)
|
||||
else()
|
||||
set(flatbuffers_VERSION "1.9.0")
|
||||
set(flatbuffers_URL "https://github.com/google/flatbuffers/archive/v${flatbuffers_VERSION}.tar.gz")
|
||||
set(flatbuffers_URL_MD5 "8be7513bf960034f6873326d09521a4b")
|
||||
|
||||
set(FLATBUFFERS_INSTALL_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/external/flatbuffers-install")
|
||||
|
||||
set(FLATBUFFERS_HOME "${FLATBUFFERS_INSTALL_PREFIX}")
|
||||
set(FLATBUFFERS_INCLUDE_DIR "${FLATBUFFERS_INSTALL_PREFIX}/include")
|
||||
set(FLATBUFFERS_STATIC_LIB "${FLATBUFFERS_INSTALL_PREFIX}/lib${LIB_SUFFIX}/libflatbuffers.a")
|
||||
set(FLATBUFFERS_COMPILER "${FLATBUFFERS_INSTALL_PREFIX}/bin/flatc")
|
||||
|
||||
ExternalProject_Add(flatbuffers_ep
|
||||
PREFIX external/flatbuffers
|
||||
URL ${flatbuffers_URL}
|
||||
URL_MD5 ${flatbuffers_URL_MD5}
|
||||
CMAKE_ARGS
|
||||
"-DCMAKE_CXX_FLAGS=-fPIC"
|
||||
"-DCMAKE_INSTALL_PREFIX:PATH=${FLATBUFFERS_INSTALL_PREFIX}"
|
||||
"-DFLATBUFFERS_BUILD_TESTS=OFF"
|
||||
"-DCMAKE_BUILD_TYPE=RELEASE")
|
||||
endif()
|
||||
|
||||
set(FBS_DEPENDS flatbuffers_ep)
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
# glog external project
|
||||
# target:
|
||||
# - glog_ep
|
||||
# defines:
|
||||
# - GLOG_HOME
|
||||
# - GLOG_INCLUDE_DIR
|
||||
# - GLOG_STATIC_LIB
|
||||
|
||||
if(DEFINED ENV{GLOG_HOME} AND EXISTS ENV{GLOG_HOME})
|
||||
set(GLOG_HOME "$ENV{GLOG_HOME}")
|
||||
set(GLOG_INCLUDE_DIR "${GLOG_HOME}/include")
|
||||
set(GLOG_STATIC_LIB "${GLOG_HOME}/lib/libglog.a")
|
||||
|
||||
add_custom_target(glog_ep)
|
||||
else()
|
||||
message(STATUS "Starting to build glog")
|
||||
set(GLOG_VERSION "0.3.5")
|
||||
# keep the url md5 equals with the version, `md5 v0.3.5.tar.gz`
|
||||
set(GLOG_URL_MD5 "5df6d78b81e51b90ac0ecd7ed932b0d4")
|
||||
set(GLOG_CMAKE_CXX_FLAGS "${EP_CXX_FLAGS} -fPIC")
|
||||
if(APPLE)
|
||||
set(GLOG_CMAKE_CXX_FLAGS "${GLOG_CMAKE_CXX_FLAGS} -mmacosx-version-min=10.12")
|
||||
endif()
|
||||
|
||||
set(GLOG_URL "https://github.com/google/glog/archive/v${GLOG_VERSION}.tar.gz")
|
||||
set(GLOG_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/external/glog/src/glog_ep")
|
||||
set(GLOG_HOME "${GLOG_PREFIX}")
|
||||
set(GLOG_INCLUDE_DIR "${GLOG_PREFIX}/include")
|
||||
set(GLOG_STATIC_LIB "${GLOG_PREFIX}/lib/libglog.a")
|
||||
|
||||
set(GLOG_CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
|
||||
-DCMAKE_INSTALL_PREFIX=${GLOG_PREFIX}
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
-DBUILD_TESTING=OFF
|
||||
-DWITH_GFLAGS=OFF
|
||||
-DCMAKE_CXX_FLAGS_${UPPERCASE_BUILD_TYPE}=${GLOG_CMAKE_CXX_FLAGS}
|
||||
-DCMAKE_C_FLAGS_${UPPERCASE_BUILD_TYPE}=${EP_C_FLAGS}
|
||||
-DCMAKE_CXX_FLAGS=${GLOG_CMAKE_CXX_FLAGS})
|
||||
|
||||
ExternalProject_Add(glog_ep
|
||||
PREFIX external/glog
|
||||
URL ${GLOG_URL}
|
||||
URL_MD5 ${GLOG_URL_MD5}
|
||||
${EP_LOG_OPTIONS}
|
||||
BUILD_IN_SOURCE 1
|
||||
BUILD_BYPRODUCTS "${GLOG_STATIC_LIB}"
|
||||
CMAKE_ARGS ${GLOG_CMAKE_ARGS})
|
||||
endif()
|
||||
@@ -0,0 +1,58 @@
|
||||
# gtest external project
|
||||
# target:
|
||||
# - googletest_ep
|
||||
# defines:
|
||||
# - GTEST_HOME
|
||||
# - GTEST_STATIC_LIB
|
||||
# - GTEST_MAIN_STATIC_LIB
|
||||
# - GMOCK_MAIN_STATIC_LIB
|
||||
|
||||
if(DEFINED ENV{GTEST_HOME} AND EXISTS ENV{GTEST_HOME})
|
||||
set(GTEST_HOME "$ENV{GTEST_HOME}")
|
||||
set(GTEST_INCLUDE_DIR "${GTEST_HOME}/include")
|
||||
set(GTEST_STATIC_LIB
|
||||
"${GTEST_HOME}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
set(GTEST_MAIN_STATIC_LIB
|
||||
"${GTEST_HOME}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}gtest_main${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
set(GMOCK_MAIN_STATIC_LIB
|
||||
"${GTEST_HOME}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}gmock_main${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
|
||||
add_custom_target(googletest_ep)
|
||||
else()
|
||||
set(GTEST_VERSION "1.8.0")
|
||||
|
||||
if(APPLE)
|
||||
set(GTEST_CMAKE_CXX_FLAGS "-fPIC -DGTEST_USE_OWN_TR1_TUPLE=1 -Wno-unused-value -Wno-ignored-attributes")
|
||||
elseif(NOT MSVC)
|
||||
set(GTEST_CMAKE_CXX_FLAGS "-fPIC")
|
||||
endif()
|
||||
if(CMAKE_BUILD_TYPE)
|
||||
string(TOUPPER ${CMAKE_BUILD_TYPE} UPPERCASE_BUILD_TYPE)
|
||||
endif()
|
||||
set(GTEST_CMAKE_CXX_FLAGS "${EP_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${UPPERCASE_BUILD_TYPE}} ${GTEST_CMAKE_CXX_FLAGS}")
|
||||
|
||||
set(GTEST_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/external/googletest/src/googletest_ep")
|
||||
set(GTEST_INCLUDE_DIR "${GTEST_PREFIX}/include")
|
||||
set(GTEST_STATIC_LIB
|
||||
"${GTEST_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
set(GTEST_MAIN_STATIC_LIB
|
||||
"${GTEST_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}gtest_main${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
set(GMOCK_MAIN_STATIC_LIB
|
||||
"${GTEST_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}gmock_main${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
set(GTEST_CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
|
||||
-DCMAKE_INSTALL_PREFIX=${GTEST_PREFIX}
|
||||
-DCMAKE_CXX_FLAGS=${GTEST_CMAKE_CXX_FLAGS})
|
||||
if (MSVC AND NOT ARROW_USE_STATIC_CRT)
|
||||
set(GTEST_CMAKE_ARGS ${GTEST_CMAKE_ARGS} -Dgtest_force_shared_crt=ON)
|
||||
endif()
|
||||
|
||||
set(GTEST_URL_MD5 "16877098823401d1bf2ed7891d7dce36")
|
||||
|
||||
ExternalProject_Add(googletest_ep
|
||||
PREFIX external/googletest
|
||||
URL "https://github.com/google/googletest/archive/release-${GTEST_VERSION}.tar.gz"
|
||||
URL_MD5 ${GTEST_URL_MD5}
|
||||
BUILD_BYPRODUCTS ${GTEST_STATIC_LIB} ${GTEST_MAIN_STATIC_LIB} ${GMOCK_MAIN_STATIC_LIB}
|
||||
CMAKE_ARGS ${GTEST_CMAKE_ARGS}
|
||||
${EP_LOG_OPTIONS})
|
||||
endif()
|
||||
@@ -0,0 +1,45 @@
|
||||
# parquet external project
|
||||
# target:
|
||||
# - parquet_ep
|
||||
# depends:
|
||||
# - arrow_ep
|
||||
# defines:
|
||||
# - PARQUET_HOME
|
||||
# - PARQUET_INCLUDE_DIR
|
||||
# - PARQUET_STATIC_LIB
|
||||
# - PARQUET_SHARED_LIB
|
||||
|
||||
include(ExternalProject)
|
||||
|
||||
set(parquet_URL https://github.com/apache/parquet-cpp.git)
|
||||
set(parquet_TAG 63f41b00bddecb172bd5b3aa0366b4653f498811)
|
||||
|
||||
# install parquet into arrow_home...
|
||||
set(PARQUET_INSTALL_PREFIX ${ARROW_HOME})
|
||||
set(PARQUET_HOME ${PARQUET_INSTALL_PREFIX})
|
||||
set(PARQUET_INCLUDE_DIR ${PARQUET_INSTALL_PREFIX}/include)
|
||||
set(PARQUET_STATIC_LIB ${PARQUET_INSTALL_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}parquet.a)
|
||||
set(PARQUET_SHARED_LIB ${PARQUET_INSTALL_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}parquet${CMAKE_SHARED_LIBRARY_SUFFIX})
|
||||
|
||||
set(parquet_CMAKE_ARGS
|
||||
-DCMAKE_BUILD_TYPE:STRING=Release
|
||||
-DCMAKE_INSTALL_PREFIX=${PARQUET_INSTALL_PREFIX}
|
||||
-DARROW_HOME=${ARROW_HOME}
|
||||
-DBOOST_ROOT=${BOOST_ROOT}
|
||||
-DPARQUET_BUILD_BENCHMARKS=off
|
||||
-DPARQUET_BUILD_EXECUTABLES=off
|
||||
-DPARQUET_BUILD_TESTS=off)
|
||||
|
||||
set(parquet_ENV "")
|
||||
if (APPLE)
|
||||
set(parquet_ENV "PATH=/usr/local/opt/bison/bin:$ENV{PATH}"
|
||||
"OPENSSL_ROOT_DIR=/usr/local/opt/openssl")
|
||||
endif ()
|
||||
|
||||
ExternalProject_Add(parquet_ep
|
||||
PREFIX external/parquet
|
||||
DEPENDS arrow
|
||||
GIT_REPOSITORY ${parquet_URL}
|
||||
GIT_TAG ${parquet_TAG}
|
||||
BUILD_COMMAND ${CMAKE_COMMAND} -E env ${parquet_ENV} $(MAKE)
|
||||
CMAKE_ARGS ${parquet_CMAKE_ARGS})
|
||||
@@ -1,6 +1,4 @@
|
||||
set(GFLAGS_VERSION "2.2.0")
|
||||
set(GTEST_VERSION "1.8.0")
|
||||
set(GBENCHMARK_VERSION "1.1.0")
|
||||
# include all ray third party dependencies
|
||||
|
||||
# Because we use the old C++ ABI to be compatible with TensorFlow,
|
||||
# we have to turn it on for dependencies too
|
||||
@@ -9,43 +7,11 @@ set(EP_CXX_FLAGS "${EP_CXX_FLAGS} -D_GLIBCXX_USE_CXX11_ABI=0")
|
||||
if(RAY_BUILD_TESTS OR RAY_BUILD_BENCHMARKS)
|
||||
add_custom_target(unittest ctest -L unittest)
|
||||
|
||||
if(APPLE)
|
||||
set(GTEST_CMAKE_CXX_FLAGS "-fPIC -DGTEST_USE_OWN_TR1_TUPLE=1 -Wno-unused-value -Wno-ignored-attributes")
|
||||
elseif(NOT MSVC)
|
||||
set(GTEST_CMAKE_CXX_FLAGS "-fPIC")
|
||||
endif()
|
||||
if(CMAKE_BUILD_TYPE)
|
||||
string(TOUPPER ${CMAKE_BUILD_TYPE} UPPERCASE_BUILD_TYPE)
|
||||
endif()
|
||||
set(GTEST_CMAKE_CXX_FLAGS "${EP_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${UPPERCASE_BUILD_TYPE}} ${GTEST_CMAKE_CXX_FLAGS}")
|
||||
|
||||
set(GTEST_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/external/googletest/src/googletest_ep")
|
||||
set(GTEST_INCLUDE_DIR "${GTEST_PREFIX}/include")
|
||||
set(GTEST_STATIC_LIB
|
||||
"${GTEST_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
set(GTEST_MAIN_STATIC_LIB
|
||||
"${GTEST_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}gtest_main${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
set(GMOCK_MAIN_STATIC_LIB
|
||||
"${GTEST_PREFIX}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}gmock_main${CMAKE_STATIC_LIBRARY_SUFFIX}")
|
||||
set(GTEST_CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
|
||||
-DCMAKE_INSTALL_PREFIX=${GTEST_PREFIX}
|
||||
-DCMAKE_CXX_FLAGS=${GTEST_CMAKE_CXX_FLAGS})
|
||||
if (MSVC AND NOT ARROW_USE_STATIC_CRT)
|
||||
set(GTEST_CMAKE_ARGS ${GTEST_CMAKE_ARGS} -Dgtest_force_shared_crt=ON)
|
||||
endif()
|
||||
|
||||
set(GTEST_URL_MD5 "16877098823401d1bf2ed7891d7dce36")
|
||||
|
||||
ExternalProject_Add(googletest_ep
|
||||
PREFIX external/googletest
|
||||
URL "https://github.com/google/googletest/archive/release-${GTEST_VERSION}.tar.gz"
|
||||
URL_MD5 ${GTEST_URL_MD5}
|
||||
BUILD_BYPRODUCTS ${GTEST_STATIC_LIB} ${GTEST_MAIN_STATIC_LIB} ${GMOCK_MAIN_STATIC_LIB}
|
||||
CMAKE_ARGS ${GTEST_CMAKE_ARGS}
|
||||
${EP_LOG_OPTIONS})
|
||||
|
||||
include(GtestExternalProject)
|
||||
message(STATUS "GTest include dir: ${GTEST_INCLUDE_DIR}")
|
||||
message(STATUS "GTest static library: ${GTEST_STATIC_LIB}")
|
||||
message(STATUS "GTest static main library: ${GTEST_MAIN_STATIC_LIB}")
|
||||
message(STATUS "GMock static main library: ${GMOCK_MAIN_STATIC_LIB}")
|
||||
include_directories(SYSTEM ${GTEST_INCLUDE_DIR})
|
||||
ADD_THIRDPARTY_LIB(gtest
|
||||
STATIC_LIB ${GTEST_STATIC_LIB})
|
||||
@@ -60,43 +26,12 @@ if(RAY_BUILD_TESTS OR RAY_BUILD_BENCHMARKS)
|
||||
endif()
|
||||
|
||||
if(RAY_USE_GLOG)
|
||||
message(STATUS "Starting to build glog")
|
||||
set(GLOG_VERSION "0.3.5")
|
||||
# keep the url md5 equals with the version, `md5 v0.3.5.tar.gz`
|
||||
set(GLOG_URL_MD5 "5df6d78b81e51b90ac0ecd7ed932b0d4")
|
||||
set(GLOG_CMAKE_CXX_FLAGS "${EP_CXX_FLAGS} -fPIC")
|
||||
if(APPLE)
|
||||
set(GLOG_CMAKE_CXX_FLAGS "${GLOG_CMAKE_CXX_FLAGS} -mmacosx-version-min=10.12")
|
||||
endif()
|
||||
include(GlogExternalProject)
|
||||
message(STATUS "Glog home: ${GLOG_HOME}")
|
||||
message(STATUS "Glog include dir: ${GLOG_INCLUDE_DIR}")
|
||||
message(STATUS "Glog static lib: ${GLOG_STATIC_LIB}")
|
||||
|
||||
set(GLOG_URL "https://github.com/google/glog/archive/v${GLOG_VERSION}.tar.gz")
|
||||
set(GLOG_PREFIX "${CMAKE_CURRENT_BINARY_DIR}/external/glog/src/glog_ep")
|
||||
set(GLOG_HOME "${GLOG_PREFIX}")
|
||||
set(GLOG_INCLUDE_DIR "${GLOG_PREFIX}/include")
|
||||
set(GLOG_STATIC_LIB "${GLOG_PREFIX}/lib/libglog.a")
|
||||
|
||||
|
||||
set(GLOG_CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
|
||||
-DCMAKE_INSTALL_PREFIX=${GLOG_PREFIX}
|
||||
-DBUILD_SHARED_LIBS=OFF
|
||||
-DBUILD_TESTING=OFF
|
||||
-DWITH_GFLAGS=OFF
|
||||
-DCMAKE_CXX_FLAGS_${UPPERCASE_BUILD_TYPE}=${GLOG_CMAKE_CXX_FLAGS}
|
||||
-DCMAKE_C_FLAGS_${UPPERCASE_BUILD_TYPE}=${EP_C_FLAGS}
|
||||
-DCMAKE_CXX_FLAGS=${GLOG_CMAKE_CXX_FLAGS})
|
||||
|
||||
ExternalProject_Add(glog_ep
|
||||
PREFIX external/glog
|
||||
URL ${GLOG_URL}
|
||||
URL_MD5 ${GLOG_URL_MD5}
|
||||
${EP_LOG_OPTIONS}
|
||||
BUILD_IN_SOURCE 1
|
||||
BUILD_BYPRODUCTS "${GLOG_STATIC_LIB}"
|
||||
CMAKE_ARGS ${GLOG_CMAKE_ARGS})
|
||||
|
||||
message(STATUS "GLog include dir: ${GLOG_INCLUDE_DIR}")
|
||||
message(STATUS "GLog static library: ${GLOG_STATIC_LIB}")
|
||||
include_directories(SYSTEM ${GLOG_INCLUDE_DIR})
|
||||
include_directories(${GLOG_INCLUDE_DIR})
|
||||
ADD_THIRDPARTY_LIB(glog
|
||||
STATIC_LIB ${GLOG_STATIC_LIB})
|
||||
|
||||
@@ -112,6 +47,16 @@ message(STATUS "Boost system library: ${Boost_SYSTEM_LIBRARY}")
|
||||
message(STATUS "Boost filesystem library: ${Boost_FILESYSTEM_LIBRARY}")
|
||||
include_directories(${Boost_INCLUDE_DIR})
|
||||
|
||||
ADD_THIRDPARTY_LIB(boost_system
|
||||
STATIC_LIB ${Boost_SYSTEM_LIBRARY})
|
||||
ADD_THIRDPARTY_LIB(boost_filesystem
|
||||
STATIC_LIB ${Boost_FILESYSTEM_LIBRARY})
|
||||
|
||||
add_dependencies(boost_system boost_ep)
|
||||
add_dependencies(boost_filesystem boost_ep)
|
||||
|
||||
add_custom_target(boost DEPENDS boost_system boost_filesystem)
|
||||
|
||||
# flatbuffers
|
||||
include(FlatBuffersExternalProject)
|
||||
|
||||
|
||||
@@ -96,7 +96,7 @@ add_library(common STATIC
|
||||
thirdparty/ae/ae.c
|
||||
thirdparty/sha256.c)
|
||||
|
||||
add_dependencies(common arrow_ep)
|
||||
add_dependencies(common arrow)
|
||||
|
||||
if ("${CMAKE_RAY_LANG_PYTHON}" STREQUAL "YES")
|
||||
add_dependencies(common gen_common_python_fbs)
|
||||
|
||||
@@ -42,12 +42,12 @@ add_custom_command(
|
||||
|
||||
add_custom_target(gen_local_scheduler_fbs DEPENDS ${LOCAL_SCHEDULER_FBS_OUTPUT_FILES})
|
||||
|
||||
add_dependencies(gen_local_scheduler_fbs arrow_ep)
|
||||
add_dependencies(gen_local_scheduler_fbs arrow)
|
||||
|
||||
add_library(local_scheduler_client STATIC local_scheduler_client.cc)
|
||||
|
||||
# local_scheduler_shared.h includes ray/gcs/client.h which requires gen_gcs_fbs & gen_node_manager_fbs.
|
||||
add_dependencies(local_scheduler_client hiredis gen_local_scheduler_fbs ${COMMON_FBS_OUTPUT_FILES} gen_gcs_fbs gen_node_manager_fbs)
|
||||
add_dependencies(local_scheduler_client common hiredis gen_local_scheduler_fbs ${COMMON_FBS_OUTPUT_FILES} gen_gcs_fbs gen_node_manager_fbs)
|
||||
|
||||
add_executable(local_scheduler local_scheduler.cc local_scheduler_algorithm.cc)
|
||||
add_dependencies(local_scheduler hiredis)
|
||||
|
||||
Reference in New Issue
Block a user