Enable fallback for gflags, glog and protobuf
This commit is contained in:
27
cmake/external/cbc.cmake
vendored
Normal file
27
cmake/external/cbc.cmake
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
SET(CBC_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/protobuf/src/protobuf/src)
|
||||
SET(CBC_URL https://github.com/google/protobuf)
|
||||
|
||||
IF(WIN32)
|
||||
SET(CBC_LIBRARIES ${CMAKE_CURRENT_BINARY_DIR}/protobuf/src/protobuf/${CMAKE_BUILD_TYPE}/libcbc.lib)
|
||||
ELSE()
|
||||
SET(CBC_LIBRARIES ${CMAKE_CURRENT_BINARY_DIR}/protobuf/src/protobuf/libprotobuf.a)
|
||||
ENDIF()
|
||||
|
||||
ExternalProject_Add(Cbc
|
||||
PREFIX Cbc
|
||||
GIT_REPOSITORY ${CBC_URL}
|
||||
GIT_TAG "v${CBC_VERSION}"
|
||||
DOWNLOAD_DIR "${DOWNLOAD_LOCATION}"
|
||||
BUILD_IN_SOURCE 1
|
||||
SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/protobuf/src/protobuf
|
||||
CONFIGURE_COMMAND ${CMAKE_COMMAND} cmake/
|
||||
-Dprotobuf_BUILD_TESTS=OFF
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
|
||||
${Protobuf_ADDITIONAL_CMAKE_OPTIONS}
|
||||
INSTALL_COMMAND ""
|
||||
CMAKE_CACHE_ARGS
|
||||
-DCMAKE_BUILD_TYPE:STRING=Release
|
||||
-DCMAKE_VERBOSE_MAKEFILE:BOOL=OFF
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON)
|
||||
|
||||
LIST(APPEND ${PROJECT_NAME}externalTargets Protobuf)
|
||||
27
cmake/external/gflags.cmake
vendored
Normal file
27
cmake/external/gflags.cmake
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
SET(Gflags_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/gflags/src/gflags/include/)
|
||||
SET(Gflags_URL https://github.com/gflags/gflags)
|
||||
|
||||
IF(WIN32)
|
||||
SET(Gflags_LIBRARIES ${CMAKE_CURRENT_BINARY_DIR}/gflags/src/gflags/${CMAKE_BUILD_TYPE}/libgflags.lib)
|
||||
ELSE()
|
||||
SET(Gflags_LIBRARIES ${CMAKE_CURRENT_BINARY_DIR}/gflags/src/gflags/lib/libgflags.a)
|
||||
ENDIF()
|
||||
|
||||
ExternalProject_Add(Gflags
|
||||
PREFIX Gflags
|
||||
GIT_REPOSITORY ${Gflags_URL}
|
||||
GIT_TAG "v${Gflags_VERSION}"
|
||||
DOWNLOAD_DIR "${DOWNLOAD_LOCATION}"
|
||||
BUILD_IN_SOURCE 1
|
||||
SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/gflags/src/gflags
|
||||
CONFIGURE_COMMAND ${CMAKE_COMMAND}
|
||||
-DBUILD_TESTING=OFF
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
|
||||
${Gflags_ADDITIONAL_CMAKE_OPTIONS}
|
||||
INSTALL_COMMAND ""
|
||||
CMAKE_CACHE_ARGS
|
||||
-DCMAKE_BUILD_TYPE:STRING=Release
|
||||
-DCMAKE_VERBOSE_MAKEFILE:BOOL=OFF
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON)
|
||||
|
||||
LIST(APPEND ${PROJECT_NAME}externalTargets Gflags)
|
||||
29
cmake/external/glog.cmake
vendored
Normal file
29
cmake/external/glog.cmake
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
SET(GLOG_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/glog/src/glog/)
|
||||
LIST(APPEND GLOG_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/glog/src/glog/src/)
|
||||
SET(GLOG_URL https://github.com/google/glog)
|
||||
|
||||
IF(WIN32)
|
||||
SET(GLOG_LIBRARIES ${CMAKE_CURRENT_BINARY_DIR}/glog/src/glog/${CMAKE_BUILD_TYPE}/libglog.lib)
|
||||
ELSE()
|
||||
SET(GLOG_LIBRARIES ${CMAKE_CURRENT_BINARY_DIR}/glog/src/glog/libglog.a)
|
||||
ENDIF()
|
||||
MESSAGE("Glog: ${GLOG_VERSION}")
|
||||
|
||||
ExternalProject_Add(Glog
|
||||
PREFIX Glog
|
||||
GIT_REPOSITORY ${GLOG_URL}
|
||||
GIT_TAG "v${GLOG_VERSION}"
|
||||
DOWNLOAD_DIR "${DOWNLOAD_LOCATION}"
|
||||
BUILD_IN_SOURCE 1
|
||||
SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/glog/src/glog
|
||||
CONFIGURE_COMMAND ${CMAKE_COMMAND}
|
||||
-DBUILD_TESTING=OFF
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
|
||||
${Glogs_ADDITIONAL_CMAKE_OPTIONS}
|
||||
INSTALL_COMMAND ""
|
||||
CMAKE_CACHE_ARGS
|
||||
-DCMAKE_BUILD_TYPE:STRING=Release
|
||||
-DCMAKE_VERBOSE_MAKEFILE:BOOL=OFF
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON)
|
||||
|
||||
LIST(APPEND ${PROJECT_NAME}externalTargets Glog)
|
||||
34
cmake/external/protobuf.cmake
vendored
Normal file
34
cmake/external/protobuf.cmake
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
SET(Protobuf_INCLUDE_DIRS ${CMAKE_CURRENT_BINARY_DIR}/protobuf/src/protobuf/src)
|
||||
SET(Protobuf_URL https://github.com/google/protobuf)
|
||||
|
||||
IF(WIN32)
|
||||
SET(Protobuf_LIBRARIES ${CMAKE_CURRENT_BINARY_DIR}/protobuf/src/protobuf/${CMAKE_BUILD_TYPE}/libprotobuf.lib)
|
||||
SET(Protobuf_PROTOC_EXECUTABLE
|
||||
${CMAKE_CURRENT_BINARY_DIR}/protobuf/src/protobuf/${CMAKE_BUILD_TYPE}/protoc.exe)
|
||||
SET(Protobuf_ADDITIONAL_CMAKE_OPTIONS -Dprotobuf_MSVC_STATIC_RUNTIME:BOOL=OFF -A x64)
|
||||
ELSE()
|
||||
SET(Protobuf_LIBRARIES ${CMAKE_CURRENT_BINARY_DIR}/protobuf/src/protobuf/libprotobuf.a)
|
||||
SET(Protobuf_PROTOC_EXECUTABLE ${CMAKE_CURRENT_BINARY_DIR}/protobuf/src/protobuf/protoc)
|
||||
ENDIF()
|
||||
|
||||
ExternalProject_Add(Protobuf
|
||||
PREFIX Protobuf
|
||||
DEPENDS Zlib
|
||||
GIT_REPOSITORY ${Protobuf_URL}
|
||||
GIT_TAG "v${Protobuf_VERSION}"
|
||||
DOWNLOAD_DIR "${DOWNLOAD_LOCATION}"
|
||||
BUILD_IN_SOURCE 1
|
||||
SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/protobuf/src/protobuf
|
||||
CONFIGURE_COMMAND ${CMAKE_COMMAND} cmake/
|
||||
-Dprotobuf_BUILD_TESTS=OFF
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
|
||||
-DZLIB_ROOT=${ZLIB_INSTALL}
|
||||
${Protobuf_ADDITIONAL_CMAKE_OPTIONS}
|
||||
INSTALL_COMMAND ""
|
||||
CMAKE_CACHE_ARGS
|
||||
-DCMAKE_BUILD_TYPE:STRING=Release
|
||||
-DCMAKE_VERBOSE_MAKEFILE:BOOL=OFF
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON
|
||||
-DZLIB_ROOT:STRING=${ZLIB_INSTALL})
|
||||
|
||||
LIST(APPEND ${PROJECT_NAME}externalTargets Protobuf)
|
||||
45
cmake/external/zlib.cmake
vendored
Normal file
45
cmake/external/zlib.cmake
vendored
Normal file
@@ -0,0 +1,45 @@
|
||||
INCLUDE(ExternalProject)
|
||||
|
||||
SET(Zlib_INCLUDE_DIR ${CMAKE_CURRENT_BINARY_DIR}/external/zlib_archive)
|
||||
SET(Zlib_URL https://github.com/madler/zlib)
|
||||
SET(Zlib_BUILD ${CMAKE_CURRENT_BINARY_DIR}/zlib/src/zlib)
|
||||
SET(Zlib_INSTALL ${CMAKE_CURRENT_BINARY_DIR}/zlib/install)
|
||||
SET(Zlib_TAG 50893291621658f355bc5b4d450a8d06a563053d)
|
||||
|
||||
IF(WIN32)
|
||||
SET(Zlib_STATIC_LIBRARIES
|
||||
debug ${CMAKE_CURRENT_BINARY_DIR}/zlib/install/lib/zlibstaticd.lib
|
||||
optimized ${CMAKE_CURRENT_BINARY_DIR}/zlib/install/lib/zlibstatic.lib)
|
||||
ELSE()
|
||||
SET(Zlib_STATIC_LIBRARIES
|
||||
${CMAKE_CURRENT_BINARY_DIR}/zlib/install/lib/libz.a)
|
||||
ENDIF()
|
||||
|
||||
SET(Zlib_HEADERS
|
||||
"${Zlib_INSTALL}/include/zconf.h"
|
||||
"${Zlib_INSTALL}/include/zlib.h")
|
||||
|
||||
ExternalProject_Add(Zlib
|
||||
PREFIX zlib
|
||||
GIT_REPOSITORY ${Zlib_URL}
|
||||
GIT_TAG ${Zlib_TAG}
|
||||
INSTALL_DIR ${Zlib_INSTALL}
|
||||
BUILD_IN_SOURCE 1
|
||||
DOWNLOAD_DIR ${DOWNLOAD_LOCATION}
|
||||
CMAKE_CACHE_ARGS
|
||||
-DCMAKE_BUILD_TYPE:STRING=RELEASE
|
||||
-DCMAKE_INSTALL_PREFIX:STRING=${Zlib_INSTALL}
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE:BOOL=ON)
|
||||
|
||||
ADD_CUSTOM_TARGET(Zlib_CREATE_DESTINATION_DIR
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${Zlib_INCLUDE_DIR}
|
||||
DEPENDS Zlib)
|
||||
|
||||
ADD_CUSTOM_TARGET(Zlib_COPY_HEADERS_TO_DESTINATION DEPENDS Zlib_CREATE_DESTINATION_DIR)
|
||||
|
||||
FOREACH(header_file ${ZLIB_HEADERS})
|
||||
ADD_CUSTOM_COMMAND(TARGET Zlib_COPY_HEADERS_TO_DESTINATION PRE_BUILD
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${header_file} ${Zlib_INCLUDE_DIR})
|
||||
ENDFOREACH()
|
||||
|
||||
LIST(APPEND ${PROJECT_NAME}externalTargets Zlib)
|
||||
Reference in New Issue
Block a user