From 5b008e41cd434186d4c65619048d7d11d279e464 Mon Sep 17 00:00:00 2001 From: alemuntoni Date: Sat, 29 Oct 2022 12:55:11 +0200 Subject: [PATCH] download boost using cmake --- scripts/Windows/0_download_ext.ps1 | 4 ---- scripts/Windows/0_download_ext.sh | 4 ---- src/external/boost.cmake | 29 +++++++++++++++++++++++------ 3 files changed, 23 insertions(+), 14 deletions(-) diff --git a/scripts/Windows/0_download_ext.ps1 b/scripts/Windows/0_download_ext.ps1 index 8dca9be8c..906ceb321 100644 --- a/scripts/Windows/0_download_ext.ps1 +++ b/scripts/Windows/0_download_ext.ps1 @@ -6,10 +6,6 @@ $EXTERNAL_PATH = Join-Path $SCRIPTS_PATH ..\..\src\external cd $EXTERNAL_PATH -Invoke-WebRequest -Uri "https://boostorg.jfrog.io/artifactory/main/release/1.75.0/source/boost_1_75_0.zip" -OutFile "boost_1_75_0.zip" -Expand-Archive -Path boost_1_75_0.zip -DestinationPath .\ -Remove-Item boost_1_75_0.zip - Invoke-WebRequest -Uri "https://github.com/CGAL/cgal/releases/download/v5.2.1/CGAL-5.2.1.zip" -OutFile "CGAL-5.2.1.zip" Expand-Archive -Path CGAL-5.2.1.zip -DestinationPath .\ Remove-Item CGAL-5.2.1.zip diff --git a/scripts/Windows/0_download_ext.sh b/scripts/Windows/0_download_ext.sh index aad08b5cd..7c05bc2da 100644 --- a/scripts/Windows/0_download_ext.sh +++ b/scripts/Windows/0_download_ext.sh @@ -6,10 +6,6 @@ EXTERNAL_PATH=$SCRIPTS_PATH/../../src/external cd $EXTERNAL_PATH -wget https://boostorg.jfrog.io/artifactory/main/release/1.75.0/source/boost_1_75_0.zip -unzip boost_1_75_0.zip -rm boost_1_75_0.zip - wget https://github.com/CGAL/cgal/releases/download/v5.2.1/CGAL-5.2.1.zip unzip CGAL-5.2.1.zip rm CGAL-5.2.1.zip diff --git a/src/external/boost.cmake b/src/external/boost.cmake index 02b49d215..ec09cbf18 100644 --- a/src/external/boost.cmake +++ b/src/external/boost.cmake @@ -2,21 +2,38 @@ # Copyright 2019, 2021, Visual Computing Lab, ISTI - Italian National Research Council # SPDX-License-Identifier: BSL-1.0 -option(ALLOW_BUNDLED_BOOST "Allow use of bundled boost source" ON) -option(ALLOW_SYSTEM_BOOST "Allow use of system-provided boost" ON) +option(MESHLAB_ALLOW_DOWNLOAD_SOURCE_BOOST "Allow download and use of boost source" ON) +option(MESHLAB_ALLOW_SYSTEM_BOOST "Allow use of system-provided boost" ON) find_package(Boost COMPONENTS thread) -set(BOOST_DIR ${CMAKE_CURRENT_LIST_DIR}/boost_1_75_0) -if(ALLOW_SYSTEM_BOOST AND TARGET Boost::boost) + +if(MESHLAB_ALLOW_SYSTEM_BOOST AND TARGET Boost::boost) message(STATUS "- Boost - using system-provided library") add_library(external-boost INTERFACE) target_link_libraries(external-boost INTERFACE Boost::boost) if (TARGET Boost::thread) target_link_libraries(external-boost INTERFACE Boost::thread) endif() -elseif(ALLOW_BUNDLED_BOOST AND EXISTS "${BOOST_DIR}/boost/version.hpp") - message(STATUS "- Boost - using bundled source") +elseif(MESHLAB_ALLOW_DOWNLOAD_SOURCE_BOOST ) + set(BOOST_DIR ${CMAKE_CURRENT_LIST_DIR}/boost_1_75_0) + + if (NOT EXISTS "${BOOST_DIR}/boost/version.hpp") + message("Downloading Boost....") + set(BOOST_LINK https://boostorg.jfrog.io/artifactory/main/release/1.75.0/source/boost_1_75_0.zip) + + + file(DOWNLOAD ${BOOST_LINK} ${CMAKE_CURRENT_LIST_DIR}/boost_1_75_0.zip) + message("Boost downloaded.") + message("Extracting Boost archive...") + file(ARCHIVE_EXTRACT + INPUT ${CMAKE_CURRENT_LIST_DIR}/boost_1_75_0.zip + DESTINATION ${CMAKE_CURRENT_LIST_DIR}) + message("Boost archive extracted.") + file(REMOVE ${CMAKE_CURRENT_LIST_DIR}/boost_1_75_0.zip) + endif() + + message(STATUS "- Boost - using downloaded source") add_library(external-boost INTERFACE) target_include_directories(external-boost INTERFACE "${BOOST_DIR}") endif()