63 lines
1.5 KiB
CMake
63 lines
1.5 KiB
CMake
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 ()
|
|
|
|
|