Test out generating a modern find_package config setup for mmesh

This commit is contained in:
Clifford Yapp
2025-08-13 16:36:15 -04:00
parent 9734d5fdda
commit 27ca9c29e2
3 changed files with 35 additions and 7 deletions
+1 -1
View File
@@ -38,7 +38,7 @@
cmake_minimum_required(VERSION 3.18)
# Set CMake project name
project(MMESH)
project(mmesh VERSION 1.0.0 LANGUAGES C)
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/include
+2
View File
@@ -0,0 +1,2 @@
# mmeshConfig.cmake
include("${CMAKE_CURRENT_LIST_DIR}/mmeshTargets.cmake")
+32 -6
View File
@@ -1,7 +1,3 @@
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
)
set(MMESH_SOURCES
cc.c
meshdecimation.c
@@ -11,17 +7,47 @@ set(MMESH_SOURCES
mmcore.c
mmhash.c
mmthread.c
)
)
add_library(mmesh SHARED ${MMESH_SOURCES})
target_include_directories(
mmesh PUBLIC
$<INSTALL_INTERFACE:${INCLUDE_DIR}>
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../include>
)
target_link_libraries(mmesh PRIVATE ${MM_LIBS})
set_property(TARGET mmesh APPEND PROPERTY COMPILE_DEFINITIONS "MMESH_DLL_EXPORTS")
set_property(TARGET mmesh APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS "MMESH_DLL_IMPORTS")
install(TARGETS mmesh
EXPORT mmeshTargets
RUNTIME DESTINATION ${BIN_DIR}
LIBRARY DESTINATION ${LIB_DIR}
ARCHIVE DESTINATION ${LIB_DIR}
)
INCLUDES DESTINATION ${INCLUDE_DIR}
)
# Export the targets to a file
install(EXPORT mmeshTargets
FILE mmeshTargets.cmake
NAMESPACE mmesh::
DESTINATION lib/cmake/mmesh
)
# Generate the version file
include(CMakePackageConfigHelpers)
write_basic_package_version_file(
"${CMAKE_CURRENT_BINARY_DIR}/mmeshConfigVersion.cmake"
VERSION ${PROJECT_VERSION}
COMPATIBILITY AnyNewerVersion
)
# Install the config and version files
install(FILES
"${PROJECT_SOURCE_DIR}/cmake/mmeshConfig.cmake"
"${CMAKE_CURRENT_BINARY_DIR}/mmeshConfigVersion.cmake"
DESTINATION lib/cmake/mmesh
)
# Local Variables:
# tab-width: 8