mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-23 00:02:38 -05:00
68 lines
2.2 KiB
CMake
68 lines
2.2 KiB
CMake
set(NUGET_SOURCE "https://nuget.pkg.github.com/qgis/index.json" CACHE STRING "Nuget source")
|
|
set(NUGET_USERNAME "qgis" CACHE STRING "Nuget user")
|
|
|
|
# Setup features (dependencies) based on cmake configuration
|
|
if(WITH_BINDINGS)
|
|
list(APPEND VCPKG_MANIFEST_FEATURES "bindings")
|
|
endif()
|
|
if(WITH_3D)
|
|
list(APPEND VCPKG_MANIFEST_FEATURES "3d")
|
|
endif()
|
|
if(WITH_GUI)
|
|
list(APPEND VCPKG_MANIFEST_FEATURES "gui")
|
|
endif()
|
|
|
|
# Binarycache can only be used on Windows or if mono is available.
|
|
find_program(_VCPKG_MONO mono)
|
|
if(NOT "${NUGET_TOKEN}" STREQUAL "" AND (CMAKE_HOST_WIN32 OR EXISTS "${_VCPKG_MONO}"))
|
|
if(CMAKE_HOST_WIN32)
|
|
set(_VCPKG_EXECUTABLE "$ENV{VCPKG_ROOT}/vcpkg.exe")
|
|
else()
|
|
set(_VCPKG_EXECUTABLE "$ENV{VCPKG_ROOT}/vcpkg")
|
|
endif()
|
|
|
|
execute_process(
|
|
COMMAND ${_VCPKG_EXECUTABLE} fetch nuget
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
OUTPUT_VARIABLE _FETCH_NUGET_OUTPUT)
|
|
|
|
STRING(REGEX REPLACE "\n" ";" _FETCH_NUGET_OUTPUT "${_FETCH_NUGET_OUTPUT}")
|
|
list(GET _FETCH_NUGET_OUTPUT -1 _NUGET_PATH)
|
|
|
|
if(CMAKE_HOST_WIN32)
|
|
set(_NUGET_EXE ${_NUGET_PATH})
|
|
else()
|
|
set(_NUGET_EXE ${_VCPKG_MONO} ${_NUGET_PATH})
|
|
endif()
|
|
|
|
set(_CONFIG_PATH "${CMAKE_BINARY_DIR}/github-NuGet.Config")
|
|
|
|
configure_file(
|
|
"${CMAKE_SOURCE_DIR}/cmake/NuGet.Config.in"
|
|
"${_CONFIG_PATH}"
|
|
@ONLY)
|
|
execute_process(
|
|
COMMAND ${_NUGET_EXE} setapikey "${NUGET_TOKEN}" -src ${NUGET_SOURCE} -configfile ${_CONFIG_PATH}
|
|
OUTPUT_VARIABLE _OUTPUT
|
|
ERROR_VARIABLE _ERROR
|
|
RESULT_VARIABLE _RESULT)
|
|
if(_RESULT EQUAL 0)
|
|
message(STATUS "Setup nuget api key - done")
|
|
else()
|
|
message(STATUS "Setup nuget api key - failed")
|
|
message(STATUS "Output:")
|
|
message(STATUS ${_OUTPUT})
|
|
message(STATUS "Error:")
|
|
message(STATUS ${_ERROR})
|
|
endif()
|
|
|
|
file(TO_NATIVE_PATH "${_CONFIG_PATH}" _CONFIG_PATH_NATIVE)
|
|
set(ENV{VCPKG_BINARY_SOURCES} "$ENV{VCPKG_BINARY_SOURCES};nugetconfig,${_CONFIG_PATH_NATIVE},readwrite")
|
|
endif()
|
|
|
|
set(CMAKE_TOOLCHAIN_FILE "$ENV{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake")
|
|
set(VCPKG_MANIFEST_DIR "${CMAKE_SOURCE_DIR}/vcpkg")
|
|
# Copies DLLs built by vcpkg when an install() command is run.
|
|
# Only works on Windows and even there not reliably ...
|
|
# set(X_VCPKG_APPLOCAL_DEPS_INSTALL ON CACHE BOOL "Copy dependency DLLs on install")
|