blob: 8fbeacf6e4346b217d0408a2b64aaa5919129a29 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
function(ThirdParty_URL VARNAME)
# PACKAGE (mandatory)
# VERSION (mandatory)
# ENV ... (optional, for backward compatibility)
include(CMakeParseArguments)
cmake_parse_arguments(ARG "" "PACKAGE;VERSION;ENV" "" ${ARGN})
if(NOT ARG_PACKAGE)
message(FATAL_ERROR "PACKAGE is missing")
endif(NOT ARG_PACKAGE)
if(NOT ARG_VERSION)
message(FATAL_ERROR "VERSION is missing")
endif(NOT ARG_VERSION)
set(PACKAGE_INFO_DIR "${NNCC_PROJECT_SOURCE_DIR}/infra/nncc/3rdparty/${ARG_PACKAGE}/${ARG_VERSION}")
set(PACKAGE_URL_FILE "${PACKAGE_INFO_DIR}/URL.default")
set(PACKAGE_URL_LOCAL_FILE "${PACKAGE_INFO_DIR}/URL.local")
if(NOT EXISTS "${PACKAGE_URL_FILE}")
message(FATAL_ERROR "URL file does not exist")
endif()
# Read URL from "[PACKAGE NAME]/[PACKAGE VERSION]/URL.default"
file(STRINGS "${PACKAGE_URL_FILE}" VALUE)
# Read URL from "[PACKAGE NAME]/[PACAKGE VERSION]/URL.local" (if it exists)
if(EXISTS "${PACKAGE_URL_LOCAL_FILE}")
file(STRINGS "${PACKAGE_URL_LOCAL_FILE}" VALUE)
endif()
# Read URL from process environment (if ENV option is specified)
if(ARG_ENV)
if(DEFINED ENV{${ARG_ENV}})
set(VALUE $ENV{${ARG_ENV}})
endif()
endif(ARG_ENV)
set("${VARNAME}" "${VALUE}" PARENT_SCOPE)
endfunction(ThirdParty_URL)
|