From 4b6ca78fcd591a22c8962c18530382c789b8d2f3 Mon Sep 17 00:00:00 2001 From: Edgar Date: Fri, 22 Oct 2021 12:21:05 +0200 Subject: [PATCH] :tada: Initial commit --- DumpDepsArgs.cmake | 69 ++++++++++++++++++++++++++++++++++++++++++ DumpDepsVersions.cmake | 61 +++++++++++++++++++++++++++++++++++++ README.md | 1 + 3 files changed, 131 insertions(+) create mode 100644 DumpDepsArgs.cmake create mode 100644 DumpDepsVersions.cmake create mode 100644 README.md diff --git a/DumpDepsArgs.cmake b/DumpDepsArgs.cmake new file mode 100644 index 0000000..8cc4bc9 --- /dev/null +++ b/DumpDepsArgs.cmake @@ -0,0 +1,69 @@ +set(_PREFIX "ROR_") +set(USE_PACKAGE_MANAGER TRUE) + +include(Macros.cmake) + +function(add_external_lib package conan_package_name) + list(REMOVE_AT ARGV 0 1) + better_parse_args( + . REQUIRED FIND_PACKAGE ALWAYS_ALLOW_CONAN_FALLBACK HAS_ONLY_DEBUG_RELEASE + - OPTION_NAME SYMBOL INTERFACE_NAME CONAN_PKG_NAME + + CONAN_OPTIONS FIND_PACKAGE_OPTIONS PKG_CONFIG + ) + + + if (ARG_OPTION_NAME) + set(option_name_base ${ARG_OPTION_NAME}) + else () + string(TOUPPER "${package}" option_name_base) + endif () + + if (ARG_ALWAYS_ALLOW_CONAN_FALLBACK) + set(system_only OFF) + else () + set(system_only ${${_PREFIX}FORCE_SYSTEM_DEPENDENCIES}) + endif () + + if (ARG_FIND_PACKAGE_OPTIONS) + set(ARG_FIND_PACKAGE ON) + endif () + + if (ARG_INTERFACE_NAME) + set(interface_name ${ARG_INTERFACE_NAME}) + else () + set(interface_name "${package}::${package}") + endif () + + if (ARG_SYMBOL) + set(symbol ${ARG_SYMBOL}) + else () + set(symbol ${option_name_base}) + endif () + + # Generate CMake option + set(option_name ${_PREFIX}USE_${option_name_base}) + set(option_desc "CONAN") + + if (ARG_PKG_CONFIG OR ARG_FIND_PACKAGE) + set(sysopt "SYSTEM") + string(PREPEND option_desc "SYSTEM, ") + set(default "${${_PREFIX}LIB_PREFERENCE}") + else () + set(default "CONAN") + endif () + + if (NOT ARG_REQUIRED) + set(reqopt "OFF") + string(APPEND option_desc ", OFF") + endif () + + message("| ${option_name} | ${option_desc} |") + +endfunction() + + +message("| Name | Values |") +message("|------|--------|") + +include(DependenciesConfig.cmake) + diff --git a/DumpDepsVersions.cmake b/DumpDepsVersions.cmake new file mode 100644 index 0000000..bf10006 --- /dev/null +++ b/DumpDepsVersions.cmake @@ -0,0 +1,61 @@ +include(Macros.cmake) +cmake_minimum_required(VERSION 3.16) + +function(add_external_lib package conan_package_name) + list(REMOVE_AT ARGV 0 1) + better_parse_args( + . REQUIRED FIND_PACKAGE ALWAYS_ALLOW_CONAN_FALLBACK HAS_ONLY_DEBUG_RELEASE + - OPTION_NAME SYMBOL INTERFACE_NAME CONAN_PKG_NAME + + CONAN_OPTIONS FIND_PACKAGE_OPTIONS PKG_CONFIG + ) + + if(ARG_PKG_CONFIG) + string(REPLACE " " ";" tmp "${ARG_PKG_CONFIG}") + list(GET tmp 1 range) + list(GET tmp 2 version) + else() + string(REPLACE "/" ";" tmp "${conan_package_name}") + string(REPLACE "@" ";" tmp "${tmp}") + list(GET tmp 1 version) + endif() + + + if(${ARG_REQUIRED}) + list(APPEND REQUIRED_PKGS "${package}|${range} ${version}") + lift_var(REQUIRED_PKGS) + else() + list(APPEND OPTIONAL_PKGS "${package}|${range} ${version}") + lift_var(OPTIONAL_PKGS) + endif() + +endfunction() + +macro(getdata package_list) + string(REPLACE "|" ";" package_list "${package_list}") + list(GET package_list 0 name) + list(GET package_list 1 version) + message("* ${name}: ${version}") +endmacro() + + +include(DependenciesConfig.cmake) + + +message(" +### Required dependencies +") + +foreach (package_raw ${REQUIRED_PKGS}) + getdata("${package_raw}") +endforeach () + +message(" + +### Optional dependencies +") + +foreach (package_raw ${OPTIONAL_PKGS}) + getdata("${package_raw}") +endforeach () + + diff --git a/README.md b/README.md new file mode 100644 index 0000000..c82c85c --- /dev/null +++ b/README.md @@ -0,0 +1 @@ +DumpConanInfo