|  | 
|  | 1 | +# SPDX-FileCopyrightText: Silicon Laboratories Inc. <https://www.silabs.com/> | 
|  | 2 | +# SPDX-License-Identifier: Zlib | 
|  | 3 | + | 
|  | 4 | +# This recipe allows to download Unify Core | 
|  | 5 | +# Origin: https://github.com/SiliconLabs/UnifySDK/pulls?q=is%3Apr+author%3Arzr | 
|  | 6 | +# It can be used by projects which are depending on it | 
|  | 7 | +# Feel free to copy this (up to date) file everywhere it is needed | 
|  | 8 | +# Typically it is located in "cmake/modules/FindUnifySDK.cmake" | 
|  | 9 | + | 
|  | 10 | +include(FetchContent) | 
|  | 11 | + | 
|  | 12 | +# Standard cmake paths, you probably don't want/need to change | 
|  | 13 | +if(NOT DEFINED UNIFYSDK_SOURCE_DIR) | 
|  | 14 | +  set(UNIFYSDK_SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/_deps/unifysdk-src") | 
|  | 15 | +endif() | 
|  | 16 | +if(NOT DEFINED UNIFYSDK_BINARY_DIR) | 
|  | 17 | +  set(UNIFYSDK_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/_deps/unifysdk-build") | 
|  | 18 | +endif() | 
|  | 19 | + | 
|  | 20 | +if(NOT DEFINED UNIFYSDK_GIT_REPOSITORY) | 
|  | 21 | +  if(DEFINED ENV{UNIFYSDK_GIT_REPOSITORY}) | 
|  | 22 | +    set(UNIFYSDK_GIT_REPOSITORY $ENV{UNIFYSDK_GIT_REPOSITORY}) | 
|  | 23 | +  else() | 
|  | 24 | +    set(UNIFYSDK_GIT_REPOSITORY "") | 
|  | 25 | +  endif() | 
|  | 26 | +endif() | 
|  | 27 | +if(UNIFYSDK_GIT_REPOSITORY STREQUAL "") | 
|  | 28 | +  set(UNIFYSDK_GIT_REPOSITORY "https://github.com/SiliconLabs/UnifySDK") | 
|  | 29 | +endif() | 
|  | 30 | + | 
|  | 31 | +if(NOT DEFINED UNIFYSDK_GIT_TAG) | 
|  | 32 | +  if(DEFINED ENV{UNIFYSDK_GIT_TAG}) | 
|  | 33 | +    set(UNIFYSDK_GIT_TAG $ENV{UNIFYSDK_GIT_TAG}) | 
|  | 34 | +  else() | 
|  | 35 | +    set(UNIFYSDK_GIT_TAG "") | 
|  | 36 | +  endif() | 
|  | 37 | +endif() | 
|  | 38 | + | 
|  | 39 | +if(UNIFYSDK_GIT_TAG STREQUAL "") | 
|  | 40 | +  set(UNIFYSDK_GIT_TAG "main") | 
|  | 41 | +endif() | 
|  | 42 | + | 
|  | 43 | +FetchContent_Declare( | 
|  | 44 | +  UnifySDK | 
|  | 45 | +  GIT_REPOSITORY ${UNIFYSDK_GIT_REPOSITORY} | 
|  | 46 | +  GIT_TAG        ${UNIFYSDK_GIT_TAG} | 
|  | 47 | +  GIT_SUBMODULES_RECURSE True | 
|  | 48 | +  GIT_SHALLOW 1 | 
|  | 49 | +) | 
|  | 50 | + | 
|  | 51 | +message(STATUS "${CMAKE_PROJECT_NAME}: Depends: ${UNIFYSDK_GIT_REPOSITORY}#${UNIFYSDK_GIT_TAG}") | 
|  | 52 | +message(STATUS "UnifySDK Sources: ${UNIFYSDK_SOURCE_DIR}") | 
|  | 53 | +message(STATUS "UnifySDK Binaries: ${UNIFYSDK_BINARY_DIR}") | 
|  | 54 | + | 
|  | 55 | +# Pull only once, this has be refreshed by developer | 
|  | 56 | +if(NOT EXISTS ${CMAKE_BINARY_DIR}/_deps/unifysdk-src) | 
|  | 57 | +  if(UNIFYSDK_GIT_TAG STREQUAL "main") | 
|  | 58 | +    message(WARNING "Using: ${UNIFYSDK_GIT_TAG} TODO: Pin stable revision once supported") | 
|  | 59 | +  endif() | 
|  | 60 | +  FetchContent_MakeAvailable(UnifySDK) | 
|  | 61 | +else() | 
|  | 62 | +  message(STATUS "Using UnifySDK from previous fetch (may be outdated)") | 
|  | 63 | +  add_subdirectory(${CMAKE_BINARY_DIR}/_deps/unifysdk-src) | 
|  | 64 | +endif() | 
0 commit comments