70 lines
1.6 KiB
CMake
70 lines
1.6 KiB
CMake
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)
|
|
|