From 34ebf384a56c1c996b1e33bbe9dabd880d8f2188 Mon Sep 17 00:00:00 2001 From: Carles Fernandez Date: Sat, 13 Jun 2020 14:01:35 +0200 Subject: [PATCH] Use parallel building for GPSTk and Protobuf --- CMakeLists.txt | 9 ++++++++- src/tests/CMakeLists.txt | 10 +++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index dd040f4b1..054322a56 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2286,6 +2286,13 @@ if((NOT Protobuf_FOUND) OR (NOT Protobuf_PROTOC_EXECUTABLE) OR (${Protobuf_VERSI INSTALL_COMMAND ${PROTOBUF_MAKE_PROGRAM} install ) else() + if(CMAKE_MAKE_PROGRAM MATCHES "make") + include(ProcessorCount) + ProcessorCount(NUMBER_OF_PROCESSORS) + if(NUMBER_OF_PROCESSORS GREATER 1) + set(PROTOBUF_PARALLEL_BUILD "-j${NUMBER_OF_PROCESSORS}") + endif() + endif() ExternalProject_Add(protobuf-${GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION} PREFIX ${CMAKE_BINARY_DIR}/protobuf-${GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION} GIT_REPOSITORY https://github.com/protocolbuffers/protobuf @@ -2294,7 +2301,7 @@ if((NOT Protobuf_FOUND) OR (NOT Protobuf_PROTOC_EXECUTABLE) OR (${Protobuf_VERSI BINARY_DIR ${CMAKE_BINARY_DIR}/protobuf-${GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION} UPDATE_COMMAND ${CMAKE_BINARY_DIR}/thirdparty/protobuf/protobuf-${GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION}/autogen.sh CONFIGURE_COMMAND ${CMAKE_BINARY_DIR}/thirdparty/protobuf/protobuf-${GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION}/configure --prefix=${CMAKE_BINARY_DIR}/protobuf-${GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION} - BUILD_COMMAND ${PROTOBUF_MAKE_PROGRAM} + BUILD_COMMAND ${PROTOBUF_MAKE_PROGRAM} ${PROTOBUF_PARALLEL_BUILD} INSTALL_COMMAND ${PROTOBUF_MAKE_PROGRAM} install BUILD_BYPRODUCTS ${CMAKE_BINARY_DIR}/protobuf-${GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION}/lib/${CMAKE_FIND_LIBRARY_PREFIXES}protobuf${CMAKE_STATIC_LIBRARY_SUFFIX} ${CMAKE_BINARY_DIR}/protobuf-${GNSSSDR_PROTOCOLBUFFERS_LOCAL_VERSION}/bin/protoc diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt index 3277e85d3..86bd02645 100644 --- a/src/tests/CMakeLists.txt +++ b/src/tests/CMakeLists.txt @@ -348,13 +348,21 @@ if(ENABLE_UNIT_TESTING_EXTRA OR ENABLE_SYSTEM_TESTING_EXTRA OR ENABLE_FPGA) PATCH_COMMAND "" ) else() + if(CMAKE_MAKE_PROGRAM MATCHES "make") + include(ProcessorCount) + ProcessorCount(NUMBER_OF_PROCESSORS) + if(NUMBER_OF_PROCESSORS GREATER 1) + set(GPSTK_PARALLEL_BUILD "-j${NUMBER_OF_PROCESSORS}") + endif() + endif() + ExternalProject_Add(gpstk-${GNSSSDR_GPSTK_LOCAL_VERSION} GIT_REPOSITORY https://github.com/SGL-UT/GPSTk GIT_TAG v${GNSSSDR_GPSTK_LOCAL_VERSION} SOURCE_DIR ${CMAKE_BINARY_DIR}/thirdparty/gpstk-${GNSSSDR_GPSTK_LOCAL_VERSION} BINARY_DIR ${CMAKE_BINARY_DIR}/gpstk-${GNSSSDR_GPSTK_LOCAL_VERSION} CMAKE_ARGS ${GTEST_COMPILER} ${TOOLCHAIN_ARG} -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/gpstk-${GNSSSDR_GPSTK_LOCAL_VERSION}/install -DBUILD_EXT=OFF -DBUILD_PYTHON=OFF -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_CXX_STANDARD=14 -DCMAKE_CXX_EXTENSIONS=ON -DCMAKE_C_STANDARD=11 -DCMAKE_C_EXTENSIONS=ON - BUILD_COMMAND ${GPSTK_BUILD_COMMAND} + BUILD_COMMAND ${GPSTK_BUILD_COMMAND} ${GPSTK_PARALLEL_BUILD} BUILD_BYPRODUCTS ${CMAKE_BINARY_DIR}/gpstk-${GNSSSDR_GPSTK_LOCAL_VERSION}/install/${CMAKE_INSTALL_LIBDIR}/${CMAKE_FIND_LIBRARY_PREFIXES}gpstk${CMAKE_SHARED_LIBRARY_SUFFIX} UPDATE_COMMAND "" PATCH_COMMAND ""