diff --git a/CMakeLists.txt b/CMakeLists.txt index f8af31f..7ab82c0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,19 +3,30 @@ cmake_minimum_required(VERSION 3.10) project(gz_cmake_vendor) # Project-specific settings -set(LIB_VER_MAJOR 4) -set(LIB_VER_MINOR 2) +set(LIB_VER_MAJOR 5) +set(LIB_VER_MINOR 0) set(LIB_VER_PATCH 0) -set(LIB_VER_SUFFIX "") +set(LIB_VER_SUFFIX "-pre1") # Derived variables set(LIB_NAME gz-cmake) set(GITHUB_NAME gz-cmake) string(REPLACE "-" "_" LIB_NAME_UNDERSCORE ${LIB_NAME}) set(LIB_NAME_COMP_PREFIX ${LIB_NAME}) -set(LIB_NAME_FULL ${LIB_NAME}${LIB_VER_MAJOR}) +set(LIB_NAME_FULL gz-cmake) set(LIB_VER ${LIB_VER_MAJOR}.${LIB_VER_MINOR}.${LIB_VER_PATCH}) +option(VENDOR_FROM_LIB_VCS_REF + "Vendor from a VCS ref instead of tag. Uses the value in LIB_VCS_REF if specified or main otherwise" + OFF) +if(NOT VENDOR_FROM_LIB_VCS_REF) + set(LIB_VCS_VER ${GITHUB_NAME}${LIB_VER_MAJOR}_${LIB_VER}${LIB_VER_SUFFIX}) +elseif(LIB_VCS_REF) + set(LIB_VCS_VER ${LIB_VCS_REF}) +else() + set(LIB_VCS_VER main) +endif() + find_package(ament_cmake_core REQUIRED) find_package(ament_cmake_vendor_package REQUIRED) find_package(ament_cmake_export_dependencies REQUIRED) @@ -39,7 +50,7 @@ find_package(${LIB_NAME_FULL} ${VERSION_MATCH} ${LIB_VER} COMPONENTS all QUIET) ament_vendor(${LIB_NAME_UNDERSCORE}_vendor SATISFIED ${${LIB_NAME_FULL}_FOUND} VCS_URL https://github.com/gazebosim/${GITHUB_NAME}.git - VCS_VERSION ${GITHUB_NAME}${LIB_VER_MAJOR}_${LIB_VER}${LIB_VER_SUFFIX} + VCS_VERSION ${LIB_VCS_VER} GLOBAL_HOOK ) @@ -56,39 +67,4 @@ endif() -# The goal is to support versionless package names once the user has found the -# vendor package. Example usage: -# -# find_package(gz_sim_vendor) -# find_package(gz-sim VERSION 8.2.0) # Note gz-sim not gz-sim8 -# -# To accomplish this, we create a `{LIB_NAME}-config.cmake` file that does -# find_package on the underlying package and sets up CMake targets with the -# same name as the original targets sans the version number in the target. -# -# However, since the vendor package is built with `GLOBAL_HOOK`, we can't -# install the `-config.cmake` file we're creating here to where the versioned -# `-config.cmake` from the underlying package is located. If we did, users can -# `find_package` the versionless package without first finding the vendor -# package. Thus, we install the `-config.cmake` file to a nonstandard -# location: `opt/${PROJECT_NAME}/extra_cmake/` and provide a -# `{vendor_name}-extras.cmake` file that adds that path to `CMAKE_PREFIX_PATH`. -ament_package( - CONFIG_EXTRAS_POST "gz_cmake_vendor-extras.cmake.in" -) - -include(CMakePackageConfigHelpers) -include(GNUInstallDirs) - -configure_package_config_file(${LIB_NAME}-config.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}/${LIB_NAME}-config.cmake - INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${LIB_NAME}) - -write_basic_package_version_file( - ${CMAKE_CURRENT_BINARY_DIR}/${LIB_NAME}-config-version.cmake - VERSION ${LIB_VER} - COMPATIBILITY SameMajorVersion) - -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${LIB_NAME}-config.cmake - ${CMAKE_CURRENT_BINARY_DIR}/${LIB_NAME}-config-version.cmake - DESTINATION "opt/${PROJECT_NAME}/extra_cmake/lib/cmake/${LIB_NAME}") +ament_package() diff --git a/gz-cmake-config.cmake.in b/gz-cmake-config.cmake.in deleted file mode 100644 index ea834bb..0000000 --- a/gz-cmake-config.cmake.in +++ /dev/null @@ -1,3 +0,0 @@ -cmake_minimum_required(VERSION 3.10.2 FATAL_ERROR) - -find_package(@LIB_NAME@@LIB_VER_MAJOR@ ${@LIB_NAME@_FIND_VERSION} REQUIRED COMPONENTS ${@LIB_NAME@_FIND_COMPONENTS}) diff --git a/gz_cmake_vendor-extras.cmake.in b/gz_cmake_vendor-extras.cmake.in deleted file mode 100644 index d490202..0000000 --- a/gz_cmake_vendor-extras.cmake.in +++ /dev/null @@ -1 +0,0 @@ -list(PREPEND CMAKE_PREFIX_PATH "@CMAKE_INSTALL_PREFIX@/opt/@PROJECT_NAME@/extra_cmake") diff --git a/package.xml b/package.xml index 603e4a1..d09c3eb 100644 --- a/package.xml +++ b/package.xml @@ -12,7 +12,7 @@ --> 0.3.1 - Vendor package for: gz-cmake4 4.2.0 + Vendor package for: gz-cmake 5.0.0 Gazebo CMake : CMake Modules for Gazebo Projects @@ -29,7 +29,7 @@ cmake - gz-cmake4 + gz-cmake ament_cmake_copyright ament_cmake_lint_cmake