Skip to content

Commit

Permalink
Propagate cmake arguments to superbuild dependencies (mavlink#876)
Browse files Browse the repository at this point in the history
* propagate cmake arguments to superbuild dependencies

* update tinyxml
  • Loading branch information
JonasVautherin authored and irsdkv committed Oct 18, 2019
1 parent e24d436 commit 3449889
Show file tree
Hide file tree
Showing 12 changed files with 37 additions and 120 deletions.
6 changes: 2 additions & 4 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,14 +98,12 @@ script:
fi
- if [[ "${BUILD_TARGET}" = "ios_build" ]]; then
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_BACKEND=ON -DBUILD_SHARED_LIBS=OFF -Bbuild/default -H.;
make -Cbuild/default -j4;
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=./tools/ios.toolchain.cmake -DPLATFORM=OS -DBUILD_BACKEND=ON -DBUILD_SHARED_LIBS=OFF -Bbuild/ios -H.;
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=${TRAVIS_BUILD_DIR}/tools/ios.toolchain.cmake -DPLATFORM=OS -DBUILD_BACKEND=ON -DBUILD_SHARED_LIBS=OFF -Bbuild/ios -H.;
make -Cbuild/ios -j4;
fi
- if [[ "${BUILD_TARGET}" = "ios_simulator_build" ]]; then
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_BACKEND=ON -DBUILD_SHARED_LIBS=OFF -Bbuild/default -H.;
make -Cbuild/default -j4;
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=./tools/ios.toolchain.cmake -DPLATFORM=SIMULATOR64 -DBUILD_BACKEND=ON -DBUILD_SHARED_LIBS=OFF -Bbuild/ios_simulator -H.;
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=${TRAVIS_BUILD_DIR}/tools/ios.toolchain.cmake -DPLATFORM=SIMULATOR64 -DBUILD_BACKEND=ON -DBUILD_SHARED_LIBS=OFF -Bbuild/ios_simulator -H.;
make -Cbuild/ios_simulator -j4;
fi
- if [[ "${BUILD_TARGET}" = "windows" ]]; then
Expand Down
10 changes: 10 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
cmake_minimum_required(VERSION 3.1)

# Extract command line args into ${CL_ARGS} in order to propagate them to the superbuild dependencies
get_cmake_property(vars CACHE_VARIABLES)
foreach(var ${vars})
get_property(currentHelpString CACHE "${var}" PROPERTY HELPSTRING)
if("${currentHelpString}" MATCHES "No help, variable specified on the command line." OR "${currentHelpString}" STREQUAL "")
#message("${var} = [${${var}}] -- ${currentHelpString}") # uncomment to see the variables being processed
list(APPEND CL_ARGS "-D${var}=${${var}}")
endif()
endforeach()

project(mavsdk_superbuild)

option(SUPERBUILD "Build dependencies" ON)
Expand Down
8 changes: 4 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,12 @@ ios_simulator:
@echo ""
@echo " mkdir -p build/ios_simulator"
@echo " cd build/ios_simulator"
@echo " cmake -DCMAKE_TOOLCHAIN_FILE=tools/ios.toolchain.cmake -DPLATFORM=SIMULATOR64 -DBUILD_BACKEND=ON ../.."
@echo " cmake -DCMAKE_TOOLCHAIN_FILE:PATH=tools/ios.toolchain.cmake -DPLATFORM=SIMULATOR64 -DBUILD_BACKEND=ON ../.."
@echo " make"
@echo ""
@echo "or, similarly:"
@echo ""
@echo " cmake -DCMAKE_TOOLCHAIN_FILE=tools/ios.toolchain.cmake -DPLATFORM=SIMULATOR64 -DBUILD_BACKEND=ON -Bbuild/ios_simulator -H."
@echo " cmake -DCMAKE_TOOLCHAIN_FILE:PATH=tools/ios.toolchain.cmake -DPLATFORM=SIMULATOR64 -DBUILD_BACKEND=ON -Bbuild/ios_simulator -H."
@echo " cmake --build build/ios_simulator"
@echo ""
@echo "The following variables can be set:"
Expand All @@ -50,12 +50,12 @@ ios:
@echo ""
@echo " mkdir -p build/ios"
@echo " cd build/ios"
@echo " cmake -DCMAKE_TOOLCHAIN_FILE=tools/ios.toolchain.cmake -DBUILD_BACKEND=ON ../.."
@echo " cmake -DCMAKE_TOOLCHAIN_FILE:PATH=tools/ios.toolchain.cmake -DBUILD_BACKEND=ON ../.."
@echo " make"
@echo ""
@echo "or, similarly:"
@echo ""
@echo " cmake -DCMAKE_TOOLCHAIN_FILE=tools/ios.toolchain.cmake -DBUILD_BACKEND=ON -Bbuild/ios -H."
@echo " cmake -DCMAKE_TOOLCHAIN_FILE:PATH=tools/ios.toolchain.cmake -DBUILD_BACKEND=ON -Bbuild/ios -H."
@echo " cmake --build build/ios"
@echo ""
@echo "The following variables can be set:"
Expand Down
14 changes: 1 addition & 13 deletions third_party/cares/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,26 +4,14 @@ project(external-cares)
include(ExternalProject)

list(APPEND CMAKE_ARGS
"${CL_ARGS}"
"-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}"
"-DCMAKE_TOOLCHAIN_FILE:PATH=${CMAKE_TOOLCHAIN_FILE}"
"-DCARES_STATIC=ON"
"-DCARES_SHARED=OFF"
"-DCARES_STATIC_PIC=ON"
"-DCARES_BUILD_TOOLS=OFF"
)

if(ANDROID)
list(APPEND CMAKE_ARGS
"-DANDROID_ABI:STRING=${ANDROID_ABI}"
"-DANDROID_STL:STRING=${ANDROID_STL}"
"-DANDROID_PLATFORM=${ANDROID_PLATFORM}"
)
elseif(IOS)
list(APPEND CMAKE_ARGS
"-DPLATFORM=${PLATFORM}"
)
endif()

message(STATUS "Preparing external project \"c-ares\" with args:")
foreach(CMAKE_ARG ${CMAKE_ARGS})
message(STATUS "-- ${CMAKE_ARG}")
Expand Down
15 changes: 5 additions & 10 deletions third_party/cmake/build_target.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,11 @@ function(build_target TARGET_NAME)
COMMAND ${CMAKE_COMMAND}
"-G${CMAKE_GENERATOR}"
"${PLATFORM_ARGUMENT}"
"-DCMAKE_FIND_ROOT_PATH=${CMAKE_FIND_ROOT_PATH}"
"-DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}"
"-DCMAKE_INSTALL_PREFIX=${TARGET_INSTALL_DIR}"
"-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}"
"-DANDROID_ABI=${ANDROID_ABI}"
"-DANDROID_STL=${ANDROID_STL}"
"-DANDROID_PLATFORM=${ANDROID_PLATFORM}"
"-DPLATFORM=${PLATFORM}"
"-DOPENSSL_ROOT_DIR=${OPENSSL_ROOT_DIR}"
"-DBUILD_BACKEND=${BUILD_BACKEND}"
"-DCMAKE_TOOLCHAIN_FILE:PATH=${CMAKE_TOOLCHAIN_FILE}"
"${CL_ARGS}"
"-DCL_ARGS=${CL_ARGS}"
"-DCMAKE_INSTALL_PREFIX:PATH=${TARGET_INSTALL_DIR}"
"-DCMAKE_PREFIX_PATH:PATH=${CMAKE_PREFIX_PATH}"
"${TARGET_SOURCE_DIR}"
WORKING_DIRECTORY "${TARGET_BINARY_DIR}"
RESULT_VARIABLE CONFIGURE_FAILED
Expand Down
8 changes: 2 additions & 6 deletions third_party/curl/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ project(external-curl)
include(ExternalProject)

list(APPEND CMAKE_ARGS
"-DCMAKE_PREFIX_PATH=${CMAKE_BINARY_DIR}/install"
"${CL_ARGS}"
"-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}"
"-DCMAKE_TOOLCHAIN_FILE:PATH=${CMAKE_TOOLCHAIN_FILE}"
"-DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}"
"-DCMAKE_POSITION_INDEPENDENT_CODE=ON"
"-DCMAKE_USE_OPENSSL=OFF"
"-DCMAKE_USE_LIBSSH2=OFF"
Expand All @@ -20,14 +20,10 @@ list(APPEND CMAKE_ARGS

if(ANDROID)
list(APPEND CMAKE_ARGS
"-DANDROID_ABI:STRING=${ANDROID_ABI}"
"-DANDROID_STL:STRING=${ANDROID_STL}"
"-DANDROID_PLATFORM=${ANDROID_PLATFORM}"
"-DBUILD_CURL_EXE=OFF"
)
elseif(IOS)
list(APPEND CMAKE_ARGS
"-DPLATFORM=${PLATFORM}"
"-DBUILD_CURL_EXE=OFF"
)
endif()
Expand Down
19 changes: 3 additions & 16 deletions third_party/grpc/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,9 @@ project(external-grpc)
include(ExternalProject)

list(APPEND CMAKE_ARGS
"${CL_ARGS}"
"-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}"
"-DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}"
"-DCMAKE_TOOLCHAIN_FILE:PATH=${CMAKE_TOOLCHAIN_FILE}"
"-DZLIB_ROOT=${CMAKE_INSTALL_PREFIX}"
"-DOPENSSL_ROOT_DIR=${CMAKE_INSTALL_PREFIX}"
"-DCMAKE_PREFIX_PATH:PATH=${CMAKE_PREFIX_PATH}"
"-DRUN_HAVE_STD_REGEX=0"
"-DRUN_HAVE_POSIX_REGEX=0"
"-DRUN_HAVE_STEADY_CLOCK=0"
Expand All @@ -29,18 +27,7 @@ if(CMAKE_CROSSCOMPILING)
)
endif()

if(ANDROID)
list(APPEND CMAKE_ARGS
"-DANDROID_ABI:STRING=${ANDROID_ABI}"
"-DANDROID_STL:STRING=${ANDROID_STL}"
"-DANDROID_PLATFORM=${ANDROID_PLATFORM}"
)
elseif(IOS)
list(APPEND CMAKE_ARGS
"-DPLATFORM=${PLATFORM}"
"-DgRPC_BUILD_CODEGEN=OFF"
)
elseif(MANYLINUX1)
if(MANYLINUX1)
list(APPEND CMAKE_ARGS
"-DCMAKE_CXX_FLAGS=-DGPR_MANYLINUX1=1"
)
Expand Down
14 changes: 1 addition & 13 deletions third_party/jsoncpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,26 +4,14 @@ project(external-jsoncpp)
include(ExternalProject)

list(APPEND CMAKE_ARGS
"${CL_ARGS}"
"-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}"
"-DCMAKE_TOOLCHAIN_FILE:PATH=${CMAKE_TOOLCHAIN_FILE}"
"-DCMAKE_POSITION_INDEPENDENT_CODE=ON"
"-DBUILD_SHARED_LIBS=OFF"
"-DJSONCPP_WITH_CMAKE_PACKAGE=ON"
"-DJSONCPP_WITH_TESTS=OFF"
)

if(ANDROID)
list(APPEND CMAKE_ARGS
"-DANDROID_ABI:STRING=${ANDROID_ABI}"
"-DANDROID_STL:STRING=${ANDROID_STL}"
"-DANDROID_PLATFORM=${ANDROID_PLATFORM}"
)
elseif(IOS)
list(APPEND CMAKE_ARGS
"-DPLATFORM=${PLATFORM}"
)
endif()

message(STATUS "Preparing external project \"jsoncpp\" with args:")
foreach(CMAKE_ARG ${CMAKE_ARGS})
message(STATUS "-- ${CMAKE_ARG}")
Expand Down
11 changes: 2 additions & 9 deletions third_party/libressl/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,16 @@ include(ExternalProject)
set(LIBRESSL_VERSION 2.9.1)

list(APPEND CMAKE_ARGS
"${CL_ARGS}"
"-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}"
"-DCMAKE_TOOLCHAIN_FILE:PATH=${CMAKE_TOOLCHAIN_FILE}"
"-DBUILD_SHARED_LIBS=OFF"
"-DLIBRESSL_APPS=OFF"
"-DLIBRESSL_TESTS=OFF"
)

if(ANDROID)
list(APPEND CMAKE_ARGS
"-DANDROID_ABI:STRING=${ANDROID_ABI}"
"-DANDROID_STL:STRING=${ANDROID_STL}"
"-DANDROID_PLATFORM=${ANDROID_PLATFORM}"
)
elseif(IOS)
if(IOS)
set(LIBRESSL_VERSION 2.9.0)
list(APPEND CMAKE_ARGS
"-DPLATFORM=${PLATFORM}"
"-DCMAKE_C_FLAGS=-Wno-implicit-function-declaration"
)
endif()
Expand Down
21 changes: 3 additions & 18 deletions third_party/protobuf/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,11 @@ project(external-protobuf)
include(ExternalProject)

list(APPEND CMAKE_ARGS
"${CL_ARGS}"
"-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}"
"-DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH}"
"-DCMAKE_TOOLCHAIN_FILE:PATH=${CMAKE_TOOLCHAIN_FILE}"
"-DCMAKE_PREFIX_PATH:PATH=${CMAKE_PREFIX_PATH}"
"-Dprotobuf_BUILD_TESTS=OFF"
"-Dprotobuf_BUILD_SHARED_LIBS=OFF"
"-Dprotobuf_MODULE_COMPATIBLE=ON"
"-Dprotobuf_MSVC_STATIC_RUNTIME=OFF"
"-DCMAKE_POSITION_INDEPENDENT_CODE=ON"
Expand All @@ -19,22 +20,6 @@ if(CMAKE_CROSSCOMPILING)
)
endif()

if(ANDROID)
list(APPEND CMAKE_ARGS
"-DANDROID_ABI:STRING=${ANDROID_ABI}"
"-DANDROID_STL:STRING=${ANDROID_STL}"
"-DANDROID_PLATFORM=${ANDROID_PLATFORM}"
)
elseif(IOS)
list(APPEND CMAKE_ARGS
"-DPLATFORM=${PLATFORM}"
"-Dprotobuf_BUILD_PROTOC_BINARIES=OFF"
"-Dprotobuf_BUILD_TESTS=OFF"
"-Dprotobuf_BUILD_SHARED_LIBS=OFF"
"-Dprotobuf_MODULE_COMPATIBLE=ON"
)
endif()

message(STATUS "Preparing external project \"protobuf\" with args:")
foreach(CMAKE_ARG ${CMAKE_ARGS})
message(STATUS "-- ${CMAKE_ARG}")
Expand Down
17 changes: 3 additions & 14 deletions third_party/tinyxml2/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,33 +4,22 @@ project(external-tinyxml2)
include(ExternalProject)

list(APPEND CMAKE_ARGS
"${CL_ARGS}"
"-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}"
"-DCMAKE_TOOLCHAIN_FILE:PATH=${CMAKE_TOOLCHAIN_FILE}"
"-DCMAKE_BUILD_TYPE=Release"
"-DCMAKE_POSITION_INDEPENDENT_CODE=ON"
"-DBUILD_SHARED_LIBS=OFF"
"-DBUILD_TESTS=OFF"
)

if(ANDROID)
list(APPEND CMAKE_ARGS
"-DANDROID_ABI:STRING=${ANDROID_ABI}"
"-DANDROID_STL:STRING=${ANDROID_STL}"
"-DANDROID_PLATFORM=${ANDROID_PLATFORM}"
)
elseif(IOS)
list(APPEND CMAKE_ARGS
"-DPLATFORM=${PLATFORM}"
)
endif()

message(STATUS "Preparing external project \"tinyxml2\" with args:")
foreach(CMAKE_ARG ${CMAKE_ARGS})
message(STATUS "-- ${CMAKE_ARG}")
endforeach()

ExternalProject_add(
tinyxml2
URL https://github.com/leethomason/tinyxml2/archive/7.0.1.tar.gz
URL https://github.com/leethomason/tinyxml2/archive/7.1.0.tar.gz
PREFIX tinyxml2
CMAKE_ARGS "${CMAKE_ARGS}"
)
14 changes: 1 addition & 13 deletions third_party/zlib/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,11 @@ project(external-zlib)
include(ExternalProject)

list(APPEND CMAKE_ARGS
"${CL_ARGS}"
"-DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_INSTALL_PREFIX}"
"-DCMAKE_TOOLCHAIN_FILE:PATH=${CMAKE_TOOLCHAIN_FILE}"
"-DCMAKE_POSITION_INDEPENDENT_CODE=ON"
)

if(ANDROID)
list(APPEND CMAKE_ARGS
"-DANDROID_ABI:STRING=${ANDROID_ABI}"
"-DANDROID_STL:STRING=${ANDROID_STL}"
"-DANDROID_PLATFORM=${ANDROID_PLATFORM}"
)
elseif(IOS)
list(APPEND CMAKE_ARGS
"-DPLATFORM=${PLATFORM}"
)
endif()

message(STATUS "Preparing external project \"zlib\" with args:")
foreach(CMAKE_ARG ${CMAKE_ARGS})
message(STATUS "-- ${CMAKE_ARG}")
Expand Down

0 comments on commit 3449889

Please sign in to comment.