mirror of
https://github.com/lucaspalomodevelop/meshlab.git
synced 2026-03-20 03:16:10 +00:00
# Conflicts: # .github/workflows/Linux.yml # .gitignore # scripts/Linux/0_setup_env_ubuntu.sh # scripts/Windows/0_download_ext.ps1 # scripts/Windows/0_download_ext.sh # src/external/cgal.cmake # src/external/xerces.cmake
90 lines
2.6 KiB
CMake
90 lines
2.6 KiB
CMake
# Copyright 2019, 2020, Collabora, Ltd.
|
|
# Copyright 2019, 2020, Visual Computing Lab, ISTI - Italian National Research Council
|
|
# SPDX-License-Identifier: BSL-1.0
|
|
|
|
option(
|
|
ALLOW_OPTIONAL_EXTERNAL_MESHLAB_LIBRARIES
|
|
"Allow to use/build optional external libraries"
|
|
ON)
|
|
|
|
option(
|
|
BUILD_BUNDLED_SOURCES_WITHOUT_WARNINGS
|
|
"Should warnings be disabled on bundled source code?"
|
|
ON)
|
|
|
|
set(MESHLAB_EXTERNAL_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/downloads")
|
|
set(MESHLAB_EXTERNAL_DOWNLOAD_DIR "${CMAKE_CURRENT_SOURCE_DIR}/downloads")
|
|
|
|
add_library(external-disable-warnings INTERFACE)
|
|
if(BUILD_BUNDLED_SOURCES_WITHOUT_WARNINGS)
|
|
if(MSVC)
|
|
# TODO
|
|
elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
|
|
target_compile_options(external-disable-warnings INTERFACE -w)
|
|
endif()
|
|
endif()
|
|
|
|
## REQUIRED EXTERNAL LIBS ##
|
|
|
|
# GLEW - required
|
|
include(${CMAKE_CURRENT_SOURCE_DIR}/glew.cmake)
|
|
|
|
# EasyExif - required
|
|
include(${CMAKE_CURRENT_SOURCE_DIR}/easyexif.cmake)
|
|
|
|
|
|
## OPTIONAL EXTERNAL LIBS ##
|
|
|
|
if ((NOT BUILD_MESHLAB_MINI) AND ALLOW_OPTIONAL_EXTERNAL_MESHLAB_LIBRARIES)
|
|
|
|
message(STATUS "Searching for optional components")
|
|
|
|
# boost - optional for filter_mesh_booleans
|
|
include(${CMAKE_CURRENT_SOURCE_DIR}/boost.cmake)
|
|
|
|
# cgal - optional for filter_mesh_booleans
|
|
include(${CMAKE_CURRENT_SOURCE_DIR}/cgal.cmake)
|
|
|
|
# embree - optional for filter_embree
|
|
include(${CMAKE_CURRENT_SOURCE_DIR}/embree.cmake)
|
|
|
|
# levmar - optional, for several plugins
|
|
include(${CMAKE_CURRENT_SOURCE_DIR}/levmar.cmake)
|
|
|
|
# lib3ds - optional, for io_3ds
|
|
include(${CMAKE_CURRENT_SOURCE_DIR}/lib3ds.cmake)
|
|
|
|
# libigl - optional for filter_mesh_booleans
|
|
include(${CMAKE_CURRENT_SOURCE_DIR}/libigl.cmake)
|
|
|
|
# muparser - optional, for filter_func
|
|
include(${CMAKE_CURRENT_SOURCE_DIR}/muparser.cmake)
|
|
|
|
# nexus - optional. for io_nxs
|
|
include(${CMAKE_CURRENT_SOURCE_DIR}/nexus.cmake)
|
|
|
|
# newuoa - optional and header-only, for several plugins including all that use levmar
|
|
include(${CMAKE_CURRENT_SOURCE_DIR}/newuoa.cmake)
|
|
|
|
# OpenCTM - optional, for io_ctm
|
|
include(${CMAKE_CURRENT_SOURCE_DIR}/openctm.cmake)
|
|
|
|
# qhull - optional, for filter_qhull
|
|
include(${CMAKE_CURRENT_SOURCE_DIR}/qhull.cmake)
|
|
|
|
# structure-synth - optional, for filter_ssynth
|
|
include(${CMAKE_CURRENT_SOURCE_DIR}/ssynth.cmake)
|
|
|
|
# tiny glTF - optional, for io_gltf
|
|
include(${CMAKE_CURRENT_SOURCE_DIR}/tinygltf.cmake)
|
|
|
|
# u3d - optional, for io_u3d
|
|
include(${CMAKE_CURRENT_SOURCE_DIR}/u3d.cmake)
|
|
|
|
# xerces library - optional, needed by libe57
|
|
include(${CMAKE_CURRENT_SOURCE_DIR}/xerces.cmake)
|
|
|
|
# libe57Format - optional, for io_e57
|
|
include(${CMAKE_CURRENT_SOURCE_DIR}/e57.cmake)
|
|
endif()
|