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 v) string(REPLACE "," "" version "${v}") 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 ()