FreeCAD

Форк
0
/
SetupLibFmt.cmake 
48 строк · 2.0 Кб
1
macro(SetupLibFmt)
2

3
       # This internet check idea is borrowed from:
4
       # https://stackoverflow.com/questions/62214621/how-to-check-for-internet-connection-with-cmake-automatically-prevent-fails-if
5

6
       if(FREECAD_USE_EXTERNAL_FMT)
7
              find_package(fmt QUIET)
8
       endif()
9

10
       if(fmt_FOUND)
11
              message(STATUS "find_package() was used to locate fmt version ${fmt_VERSION}")
12
       else()
13

14
              message(STATUS "Checking for connection to GitHub...")
15
              if (WIN32)
16
                     set(ping_command "ping /n 1 /w 3 github.com")
17
              else()
18
                     set(ping_command "ping -c 1 -W 3 github.com")
19
              endif()
20
              execute_process(
21
                     COMMAND ${ping_command}
22
                     RESULT_VARIABLE NO_CONNECTION
23
              )
24
              if(NO_CONNECTION GREATER 0)
25
                     set(FETCHCONTENT_UPDATES_DISCONNECTED ON)
26
                     message(WARNING "NO INTERNET CONNECTION: Using disconnected mode for FetchContent updates")
27
              else()
28
                     message(STATUS "GitHub connection established for FetchContent")
29
                     set(FETCHCONTENT_UPDATES_DISCONNECTED OFF)
30
              endif()
31

32
              include(FetchContent)
33
              if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.24.0")
34
                     cmake_policy(SET CMP0135 NEW)
35
              endif()
36
              FetchContent_Declare(fmt
37
                      URL https://github.com/fmtlib/fmt/archive/refs/tags/9.1.0.zip
38
                      URL_MD5 e6754011ff56bfc37631fcc90961e377
39
              )
40
              FetchContent_MakeAvailable(fmt)
41
              set_target_properties(fmt PROPERTIES POSITION_INDEPENDENT_CODE ON)
42
              if(${fmt_POPULATED})
43
                     message(STATUS "fmt was downloaded using FetchContent into ${fmt_SOURCE_DIR}")
44
              else()
45
                     message(ERROR "Failed to install the fmt library")
46
              endif()
47
       endif()
48
endmacro()
49

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.