all downloaded external libraries in src/external/downloads

This commit is contained in:
alemuntoni 2022-10-31 17:58:47 +01:00
parent 1d38b631d1
commit f464f751e9
11 changed files with 21 additions and 28 deletions

9
.gitignore vendored
View File

@ -23,14 +23,7 @@ build/*
install/*
# external libraries automatically downloaded by cmake
src/external/boost*
src/external/CGAL*
src/external/easyexif*
src/external/libigl*
src/external/libE57Format*
src/external/tinygltf*
src/external/u3d*
src/external/xerces-c*
src/external/downloads/*
# files created/modified during deploy stage
install/macos/resources/meshlab_dmg_final.json

View File

@ -12,6 +12,8 @@ option(
"Should warnings be disabled on bundled source code?"
ON)
set(MESHLAB_EXTERNAL_DOWNLOAD_DIR "${CMAKE_CURRENT_SOURCE_DIR}/downloads/")
add_library(external-disable-warnings INTERFACE)
if(BUILD_BUNDLED_SOURCES_WITHOUT_WARNINGS)
if(MSVC)

View File

@ -15,12 +15,11 @@ if(MESHLAB_ALLOW_SYSTEM_BOOST AND TARGET Boost::boost)
target_link_libraries(external-boost INTERFACE Boost::thread)
endif()
elseif(MESHLAB_ALLOW_DOWNLOAD_SOURCE_BOOST)
set(BOOST_DIR ${CMAKE_CURRENT_LIST_DIR}/boost_1_75_0)
set(BOOST_DIR ${MESHLAB_EXTERNAL_DOWNLOAD_DIR}/boost_1_75_0)
if (NOT EXISTS "${BOOST_DIR}/boost/version.hpp")
set(BOOST_LINK https://boostorg.jfrog.io/artifactory/main/release/1.75.0/source/boost_1_75_0.zip)
download_and_unzip(${BOOST_LINK} ${CMAKE_CURRENT_LIST_DIR} "Boost")
download_and_unzip(${BOOST_LINK} ${MESHLAB_EXTERNAL_DOWNLOAD_DIR} "Boost")
endif()
message(STATUS "- Boost - using downloaded source")

View File

@ -13,11 +13,11 @@ if(MESHLAB_ALLOW_SYSTEM_CGAL AND TARGET CGAL::CGAL)
add_library(external-cgal INTERFACE)
target_link_libraries(external-cgal INTERFACE CGAL::CGAL Threads::Threads)
elseif(MESHLAB_ALLOW_DOWNLOAD_SOURCE_CGAL)
set(CGAL_DIR "${CMAKE_CURRENT_LIST_DIR}/CGAL-5.2.1")
set(CGAL_DIR "${MESHLAB_EXTERNAL_DOWNLOAD_DIR}/CGAL-5.2.1")
if (NOT EXISTS "${CGAL_DIR}/include/CGAL/version.h")
set(CGAL_LINK https://github.com/CGAL/cgal/releases/download/v5.2.1/CGAL-5.2.1.zip)
download_and_unzip(${CGAL_LINK} ${CMAKE_CURRENT_LIST_DIR} "CGAL")
download_and_unzip(${CGAL_LINK} ${MESHLAB_EXTERNAL_DOWNLOAD_DIR} "CGAL")
if (WIN32)
set(CGAL_AUX_LINK https://github.com/CGAL/cgal/releases/download/v5.2.1/CGAL-5.2.1-win64-auxiliary-libraries-gmp-mpfr.zip)

View File

@ -6,12 +6,11 @@ option(MESHLAB_ALLOW_DOWNLOAD_SOURCE_LIBE57 "Allow download and use of libE57For
if (TARGET XercesC::XercesC)
if(MESHLAB_ALLOW_DOWNLOAD_SOURCE_LIBE57)
set(LIBE57_DIR ${CMAKE_CURRENT_LIST_DIR}/libE57Format-2.3.0)
set(LIBE57_DIR ${MESHLAB_EXTERNAL_DOWNLOAD_DIR}/libE57Format-2.3.0)
if (NOT EXISTS ${LIBE57_DIR}/CMakeLists.txt)
set(LIBE57_LINK https://github.com/asmaloney/libE57Format/archive/refs/tags/v2.3.0.zip)
download_and_unzip(${LIBE57_LINK} ${CMAKE_CURRENT_LIST_DIR} "LibE57")
download_and_unzip(${LIBE57_LINK} ${MESHLAB_EXTERNAL_DOWNLOAD_DIR} "LibE57")
endif()
message(STATUS "- libE57 - using downloaded source")

View File

@ -5,11 +5,11 @@
option(MESHLAB_ALLOW_DOWNLOAD_SOURCE_EASYEXIF "Allow download and use of EasyExif source" ON)
if(MESHLAB_ALLOW_DOWNLOAD_SOURCE_EASYEXIF)
set(EASYEXIF_DIR ${CMAKE_CURRENT_LIST_DIR}/easyexif-1.0)
set(EASYEXIF_DIR ${MESHLAB_EXTERNAL_DOWNLOAD_DIR}/easyexif-1.0)
if (NOT EXISTS "${EASYEXIF_DIR}/exif.h")
set(EASYEXIF_LINK https://github.com/mayanklahiri/easyexif/archive/refs/tags/v1.0.zip)
download_and_unzip(${EASYEXIF_LINK} ${CMAKE_CURRENT_LIST_DIR} "EasyExif")
download_and_unzip(${EASYEXIF_LINK} ${MESHLAB_EXTERNAL_DOWNLOAD_DIR} "EasyExif")
endif()
message(STATUS "- EasyExif - using downloaded source")

View File

@ -24,11 +24,11 @@ if(MESHLAB_ALLOW_SYSTEM_GLEW AND HAVE_SYSTEM_GLEW)
message(FATAL_ERROR "OpenGL not found or your CMake version is too old!")
endif()
elseif(MESHLAB_ALLOW_DOWNLOAD_SOURCE_GLEW)
set(GLEW_DIR ${CMAKE_CURRENT_LIST_DIR}/glew-2.2.0)
set(GLEW_DIR ${MESHLAB_EXTERNAL_DOWNLOAD_DIR}/glew-2.2.0)
if (NOT EXISTS "${GLEW_DIR}/src/glew.c")
set(GLEW_LINK https://github.com/nigels-com/glew/releases/download/glew-2.2.0/glew-2.2.0.zip)
download_and_unzip(${GLEW_LINK} ${CMAKE_CURRENT_LIST_DIR} "GLEW")
download_and_unzip(${GLEW_LINK} ${MESHLAB_EXTERNAL_DOWNLOAD_DIR} "GLEW")
endif()
message(STATUS "- GLEW - using downloaded source")

View File

@ -5,11 +5,11 @@
option(MESHLAB_ALLOW_DOWNLOAD_SOURCE_LIBIGL "Allow download and use of LibIGL source" ON)
if(MESHLAB_ALLOW_DOWNLOAD_SOURCE_LIBIGL)
set(LIBIGL_DIR ${CMAKE_CURRENT_LIST_DIR}/libigl-2.4.0)
set(LIBIGL_DIR ${MESHLAB_EXTERNAL_DOWNLOAD_DIR}/libigl-2.4.0)
if (NOT EXISTS "${LIBIGL_DIR}/include/igl/igl_inline.h")
set(LIBIGL_LINK https://github.com/libigl/libigl/archive/refs/tags/v2.4.0.zip)
download_and_unzip(${LIBIGL_LINK} ${CMAKE_CURRENT_LIST_DIR} "LibIGL")
download_and_unzip(${LIBIGL_LINK} ${MESHLAB_EXTERNAL_DOWNLOAD_DIR} "LibIGL")
endif()
message(STATUS "- libigl - using downloaded source")

View File

@ -5,11 +5,11 @@
option(MESHLAB_ALLOW_DOWNLOAD_SOURCE_TINYGLTF "Allow download and use of tinyglTF source" ON)
if(MESHLAB_ALLOW_DOWNLOAD_SOURCE_TINYGLTF)
set(TINYGLTF_DIR ${CMAKE_CURRENT_LIST_DIR}/tinygltf-2.6.3)
set(TINYGLTF_DIR ${MESHLAB_EXTERNAL_DOWNLOAD_DIR}/tinygltf-2.6.3)
if (NOT EXISTS "${TINYGLTF_DIR}/tiny_gltf.h")
set(TINYGLTF_LINK https://github.com/syoyo/tinygltf/archive/refs/tags/v2.6.3.zip)
download_and_unzip(${TINYGLTF_LINK} ${CMAKE_CURRENT_LIST_DIR} "tinygltf")
download_and_unzip(${TINYGLTF_LINK} ${MESHLAB_EXTERNAL_DOWNLOAD_DIR} "tinygltf")
endif()
message(STATUS "- tiny glTF - using downloaded source")

View File

@ -6,11 +6,11 @@ option(MESHLAB_ALLOW_DOWNLOAD_SOURCE_U3D "Allow download and use of u3d source"
if(MESHLAB_ALLOW_DOWNLOAD_SOURCE_U3D)
# todo - make release of u3d
set(U3D_DIR ${CMAKE_CURRENT_LIST_DIR}/u3d-master)
set(U3D_DIR ${MESHLAB_EXTERNAL_DOWNLOAD_DIR}/u3d-master)
if (NOT EXISTS ${U3D_DIR}/CMakeLists.txt)
set(U3D_LINK https://github.com/alemuntoni/u3d/archive/refs/heads/master.zip)
download_and_unzip(${U3D_LINK} ${CMAKE_CURRENT_LIST_DIR} "u3d")
download_and_unzip(${U3D_LINK} ${MESHLAB_EXTERNAL_DOWNLOAD_DIR} "u3d")
endif()
message(STATUS "- u3d - using bundled source")

View File

@ -17,11 +17,11 @@ if(MESHLAB_ALLOW_SYSTEM_XERCES AND TARGET XercesC::XercesC)
elseif(MESHLAB_ALLOW_DOWNLOAD_SOURCE_XERCES)
set(XERCES_C_VER 3.2.4)
set(XERCES_C_DIR ${CMAKE_CURRENT_LIST_DIR}/xerces-c-${XERCES_C_VER})
set(XERCES_C_DIR ${MESHLAB_EXTERNAL_DOWNLOAD_DIR}/xerces-c-${XERCES_C_VER})
if (NOT EXISTS ${XERCES_C_DIR}/CMakeLists.txt)
set(XERCES_C_LINK https://dlcdn.apache.org//xerces/c/3/sources/xerces-c-${XERCES_C_VER}.zip)
download_and_unzip(${XERCES_C_LINK} ${CMAKE_CURRENT_LIST_DIR} "Xerces-C")
download_and_unzip(${XERCES_C_LINK} ${MESHLAB_EXTERNAL_DOWNLOAD_DIR} "Xerces-C")
endif()
message(STATUS "- XercesC - using downloaded source")