From 734a5cf133fb541b7704985d3c6db513e3188e6c Mon Sep 17 00:00:00 2001 From: Juan Cruz Viotti Date: Mon, 12 Feb 2024 18:27:09 -0400 Subject: [PATCH] Support component-based `find_package` (#756) Signed-off-by: Juan Cruz Viotti --- config.cmake.in | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/config.cmake.in b/config.cmake.in index a6560a20..c94c150b 100644 --- a/config.cmake.in +++ b/config.cmake.in @@ -1,8 +1,27 @@ @PACKAGE_INIT@ +# Support both casing styles +list(APPEND JSONBINPACK_COMPONENTS ${JSONBinPack_FIND_COMPONENTS}) +list(APPEND JSONBINPACK_COMPONENTS ${jsonbinpack_FIND_COMPONENTS}) +if(NOT JSONBINPACK_COMPONENTS) + list(APPEND JSONBINPACK_COMPONENTS runtime) + list(APPEND JSONBINPACK_COMPONENTS compiler) +endif() + include(CMakeFindDependencyMacro) find_dependency(JSONToolkit COMPONENTS uri json jsonpointer jsonschema) include("${CMAKE_CURRENT_LIST_DIR}/sourcemeta_jsonbinpack_runtime.cmake") include("${CMAKE_CURRENT_LIST_DIR}/sourcemeta_jsonbinpack_compiler.cmake") + +foreach(component ${JSONBINPACK_COMPONENTS}) + if(component STREQUAL "runtime") + include("${CMAKE_CURRENT_LIST_DIR}/sourcemeta_jsonbinpack_runtime.cmake") + elseif(component STREQUAL "compiler") + include("${CMAKE_CURRENT_LIST_DIR}/sourcemeta_jsonbinpack_compiler.cmake") + else() + message(FATAL_ERROR "Unknown JSON BinPack component: ${component}") + endif() +endforeach() + check_required_components("@PROJECT_NAME@")