From c15a2308d0c37ece01eaf8d9938899928a6f8983 Mon Sep 17 00:00:00 2001 From: Lars Bilke <lars.bilke@ufz.de> Date: Mon, 11 Sep 2017 20:52:53 +0200 Subject: [PATCH] [CMake] Added option OGS_CONAN_BUILD to control local lib builds. Possible values: missing (default), all, never, list of lib names Examples: cmake . -DOGS_CONAN_BUILD="Eigen3;Boost" -> Builds Eigen and Boost locally cmake . -DOGS_CONAN_BUILD=all -> Builds all libs locally This basically reimplements all functionality we had with ExternalProject. --- CMakeLists.txt | 5 ++++- scripts/cmake/ConanSetup.cmake | 2 +- scripts/cmake/conan/conan.cmake | 7 ++++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7dbea09e222..77f1e81912a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,11 +23,14 @@ list(APPEND CMAKE_PREFIX_PATH option(BUILD_SHARED_LIBS "Create shared libraries?" OFF) set(CMAKE_LIBRARY_SEARCH_PATH "" CACHE PATH "Additional library installation path, e.g. /opt/local or C:/libs") -set(OGS_CPU_ARCHITECTURE "native" CACHE STRING "Processor architecture, defaults to native (*nix) / blend (MSVC).") +set(OGS_CPU_ARCHITECTURE "native" CACHE STRING "Processor architecture, \ + defaults to native (*nix) / blend (MSVC).") option(OGS_ENABLE_AVX2 "Enable the use of AVX2 instructions" OFF) option(OGS_BUILD_TESTS "Should the test executables be built?" ON) option(OGS_USE_PCH "Should pre-compiled headers be used?" ON) option(OGS_USE_CONAN "Should Conan package manager be used?" OFF) +set(OGS_CONAN_BUILD "missing" CACHE STRING "Possible values: all, missing, \ + never or list of libs to build" ) ### CMake includes ### include(scripts/cmake/PreFind.cmake) diff --git a/scripts/cmake/ConanSetup.cmake b/scripts/cmake/ConanSetup.cmake index 726188adc78..5e158fa66b9 100644 --- a/scripts/cmake/ConanSetup.cmake +++ b/scripts/cmake/ConanSetup.cmake @@ -73,5 +73,5 @@ conan_cmake_run(REQUIRES ${CONAN_REQUIRES} OPTIONS ${CONAN_OPTIONS} BASIC_SETUP UPDATE - BUILD missing + BUILD ${OGS_CONAN_BUILD} ) diff --git a/scripts/cmake/conan/conan.cmake b/scripts/cmake/conan/conan.cmake index cb55621bc77..6edbbc71686 100644 --- a/scripts/cmake/conan/conan.cmake +++ b/scripts/cmake/conan/conan.cmake @@ -209,7 +209,12 @@ function(conan_cmake_install) set(CONAN_BUILD_POLICY "") foreach(ARG ${ARGUMENTS_BUILD}) - set(CONAN_BUILD_POLICY ${CONAN_BUILD_POLICY} --build=${ARG}) + if(${ARG} STREQUAL "all") + set(CONAN_BUILD_POLICY ${CONAN_BUILD_POLICY} --build) + break() + else() + set(CONAN_BUILD_POLICY ${CONAN_BUILD_POLICY} --build=${ARG}) + endif() endforeach() if(ARGUMENTS_CONAN_COMMAND) set(conan_command ${ARGUMENTS_CONAN_COMMAND}) -- GitLab