2020-12-07 13:18:53 +01:00
|
|
|
include (VCICommon)
|
2016-06-15 21:19:22 +02:00
|
|
|
|
2022-02-23 08:58:54 +01:00
|
|
|
set ( headers
|
|
|
|
|
Geometry/Config.hh
|
|
|
|
|
Geometry/EigenVectorT.hh
|
|
|
|
|
Geometry/LoopSchemeMaskT.hh
|
|
|
|
|
Geometry/MathDefs.hh
|
|
|
|
|
Geometry/NormalConeT.hh
|
|
|
|
|
Geometry/NormalConeT_impl.hh
|
|
|
|
|
Geometry/Plane3d.hh
|
|
|
|
|
Geometry/QuadricT.hh
|
|
|
|
|
Geometry/Vector11T.hh
|
|
|
|
|
Geometry/VectorT.hh
|
|
|
|
|
Geometry/VectorT_inc.hh
|
|
|
|
|
IO/BinaryHelper.hh
|
|
|
|
|
IO/IOInstances.hh
|
|
|
|
|
IO/IOManager.hh
|
|
|
|
|
IO/MeshIO.hh
|
|
|
|
|
IO/OFFFormat.hh
|
|
|
|
|
IO/OMFormat.hh
|
|
|
|
|
IO/OMFormatT_impl.hh
|
|
|
|
|
IO/Options.hh
|
|
|
|
|
IO/SR_binary.hh
|
|
|
|
|
IO/SR_binary_spec.hh
|
|
|
|
|
IO/SR_rbo.hh
|
|
|
|
|
IO/SR_store.hh
|
|
|
|
|
IO/SR_types.hh
|
|
|
|
|
IO/StoreRestore.hh
|
|
|
|
|
IO/exporter/BaseExporter.hh
|
|
|
|
|
IO/exporter/ExporterT.hh
|
|
|
|
|
IO/importer/BaseImporter.hh
|
|
|
|
|
IO/importer/ImporterT.hh
|
|
|
|
|
IO/reader/BaseReader.hh
|
|
|
|
|
IO/reader/OBJReader.hh
|
|
|
|
|
IO/reader/OFFReader.hh
|
|
|
|
|
IO/reader/OMReader.hh
|
|
|
|
|
IO/reader/PLYReader.hh
|
|
|
|
|
IO/reader/STLReader.hh
|
|
|
|
|
IO/writer/BaseWriter.hh
|
|
|
|
|
IO/writer/OBJWriter.hh
|
|
|
|
|
IO/writer/OFFWriter.hh
|
|
|
|
|
IO/writer/OMWriter.hh
|
|
|
|
|
IO/writer/PLYWriter.hh
|
|
|
|
|
IO/writer/STLWriter.hh
|
|
|
|
|
IO/writer/VTKWriter.hh
|
|
|
|
|
Mesh/ArrayItems.hh
|
|
|
|
|
Mesh/ArrayKernel.hh
|
|
|
|
|
Mesh/ArrayKernelT_impl.hh
|
|
|
|
|
Mesh/AttribKernelT.hh
|
|
|
|
|
Mesh/Attributes.hh
|
|
|
|
|
Mesh/BaseKernel.hh
|
|
|
|
|
Mesh/BaseMesh.hh
|
|
|
|
|
Mesh/Casts.hh
|
|
|
|
|
Mesh/CirculatorsT.hh
|
|
|
|
|
Mesh/DefaultPolyMesh.hh
|
|
|
|
|
Mesh/DefaultTriMesh.hh
|
|
|
|
|
Mesh/FinalMeshItemsT.hh
|
|
|
|
|
Mesh/Handles.hh
|
|
|
|
|
Mesh/IteratorsT.hh
|
|
|
|
|
Mesh/PolyConnectivity.hh
|
|
|
|
|
Mesh/PolyConnectivity_inline_impl.hh
|
|
|
|
|
Mesh/PolyMeshT.hh
|
|
|
|
|
Mesh/PolyMeshT_impl.hh
|
|
|
|
|
Mesh/PolyMesh_ArrayKernelT.hh
|
|
|
|
|
Mesh/SmartHandles.hh
|
|
|
|
|
Mesh/SmartRange.hh
|
|
|
|
|
Mesh/Status.hh
|
|
|
|
|
Mesh/Tags.hh
|
|
|
|
|
Mesh/Traits.hh
|
|
|
|
|
Mesh/TriConnectivity.hh
|
|
|
|
|
Mesh/TriMeshT.hh
|
|
|
|
|
Mesh/TriMeshT_impl.hh
|
|
|
|
|
Mesh/TriMesh_ArrayKernelT.hh
|
|
|
|
|
Mesh/gen/circulators_header.hh
|
|
|
|
|
Mesh/gen/circulators_template.hh
|
|
|
|
|
Mesh/gen/footer.hh
|
|
|
|
|
Mesh/gen/iterators_header.hh
|
|
|
|
|
Mesh/gen/iterators_template.hh
|
|
|
|
|
System/OpenMeshDLLMacros.hh
|
|
|
|
|
System/compiler.hh
|
|
|
|
|
System/config.hh
|
|
|
|
|
System/mostream.hh
|
|
|
|
|
System/omstream.hh
|
|
|
|
|
Utils/AutoPropertyHandleT.hh
|
|
|
|
|
Utils/BaseProperty.hh
|
|
|
|
|
Utils/Endian.hh
|
|
|
|
|
Utils/GenProg.hh
|
|
|
|
|
Utils/HandleToPropHandle.hh
|
|
|
|
|
Utils/Noncopyable.hh
|
|
|
|
|
Utils/Predicates.hh
|
|
|
|
|
Utils/Property.hh
|
|
|
|
|
Utils/PropertyContainer.hh
|
|
|
|
|
Utils/PropertyCreator.hh
|
|
|
|
|
Utils/PropertyManager.hh
|
|
|
|
|
Utils/RandomNumberGenerator.hh
|
|
|
|
|
Utils/SingletonT.hh
|
|
|
|
|
Utils/SingletonT_impl.hh
|
|
|
|
|
Utils/color_cast.hh
|
|
|
|
|
Utils/typename.hh
|
|
|
|
|
Utils/vector_cast.hh
|
|
|
|
|
Utils/vector_traits.hh
|
2016-06-15 21:19:22 +02:00
|
|
|
)
|
|
|
|
|
|
2022-02-23 08:58:54 +01:00
|
|
|
set ( sources
|
|
|
|
|
IO/BinaryHelper.cc
|
|
|
|
|
IO/IOManager.cc
|
|
|
|
|
IO/OMFormat.cc
|
|
|
|
|
IO/reader/BaseReader.cc
|
|
|
|
|
IO/reader/OBJReader.cc
|
|
|
|
|
IO/reader/OFFReader.cc
|
|
|
|
|
IO/reader/OMReader.cc
|
|
|
|
|
IO/reader/PLYReader.cc
|
|
|
|
|
IO/reader/STLReader.cc
|
|
|
|
|
IO/writer/BaseWriter.cc
|
|
|
|
|
IO/writer/OBJWriter.cc
|
|
|
|
|
IO/writer/OFFWriter.cc
|
|
|
|
|
IO/writer/OMWriter.cc
|
|
|
|
|
IO/writer/PLYWriter.cc
|
|
|
|
|
IO/writer/STLWriter.cc
|
|
|
|
|
IO/writer/VTKWriter.cc
|
|
|
|
|
Mesh/ArrayKernel.cc
|
|
|
|
|
Mesh/BaseKernel.cc
|
|
|
|
|
Mesh/PolyConnectivity.cc
|
|
|
|
|
Mesh/TriConnectivity.cc
|
|
|
|
|
System/omstream.cc
|
|
|
|
|
Utils/BaseProperty.cc
|
|
|
|
|
Utils/Endian.cc
|
|
|
|
|
Utils/PropertyCreator.cc
|
|
|
|
|
Utils/RandomNumberGenerator.cc
|
|
|
|
|
)
|
2016-06-15 21:19:22 +02:00
|
|
|
|
|
|
|
|
# Disable Library installation when not building OpenMesh on its own but as part of another project!
|
2021-01-20 16:27:55 +01:00
|
|
|
if ( NOT ${CMAKE_PROJECT_NAME} MATCHES "OpenMesh")
|
2020-12-07 13:18:53 +01:00
|
|
|
set(VCI_NO_LIBRARY_INSTALL true)
|
2016-06-15 21:19:22 +02:00
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (WIN32)
|
|
|
|
|
|
|
|
|
|
if ( OPENMESH_BUILD_SHARED )
|
|
|
|
|
add_definitions( -DOPENMESHDLL -DBUILDOPENMESHDLL)
|
2020-12-07 13:18:53 +01:00
|
|
|
vci_add_library (OpenMeshCore SHARED ${sources} ${headers})
|
2022-02-23 09:14:33 +01:00
|
|
|
|
|
|
|
|
target_include_directories(OpenMeshCore PUBLIC
|
|
|
|
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../..>
|
|
|
|
|
$<INSTALL_INTERFACE:include>)
|
|
|
|
|
|
2016-06-15 21:19:22 +02:00
|
|
|
else()
|
|
|
|
|
# OpenMesh has no dll exports so we have to build a static library on windows
|
2020-12-07 13:18:53 +01:00
|
|
|
vci_add_library (OpenMeshCore STATIC ${sources} ${headers})
|
2022-02-23 09:14:33 +01:00
|
|
|
|
|
|
|
|
target_include_directories(OpenMeshCoreStatic PUBLIC
|
|
|
|
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../..>
|
|
|
|
|
$<INSTALL_INTERFACE:include>)
|
2016-06-15 21:19:22 +02:00
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
else ()
|
2020-12-07 13:18:53 +01:00
|
|
|
vci_add_library (OpenMeshCore SHAREDANDSTATIC ${sources} ${headers})
|
2022-02-23 09:14:33 +01:00
|
|
|
|
|
|
|
|
target_include_directories(OpenMeshCore PUBLIC
|
|
|
|
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../..>
|
|
|
|
|
$<INSTALL_INTERFACE:include>)
|
|
|
|
|
|
|
|
|
|
target_include_directories(OpenMeshCoreStatic PUBLIC
|
|
|
|
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../..>
|
|
|
|
|
$<INSTALL_INTERFACE:include>)
|
|
|
|
|
|
2021-01-20 12:29:24 +01:00
|
|
|
set_target_properties (OpenMeshCore PROPERTIES VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
|
|
|
|
|
SOVERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} )
|
2021-01-19 17:05:41 +01:00
|
|
|
endif ()
|
2016-06-15 21:19:22 +02:00
|
|
|
|
2021-01-19 17:05:41 +01:00
|
|
|
if (MSVC)
|
2021-01-22 14:24:17 +01:00
|
|
|
target_compile_options(OpenMeshCore PUBLIC /bigobj)
|
2016-06-15 21:19:22 +02:00
|
|
|
endif ()
|
|
|
|
|
|
|
|
|
|
# Add core as dependency before fixbundle
|
2021-01-20 16:27:55 +01:00
|
|
|
if ( (${CMAKE_PROJECT_NAME} MATCHES "OpenMesh") AND BUILD_APPS )
|
2016-06-15 21:19:22 +02:00
|
|
|
|
|
|
|
|
if ( WIN32 )
|
|
|
|
|
if ( NOT "${CMAKE_GENERATOR}" MATCHES "MinGW Makefiles" )
|
|
|
|
|
add_dependencies (fixbundle OpenMeshCore)
|
|
|
|
|
endif()
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
# Add core as dependency before fixbundle
|
|
|
|
|
if ( APPLE )
|
|
|
|
|
# let bundle generation depend on targets
|
|
|
|
|
add_dependencies (fixbundle OpenMeshCore)
|
|
|
|
|
endif ()
|
|
|
|
|
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
# if we build debug and release in the same dir, we want to install both!
|
2021-01-20 16:27:55 +01:00
|
|
|
if ( ${CMAKE_PROJECT_NAME} MATCHES "OpenMesh")
|
2016-06-15 21:19:22 +02:00
|
|
|
if ( WIN32 )
|
|
|
|
|
FILE(GLOB files_install_libs "${CMAKE_BINARY_DIR}/Build/lib/*.lib" )
|
|
|
|
|
FILE(GLOB files_install_dlls "${CMAKE_BINARY_DIR}/Build/*.dll" )
|
|
|
|
|
INSTALL(FILES ${files_install_libs} DESTINATION lib )
|
|
|
|
|
INSTALL(FILES ${files_install_dlls} DESTINATION . )
|
|
|
|
|
endif()
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Install Header Files (Apple)
|
2020-12-07 13:18:53 +01:00
|
|
|
if ( NOT VCI_PROJECT_MACOS_BUNDLE AND APPLE )
|
2019-02-20 12:14:46 +01:00
|
|
|
FILE(GLOB files_install_Geometry "${CMAKE_CURRENT_SOURCE_DIR}/Geometry/*.hh" )
|
|
|
|
|
FILE(GLOB files_install_IO "${CMAKE_CURRENT_SOURCE_DIR}/IO/*.hh" "${CMAKE_CURRENT_SOURCE_DIR}/IO/*.inl" )
|
|
|
|
|
FILE(GLOB files_install_IO_importer "${CMAKE_CURRENT_SOURCE_DIR}/IO/importer/*.hh" )
|
|
|
|
|
FILE(GLOB files_install_IO_exporter "${CMAKE_CURRENT_SOURCE_DIR}/IO/exporter/*.hh" )
|
|
|
|
|
FILE(GLOB files_install_IO_reader "${CMAKE_CURRENT_SOURCE_DIR}/IO/reader/*.hh" )
|
|
|
|
|
FILE(GLOB files_install_IO_writer "${CMAKE_CURRENT_SOURCE_DIR}/IO/writer/*.hh" )
|
|
|
|
|
FILE(GLOB files_install_Mesh "${CMAKE_CURRENT_SOURCE_DIR}/Mesh/*.hh" )
|
|
|
|
|
FILE(GLOB files_install_Mesh_Gen "${CMAKE_CURRENT_SOURCE_DIR}/Mesh/gen/*.hh" )
|
|
|
|
|
FILE(GLOB files_install_System "${CMAKE_CURRENT_SOURCE_DIR}/System/*.hh" "${CMAKE_CURRENT_SOURCE_DIR}/System/config.h" )
|
|
|
|
|
FILE(GLOB files_install_Utils "${CMAKE_CURRENT_SOURCE_DIR}/Utils/*.hh" )
|
2016-06-15 21:19:22 +02:00
|
|
|
INSTALL(FILES ${files_install_Geometry} DESTINATION include/OpenMesh/Core/Geometry )
|
|
|
|
|
INSTALL(FILES ${files_install_IO} DESTINATION include/OpenMesh/Core/IO )
|
|
|
|
|
INSTALL(FILES ${files_install_IO_importer} DESTINATION include/OpenMesh/Core/IO/importer )
|
|
|
|
|
INSTALL(FILES ${files_install_IO_exporter} DESTINATION include/OpenMesh/Core/IO/exporter )
|
|
|
|
|
INSTALL(FILES ${files_install_IO_reader} DESTINATION include/OpenMesh/Core/IO/reader )
|
|
|
|
|
INSTALL(FILES ${files_install_IO_writer} DESTINATION include/OpenMesh/Core/IO/writer )
|
|
|
|
|
INSTALL(FILES ${files_install_Mesh} DESTINATION include/OpenMesh/Core/Mesh )
|
|
|
|
|
INSTALL(FILES ${files_install_Mesh_Gen} DESTINATION include/OpenMesh/Core/Mesh/gen )
|
|
|
|
|
INSTALL(FILES ${files_install_System} DESTINATION include/OpenMesh/Core/System )
|
|
|
|
|
INSTALL(FILES ${files_install_Utils} DESTINATION include/OpenMesh/Core/Utils )
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Only install if the project name matches OpenMesh.
|
2021-02-14 18:41:06 +01:00
|
|
|
if (${CMAKE_PROJECT_NAME} MATCHES "OpenMesh")
|
|
|
|
|
set (OPENMESH_NO_INSTALL_HEADERS FALSE CACHE BOOL "Should OpenMesh skip installing headers?")
|
|
|
|
|
else()
|
|
|
|
|
set (OPENMESH_NO_INSTALL_HEADERS TRUE CACHE BOOL "Should OpenMesh skip installing headers?")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
if (NOT APPLE AND NOT ${OPENMESH_NO_INSTALL_HEADERS})
|
2016-06-15 21:19:22 +02:00
|
|
|
|
|
|
|
|
# Install Header Files)
|
|
|
|
|
install(DIRECTORY .
|
|
|
|
|
DESTINATION include/OpenMesh/Core
|
|
|
|
|
FILES_MATCHING
|
|
|
|
|
PATTERN "*.hh"
|
|
|
|
|
PATTERN "CVS" EXCLUDE
|
|
|
|
|
PATTERN ".svn" EXCLUDE
|
|
|
|
|
PATTERN "tmp" EXCLUDE
|
|
|
|
|
PATTERN "Templates" EXCLUDE
|
|
|
|
|
PATTERN "Debian*" EXCLUDE)
|
|
|
|
|
|
|
|
|
|
#install the config file
|
|
|
|
|
install(FILES System/config.h DESTINATION include/OpenMesh/Core/System)
|
|
|
|
|
|
|
|
|
|
#install inlined Files from IO
|
|
|
|
|
install(DIRECTORY IO/
|
|
|
|
|
DESTINATION include/OpenMesh/Core/IO
|
|
|
|
|
FILES_MATCHING
|
|
|
|
|
PATTERN "*.inl"
|
|
|
|
|
PATTERN "CVS" EXCLUDE
|
2019-02-20 12:14:46 +01:00
|
|
|
PATTERN ".svn" EXCLUDE
|
|
|
|
|
PATTERN "reader" EXCLUDE
|
|
|
|
|
PATTERN "writer" EXCLUDE
|
|
|
|
|
PATTERN "importer" EXCLUDE
|
|
|
|
|
PATTERN "exporter" EXCLUDE
|
|
|
|
|
PATTERN "tmp" EXCLUDE
|
|
|
|
|
PATTERN "Debian*" EXCLUDE )
|
2016-06-15 21:19:22 +02:00
|
|
|
endif ()
|
|
|
|
|
|
2019-04-09 07:45:54 +02:00
|
|
|
target_include_directories(OpenMeshCore PUBLIC
|
2019-09-09 11:40:42 +02:00
|
|
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../..>
|
2019-04-09 07:45:54 +02:00
|
|
|
$<INSTALL_INTERFACE:include>)
|
|
|
|
|
|
|
|
|
|
install(TARGETS OpenMeshCore EXPORT OpenMeshConfig
|
2020-12-07 13:18:53 +01:00
|
|
|
ARCHIVE DESTINATION ${VCI_PROJECT_LIBDIR}
|
|
|
|
|
LIBRARY DESTINATION ${VCI_PROJECT_LIBDIR}
|
|
|
|
|
RUNTIME DESTINATION ${VCI_PROJECT_BINDIR})
|
2016-06-15 21:19:22 +02:00
|
|
|
|