[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:
Hanwei Jin
2018-09-23 07:52:33 -07:00
committed by Philipp Moritz
parent b29839a0a3
commit 9f9e49e4a1
9 changed files with 243 additions and 122 deletions
+1 -1
View File
@@ -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}
+39 -24
View File
@@ -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 ()
+30 -20
View File
@@ -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)
+48
View File
@@ -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()
+58
View File
@@ -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})
+19 -74
View File
@@ -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)
+1 -1
View File
@@ -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)
+2 -2
View File
@@ -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)