From f05888198a668b5d2aa75c2c8941a6b3b176b9c6 Mon Sep 17 00:00:00 2001 From: rsgowman Date: Tue, 27 Feb 2018 10:34:21 -0500 Subject: Convert cmake build to (mostly) use urls rather than git clones (#852) Exception: grpc. Due to it's use of git submodules, it's not completely trivial to convert it (though probably wouldn't be too much more work.) This helps address our build being throttled. (Maybe. This assumes github allows more fetching of tgz's than clones.) It should also speed up our build times. The downloaded tarballs are placed into ${PROJECT_BINARY_DIR}/downloads. This allows for eventual caching in travis. --- cmake/external/googletest.cmake | 12 ++++-------- cmake/external/leveldb.cmake | 12 ++++-------- cmake/external/nanopb.cmake | 11 +++-------- cmake/external/protobuf.cmake | 12 ++++-------- 4 files changed, 15 insertions(+), 32 deletions(-) (limited to 'cmake') diff --git a/cmake/external/googletest.cmake b/cmake/external/googletest.cmake index 23a57f8..24da386 100644 --- a/cmake/external/googletest.cmake +++ b/cmake/external/googletest.cmake @@ -13,18 +13,14 @@ # limitations under the License. include(ExternalProject) -include(ExternalProjectFlags) - -ExternalProject_GitSource( - GOOGLETEST_GIT - GIT_REPOSITORY "https://github.com/google/googletest.git" - GIT_TAG "release-1.8.0" -) ExternalProject_Add( googletest - ${GOOGLETEST_GIT} + DOWNLOAD_DIR ${PROJECT_BINARY_DIR}/downloads + DOWNLOAD_NAME googletest-1.8.0.tar.gz + URL https://github.com/google/googletest/archive/release-1.8.0.tar.gz + URL_HASH SHA256=58a6f4277ca2bc8565222b3bbd58a177609e9c488e8a72649359ba51450db7d8 PREFIX ${PROJECT_BINARY_DIR}/external/googletest diff --git a/cmake/external/leveldb.cmake b/cmake/external/leveldb.cmake index 60183ca..dcbef6c 100644 --- a/cmake/external/leveldb.cmake +++ b/cmake/external/leveldb.cmake @@ -13,7 +13,6 @@ # limitations under the License. include(ExternalProject) -include(ExternalProjectFlags) if(WIN32 OR LEVELDB_ROOT) # If the user has supplied a LEVELDB_ROOT then just use it. Add an empty @@ -42,16 +41,13 @@ else() $<$:${CMAKE_CXX_FLAGS_RELEASE}>" ) - ExternalProject_GitSource( - LEVELDB_GIT - GIT_REPOSITORY "https://github.com/google/leveldb.git" - GIT_TAG "v1.20" - ) - ExternalProject_Add( leveldb - ${LEVELDB_GIT} + DOWNLOAD_DIR ${PROJECT_BINARY_DIR}/downloads + DOWNLOAD_NAME leveldb-v1.20.tar.gz + URL https://github.com/google/leveldb/archive/v1.20.tar.gz + URL_HASH SHA256=f5abe8b5b209c2f36560b75f32ce61412f39a2922f7045ae764a2c23335b6664 PREFIX ${PROJECT_BINARY_DIR}/external/leveldb diff --git a/cmake/external/nanopb.cmake b/cmake/external/nanopb.cmake index d09c668..f68af0b 100644 --- a/cmake/external/nanopb.cmake +++ b/cmake/external/nanopb.cmake @@ -11,13 +11,6 @@ # limitations under the License. include(ExternalProject) -include(ExternalProjectFlags) - -ExternalProject_GitSource( - NANOPB_GIT - GIT_REPOSITORY "https://github.com/nanopb/nanopb.git" - GIT_TAG "0.3.8" -) set( NANOPB_PROTOC_BIN @@ -29,7 +22,9 @@ ExternalProject_Add( DEPENDS protobuf - ${NANOPB_GIT} + DOWNLOAD_DIR ${PROJECT_BINARY_DIR}/downloads + URL https://github.com/nanopb/nanopb/archive/nanopb-0.3.8.tar.gz + URL_HASH SHA256=f192c7c7cc036be36babc303b7d2315d4f62e2fe4be28c172cfed4cfa0ed5f22 BUILD_IN_SOURCE ON diff --git a/cmake/external/protobuf.cmake b/cmake/external/protobuf.cmake index da5f11d..e1fdcbb 100644 --- a/cmake/external/protobuf.cmake +++ b/cmake/external/protobuf.cmake @@ -13,18 +13,14 @@ # limitations under the License. include(ExternalProject) -include(ExternalProjectFlags) - -ExternalProject_GitSource( - PROTOBUF_GIT - GIT_REPOSITORY "https://github.com/google/protobuf.git" - GIT_TAG "v3.5.1.1" -) ExternalProject_Add( protobuf - ${PROTOBUF_GIT} + DOWNLOAD_DIR ${PROJECT_BINARY_DIR}/downloads + DOWNLOAD_NAME protobuf-v3.5.11.tar.gz + URL https://github.com/google/protobuf/archive/v3.5.1.1.tar.gz + URL_HASH SHA256=56b5d9e1ab2bf4f5736c4cfba9f4981fbc6976246721e7ded5602fbaee6d6869 PREFIX ${PROJECT_BINARY_DIR}/external/protobuf -- cgit v1.2.3