From 61aab29f3d489acbb9b078610fa83b1a05a18202 Mon Sep 17 00:00:00 2001 From: alemuntoni Date: Sat, 29 Oct 2022 14:39:48 +0200 Subject: [PATCH] download cgal using cmake --- scripts/Windows/0_download_ext.ps1 | 8 ------ scripts/Windows/0_download_ext.sh | 8 ------ src/external/boost.cmake | 13 +++++---- src/external/cgal.cmake | 43 ++++++++++++++++++++++++++---- 4 files changed, 44 insertions(+), 28 deletions(-) diff --git a/scripts/Windows/0_download_ext.ps1 b/scripts/Windows/0_download_ext.ps1 index 906ceb321..6368a2352 100644 --- a/scripts/Windows/0_download_ext.ps1 +++ b/scripts/Windows/0_download_ext.ps1 @@ -6,13 +6,5 @@ $EXTERNAL_PATH = Join-Path $SCRIPTS_PATH ..\..\src\external cd $EXTERNAL_PATH -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 - -Invoke-WebRequest -Uri "https://github.com/CGAL/cgal/releases/download/v5.2.1/CGAL-5.2.1-win64-auxiliary-libraries-gmp-mpfr.zip" -OutFile "CGAL-5.2.1-win64-auxiliary-libraries-gmp-mpfr.zip" -Expand-Archive -Path CGAL-5.2.1-win64-auxiliary-libraries-gmp-mpfr.zip -DestinationPath .\CGAL-5.2.1\ -Force -Remove-Item CGAL-5.2.1-win64-auxiliary-libraries-gmp-mpfr.zip - #going back to original location cd $DIR diff --git a/scripts/Windows/0_download_ext.sh b/scripts/Windows/0_download_ext.sh index 7c05bc2da..e7a833ee4 100644 --- a/scripts/Windows/0_download_ext.sh +++ b/scripts/Windows/0_download_ext.sh @@ -5,11 +5,3 @@ SCRIPTS_PATH="$(dirname "$(realpath "$0")")" EXTERNAL_PATH=$SCRIPTS_PATH/../../src/external cd $EXTERNAL_PATH - -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 - -wget https://github.com/CGAL/cgal/releases/download/v5.2.1/CGAL-5.2.1-win64-auxiliary-libraries-gmp-mpfr.zip -unzip -o CGAL-5.2.1-win64-auxiliary-libraries-gmp-mpfr.zip -d CGAL-5.2.1/ -rm CGAL-5.2.1-win64-auxiliary-libraries-gmp-mpfr.zip diff --git a/src/external/boost.cmake b/src/external/boost.cmake index ec09cbf18..87e87c7e8 100644 --- a/src/external/boost.cmake +++ b/src/external/boost.cmake @@ -7,7 +7,6 @@ option(MESHLAB_ALLOW_SYSTEM_BOOST "Allow use of system-provided boost" ON) find_package(Boost COMPONENTS thread) - if(MESHLAB_ALLOW_SYSTEM_BOOST AND TARGET Boost::boost) message(STATUS "- Boost - using system-provided library") add_library(external-boost INTERFACE) @@ -15,22 +14,22 @@ if(MESHLAB_ALLOW_SYSTEM_BOOST AND TARGET Boost::boost) if (TARGET Boost::thread) target_link_libraries(external-boost INTERFACE Boost::thread) endif() -elseif(MESHLAB_ALLOW_DOWNLOAD_SOURCE_BOOST ) +elseif(MESHLAB_ALLOW_DOWNLOAD_SOURCE_BOOST) set(BOOST_DIR ${CMAKE_CURRENT_LIST_DIR}/boost_1_75_0) + set(BOOST_ZIP ${CMAKE_CURRENT_LIST_DIR}/boost_1_75_0.zip) if (NOT EXISTS "${BOOST_DIR}/boost/version.hpp") - message("Downloading Boost....") + 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) + file(DOWNLOAD ${BOOST_LINK} ${BOOST_ZIP}) message("Boost downloaded.") message("Extracting Boost archive...") file(ARCHIVE_EXTRACT - INPUT ${CMAKE_CURRENT_LIST_DIR}/boost_1_75_0.zip + INPUT ${BOOST_ZIP} DESTINATION ${CMAKE_CURRENT_LIST_DIR}) message("Boost archive extracted.") - file(REMOVE ${CMAKE_CURRENT_LIST_DIR}/boost_1_75_0.zip) + file(REMOVE ${BOOST_ZIP}) endif() message(STATUS "- Boost - using downloaded source") diff --git a/src/external/cgal.cmake b/src/external/cgal.cmake index 603199343..39723837c 100644 --- a/src/external/cgal.cmake +++ b/src/external/cgal.cmake @@ -1,18 +1,51 @@ # Copyright 2019, 2021, Collabora, Ltd. # Copyright 2019, 2021, Visual Computing Lab, ISTI - Italian National Research Council # SPDX-License-Identifier: BSL-1.0 -option(ALLOW_BUNDLED_CGAL "Allow use of bundled CGAL source" ON) -option(ALLOW_SYSTEM_CGAL "Allow use of system-provided CGAL" ON) +option(MESHLAB_ALLOW_DOWNLOAD_SOURCE_CGAL "Allow download and use of bundled CGAL source" ON) +option(MESHLAB_ALLOW_SYSTEM_CGAL "Allow use of system-provided CGAL" ON) find_package(Threads REQUIRED) find_package(CGAL) -set(CGAL_DIR "${CMAKE_CURRENT_LIST_DIR}/CGAL-5.2.1") -if(ALLOW_SYSTEM_CGAL AND TARGET CGAL::CGAL) +if(MESHLAB_ALLOW_SYSTEM_CGAL AND TARGET CGAL::CGAL) message(STATUS "- CGAL - using system-provided library") add_library(external-cgal INTERFACE) target_link_libraries(external-cgal INTERFACE CGAL::CGAL Threads::Threads) -elseif(ALLOW_BUNDLED_CGAL AND EXISTS "${CGAL_DIR}/include/CGAL/version.h") +elseif(MESHLAB_ALLOW_DOWNLOAD_SOURCE_CGAL) + set(CGAL_DIR "${CMAKE_CURRENT_LIST_DIR}/CGAL-5.2.1") + + if (NOT EXISTS "${CGAL_DIR}/include/CGAL/version.h") + message("Downloading CGAL...") + set(CGAL_LINK https://github.com/CGAL/cgal/releases/download/v5.2.1/CGAL-5.2.1.zip) + set(CGAL_ZIP ${CMAKE_CURRENT_LIST_DIR}/CGAL-5.2.1.zip) + + file(DOWNLOAD ${CGAL_LINK} ${CGAL_ZIP}) + message("CGAL downloaded.") + message("Extracting CGAL archive...") + file(ARCHIVE_EXTRACT + INPUT ${CGAL_ZIP} + DESTINATION ${CMAKE_CURRENT_LIST_DIR}) + message("CGAL archive extracted.") + file(REMOVE ${CGAL_ZIP}) + + if (WIN32) + message("Downloading CGAL auxiliary libraries (gmp and mpfr)...") + set(CGAL_AUX_LINK https://github.com/CGAL/cgal/releases/download/v5.2.1/CGAL-5.2.1-win64-auxiliary-libraries-gmp-mpfr.zip) + set(CGAL_AUX_LINK_ZIP ${CMAKE_CURRENT_LIST_DIR}/CGAL-5.2.1-win64-auxiliary-libraries-gmp-mpfr.zip) + + file(DOWNLOAD ${CGAL_AUX_LINK} ${CGAL_AUX_LINK_ZIP}) + message("CGAL auxiliary libraries downloaded.") + message("Extracting CGAL auxiliary libraries archive...") + file(ARCHIVE_EXTRACT + INPUT ${CGAL_AUX_LINK_ZIP} + DESTINATION ${CGAL_DIR}) + message("CGAL auxiliary libraries archive extracted.") + file(REMOVE ${CGAL_AUX_LINK_ZIP}) + endif() + endif() + + + message(STATUS "- CGAL - using bundled source") add_library(external-cgal INTERFACE) target_include_directories(external-cgal INTERFACE "${CGAL_DIR}/include/")