From 63a4ee4c1e696a5a2a0577f3351104b570bfdd48 Mon Sep 17 00:00:00 2001 From: Bret Curtis Date: Fri, 5 Mar 2021 17:24:04 +0100 Subject: [PATCH] Add version and pkgconfig (#474) * Add version and pkgconfig * simply versioning Co-authored-by: Bret Curtis --- CMakeLists.txt | 23 ++++++++++++++++++++++- DebugUtils/CMakeLists.txt | 2 +- Detour/CMakeLists.txt | 2 +- DetourCrowd/CMakeLists.txt | 2 +- DetourTileCache/CMakeLists.txt | 2 +- Recast/CMakeLists.txt | 2 +- recastnavigation.pc.in | 10 ++++++++++ version.h.in | 3 +++ 8 files changed, 40 insertions(+), 6 deletions(-) create mode 100644 recastnavigation.pc.in create mode 100644 version.h.in diff --git a/CMakeLists.txt b/CMakeLists.txt index b8af6d5..c3121c6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,8 @@ project(RecastNavigation) # lib versions SET(SOVERSION 1) -SET(VERSION 1.0.0) +set(LIB_VERSION 1.5.1) +string(REPLACE "." "," LIB_VERSION_NUM "${LIB_VERSION}.0") option(RECASTNAVIGATION_DEMO "Build demo" ON) option(RECASTNAVIGATION_TESTS "Build tests" ON) @@ -16,6 +17,26 @@ endif() include(GNUInstallDirs) +configure_file( + "${RecastNavigation_SOURCE_DIR}/version.h.in" + "${RecastNavigation_BINARY_DIR}/version.h") +install(FILES "${RecastNavigation_BINARY_DIR}/version.h" DESTINATION + ${CMAKE_INSTALL_INCLUDEDIR}/recastnavigation) + +# Needed for recastnavigation.pc.in +set(prefix ${CMAKE_INSTALL_PREFIX}) +set(exec_prefix "\${prefix}") +set(libdir "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}") +set(bindir "\${exec_prefix}/${CMAKE_INSTALL_BINDIR}") +set(includedir "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}") +set(PACKAGE_VERSION "${LIB_VERSION}") +configure_file( + "${RecastNavigation_SOURCE_DIR}/recastnavigation.pc.in" + "${RecastNavigation_BINARY_DIR}/recastnavigation.pc" + @ONLY) +install(FILES "${RecastNavigation_BINARY_DIR}/recastnavigation.pc" + DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") + add_subdirectory(DebugUtils) add_subdirectory(Detour) add_subdirectory(DetourCrowd) diff --git a/DebugUtils/CMakeLists.txt b/DebugUtils/CMakeLists.txt index 14b36a9..f6325c4 100644 --- a/DebugUtils/CMakeLists.txt +++ b/DebugUtils/CMakeLists.txt @@ -18,7 +18,7 @@ target_link_libraries(DebugUtils set_target_properties(DebugUtils PROPERTIES SOVERSION ${SOVERSION} - VERSION ${VERSION} + VERSION ${LIB_VERSION} COMPILE_PDB_OUTPUT_DIRECTORY . COMPILE_PDB_NAME "DebugUtils-d" ) diff --git a/Detour/CMakeLists.txt b/Detour/CMakeLists.txt index da1a195..a3ca808 100644 --- a/Detour/CMakeLists.txt +++ b/Detour/CMakeLists.txt @@ -12,7 +12,7 @@ target_include_directories(Detour PUBLIC set_target_properties(Detour PROPERTIES SOVERSION ${SOVERSION} - VERSION ${VERSION} + VERSION ${LIB_VERSION} COMPILE_PDB_OUTPUT_DIRECTORY . COMPILE_PDB_NAME "Detour-d" ) diff --git a/DetourCrowd/CMakeLists.txt b/DetourCrowd/CMakeLists.txt index 60b8e1a..1a5d224 100644 --- a/DetourCrowd/CMakeLists.txt +++ b/DetourCrowd/CMakeLists.txt @@ -16,7 +16,7 @@ target_link_libraries(DetourCrowd set_target_properties(DetourCrowd PROPERTIES SOVERSION ${SOVERSION} - VERSION ${VERSION} + VERSION ${LIB_VERSION} COMPILE_PDB_OUTPUT_DIRECTORY . COMPILE_PDB_NAME "DetourCrowd-d" ) diff --git a/DetourTileCache/CMakeLists.txt b/DetourTileCache/CMakeLists.txt index cf2d437..7b83556 100644 --- a/DetourTileCache/CMakeLists.txt +++ b/DetourTileCache/CMakeLists.txt @@ -16,7 +16,7 @@ target_link_libraries(DetourTileCache set_target_properties(DetourTileCache PROPERTIES SOVERSION ${SOVERSION} - VERSION ${VERSION} + VERSION ${LIB_VERSION} COMPILE_PDB_OUTPUT_DIRECTORY . COMPILE_PDB_NAME "DetourTileCache-d" ) diff --git a/Recast/CMakeLists.txt b/Recast/CMakeLists.txt index f25cab8..de88b81 100644 --- a/Recast/CMakeLists.txt +++ b/Recast/CMakeLists.txt @@ -12,7 +12,7 @@ target_include_directories(Recast PUBLIC set_target_properties(Recast PROPERTIES SOVERSION ${SOVERSION} - VERSION ${VERSION} + VERSION ${LIB_VERSION} COMPILE_PDB_OUTPUT_DIRECTORY . COMPILE_PDB_NAME "Recast-d" ) diff --git a/recastnavigation.pc.in b/recastnavigation.pc.in new file mode 100644 index 0000000..7f806fd --- /dev/null +++ b/recastnavigation.pc.in @@ -0,0 +1,10 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: RecastNavigation +Description: RecastNavigation is a cross-platform navigation mesh construction toolset for games +Version: @PACKAGE_VERSION@ +Libs: -L${libdir} -lRecast -lDetour -lDebugUtils -lDetourCrowd -lDetourTileCache +Cflags: -I${includedir} -I${includedir}/recastnavigation @PKG_CONFIG_CFLAGS@ \ No newline at end of file diff --git a/version.h.in b/version.h.in new file mode 100644 index 0000000..5e6e16c --- /dev/null +++ b/version.h.in @@ -0,0 +1,3 @@ +/* Define to the library version */ +#define RECASTNAV_VERSION "${LIB_VERSION}" +#define RECASTNAV_VERSION_NUM ${LIB_VERSION_NUM}