update FindOpenMesh.cmake

This commit is contained in:
Jane Tournois 2024-07-03 14:00:50 +02:00
parent 29ed736571
commit d45c4a2b2e
1 changed files with 54 additions and 35 deletions

View File

@ -17,63 +17,82 @@ if (NOT OpenMesh_FOUND)
ENV OPENMESH_DIR
/usr/include
/usr/local/include
PATH_SUFFIXES src
PATH_SUFFIXES src include
DOC "The directory containing the OpenMesh header files WITHOUT the OpenMesh prefix"
)
find_library(OPENMESH_LIBRARY_RELEASE NAMES "OpenMeshCore"
find_library(OPENMESH_CORE_LIBRARY_RELEASE NAMES "OpenMeshCore"
HINTS ENV OPENMESH_LIB_DIR
ENV OPENMESH_DIR
PATH_SUFFIXES lib
DOC "Path to the OpenMeshCore library"
)
find_library(OPENMESH_LIBRARY_DEBUG NAMES "OpenMeshCored"
find_library(OPENMESH_CORE_LIBRARY_DEBUG NAMES "OpenMeshCored"
HINTS ENV OPENMESH_LIB_DIR
ENV OPENMESH_DIR
PATH_SUFFIXES lib
DOC "Path to the OpenMeshCored library"
)
if(OPENMESH_LIBRARY_RELEASE)
if(OPENMESH_LIBRARY_DEBUG)
set(OPENMESH_LIBRARIES optimized ${OPENMESH_LIBRARY_RELEASE} debug ${OPENMESH_LIBRARY_DEBUG})
else()
set(OPENMESH_LIBRARIES ${OPENMESH_LIBRARY_RELEASE})
endif()
endif()
endif()
find_library(OPENMESH_TOOLS_LIBRARY_RELEASE NAMES "OpenMeshTools"
HINTS ENV OPENMESH_LIB_DIR
ENV OPENMESH_DIR
PATH_SUFFIXES lib
DOC "Path to the OpenMeshTools library"
)
include( FindPackageHandleStandardArgs )
find_library(OPENMESH_TOOLS_LIBRARY_DEBUG NAMES "OpenMeshToolsd"
HINTS ENV OPENMESH_LIB_DIR
ENV OPENMESH_DIR
PATH_SUFFIXES lib
DOC "Path to the OpenMeshToolsd library"
)
find_package_handle_standard_args(OpenMesh
REQUIRED_VARS OPENMESH_INCLUDE_DIR OPENMESH_LIBRARIES
FOUND_VAR OpenMesh_FOUND
#select configuration depending on platform (optimized... on windows)
include(SelectLibraryConfigurations)
select_library_configurations( OPENMESH_TOOLS )
select_library_configurations( OPENMESH_CORE )
set(OPENMESH_LIBRARIES ${OPENMESH_CORE_LIBRARY} ${OPENMESH_TOOLS_LIBRARY} )
set(OPENMESH_INCLUDE_DIRS ${OPENMESH_INCLUDE_DIR} )
include( FindPackageHandleStandardArgs )
find_package_handle_standard_args(OpenMesh
REQUIRED_VARS OPENMESH_INCLUDE_DIRS OPENMESH_LIBRARIES
FOUND_VAR OpenMesh_FOUND
)
if(OpenMesh_FOUND AND NOT TARGET OpenMesh::OpenMesh)
add_library(OpenMesh::OpenMesh UNKNOWN IMPORTED)
#target OpenMesh::OpenMesh
if(OpenMesh_FOUND AND NOT TARGET OpenMesh::OpenMesh)
add_library(OpenMesh::OpenMesh UNKNOWN IMPORTED)
if(TARGET OpenMeshCore)
target_link_libraries(OpenMesh::OpenMesh INTERFACE OpenMeshCore)
return()
endif()
if(TARGET OpenMeshCore)
target_link_libraries(OpenMesh::OpenMesh INTERFACE OpenMeshCore)
return()
endif()
set_target_properties(OpenMesh::OpenMesh PROPERTIES
INTERFACE_COMPILE_DEFINITIONS "CGAL_USE_OPENMESH;NOMINMAX;_USE_MATH_DEFINES"
INTERFACE_INCLUDE_DIRECTORIES "${OPENMESH_INCLUDE_DIR}")
if(OPENMESH_LIBRARY_RELEASE)
set_property(TARGET OpenMesh::OpenMesh APPEND PROPERTY
IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(OpenMesh::OpenMesh PROPERTIES
IMPORTED_LOCATION_RELEASE "${OPENMESH_LIBRARY_RELEASE}")
INTERFACE_COMPILE_DEFINITIONS "CGAL_USE_OPENMESH;NOMINMAX;_USE_MATH_DEFINES"
INTERFACE_INCLUDE_DIRECTORIES "${OPENMESH_INCLUDE_DIRS}")
if(OPENMESH_CORE_LIBRARY_RELEASE)
set_property(TARGET OpenMesh::OpenMesh APPEND PROPERTY
IMPORTED_CONFIGURATIONS RELEASE)
set_target_properties(OpenMesh::OpenMesh PROPERTIES
IMPORTED_LOCATION_RELEASE "${OPENMESH_CORE_LIBRARY_RELEASE}")
endif()
if(OPENMESH_CORE_LIBRARY_DEBUG)
set_property(TARGET OpenMesh::OpenMesh APPEND PROPERTY
IMPORTED_CONFIGURATIONS DEBUG)
set_target_properties(OpenMesh::OpenMesh PROPERTIES
IMPORTED_LOCATION_DEBUG "${OPENMESH_CORE_LIBRARY_DEBUG}")
endif()
endif()
if(OPENMESH_LIBRARY_DEBUG)
set_property(TARGET OpenMesh::OpenMesh APPEND PROPERTY
IMPORTED_CONFIGURATIONS DEBUG)
set_target_properties(OpenMesh::OpenMesh PROPERTIES
IMPORTED_LOCATION_DEBUG "${OPENMESH_LIBRARY_DEBUG}")
endif()
endif()
if(OpenMesh_FOUND)
message(STATUS "OpenMesh found")
endif()