File: FindBlake3.cmake

package info (click to toggle)
ccache 4.12.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,192 kB
  • sloc: cpp: 47,336; asm: 28,570; sh: 8,709; ansic: 5,357; python: 685; perl: 68; makefile: 23
file content (30 lines) | stat: -rw-r--r-- 1,250 bytes parent folder | download | duplicates (2)
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
mark_as_advanced(BLAKE3_INCLUDE_DIR)
mark_as_advanced(BLAKE3_LIBRARY)

if(DEP_BLAKE3 STREQUAL "BUNDLED")
  message(STATUS "Using bundled Blake3 as requested")
else()
  find_path(BLAKE3_INCLUDE_DIR blake3.h)
  find_library(BLAKE3_LIBRARY blake3)
  if(BLAKE3_INCLUDE_DIR)
    file(READ "${BLAKE3_INCLUDE_DIR}/blake3.h" _blake3_h)
    string(REGEX MATCH "#define BLAKE3_VERSION_STRING \"([0-9]+).([0-9]+).*([0-9]+)\"" _ "${_blake3_h}")
    set(_blake3_version_string "${CMAKE_MATCH_1}.${CMAKE_MATCH_2}.${CMAKE_MATCH_3}")
    if(NOT "${CMAKE_MATCH_0}" STREQUAL "" AND "${_blake3_version_string}" VERSION_GREATER_EQUAL "${Blake3_FIND_VERSION}")
      if(BLAKE3_LIBRARY)
        message(STATUS "Using system Blake3 (${BLAKE3_LIBRARY})")
        add_library(dep_blake3 UNKNOWN IMPORTED)
        set_target_properties(
          dep_blake3
          PROPERTIES
          INTERFACE_INCLUDE_DIRECTORIES "${BLAKE3_INCLUDE_DIR}"
          IMPORTED_LOCATION "${BLAKE3_LIBRARY}"
        )
      endif()
      register_dependency(Blake3 "SYSTEM (${BLAKE3_LIBRARY})" "${_blake3_version_string}")
    endif()
  endif()
  if(NOT TARGET dep_blake3)
    message(STATUS "Using bundled Blake3 since Blake3>=${Blake3_FIND_VERSION} was not found locally")
  endif()
endif()