cmvr-es/cmake/FindMsQuic.cmake

51 lines
1.5 KiB
CMake
Raw Normal View History

# Locate an optional MsQuic installation without pulling in a second TLS runtime.
#
# The project supports either:
# -DCMVR_MSQUIC_ROOT=/path/to/msquic/prefix
# or a package placed below:
# dependency/<arch>/third_party/msquic/<version>/
#
# Result:
# MsQuic_FOUND
# MsQuic::msquic
include_guard(GLOBAL)
set(CMVR_MSQUIC_ROOT "" CACHE PATH "MsQuic installation prefix")
set(_cmvr_msquic_hints)
if(CMVR_MSQUIC_ROOT)
list(APPEND _cmvr_msquic_hints "${CMVR_MSQUIC_ROOT}")
endif()
if(DEFINED PROJECT_SOURCE_DIR AND DEFINED ARCH)
file(GLOB _cmvr_msquic_bundled_roots LIST_DIRECTORIES true
"${PROJECT_SOURCE_DIR}/dependency/${ARCH}/third_party/msquic/*")
list(APPEND _cmvr_msquic_hints
"${PROJECT_SOURCE_DIR}/dependency/${ARCH}/third_party/msquic"
${_cmvr_msquic_bundled_roots})
endif()
find_path(MsQuic_INCLUDE_DIR
NAMES msquic.h
HINTS ${_cmvr_msquic_hints}
PATH_SUFFIXES include)
find_library(MsQuic_LIBRARY
NAMES msquic libmsquic
HINTS ${_cmvr_msquic_hints}
PATH_SUFFIXES lib lib64 bin)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(MsQuic
REQUIRED_VARS MsQuic_INCLUDE_DIR MsQuic_LIBRARY)
if(MsQuic_FOUND AND NOT TARGET MsQuic::msquic)
add_library(MsQuic::msquic UNKNOWN IMPORTED)
set_target_properties(MsQuic::msquic PROPERTIES
IMPORTED_LOCATION "${MsQuic_LIBRARY}"
INTERFACE_INCLUDE_DIRECTORIES "${MsQuic_INCLUDE_DIR}")
endif()
mark_as_advanced(MsQuic_INCLUDE_DIR MsQuic_LIBRARY)