# Finds the Microsoft DIA SDK and sets DIASDK_FOUND and related variables. # # This module is intended to be used both internally by LLVM's build system and # by consuming projects when loading LLVMConfig.cmake. # # LLVM_WINSYSROOT may be set for locating the DIA SDK. # # If successful, the following variables will be defined: # DIASDK_FOUND # DIASDK_INCLUDE_DIR # DIASDK_LIBRARIES # # Additionally, the following import target will be defined: # DIASDK::Diaguids if(NOT WIN32) set(DIASDK_FOUND FALSE) return() endif() if(LLVM_WINSYSROOT) set(MSVC_DIA_SDK_DIR "${LLVM_WINSYSROOT}/DIA SDK" CACHE PATH "Path to the DIA SDK") elseif($ENV{VSINSTALLDIR}) set(MSVC_DIA_SDK_DIR "$ENV{VSINSTALLDIR}DIA SDK" CACHE PATH "Path to the DIA SDK") elseif(NOT DEFINED MSVC_DIA_SDK_DIR) message(STATUS "MSVC_DIA_SDK_DIR not set, and could not be inferred. DIA SDK " "may not be found.") endif() find_path(DIASDK_INCLUDE_DIR NAMES dia2.h PATHS "${MSVC_DIA_SDK_DIR}/include" NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH ) if(IS_DIRECTORY "${MSVC_DIA_SDK_DIR}") set(_DIA_SDK_LIB_DIR "${MSVC_DIA_SDK_DIR}/lib") if("$ENV{VSCMD_ARG_TGT_ARCH}" STREQUAL "arm64") set(_DIA_SDK_LIB_DIR "${_DIA_SDK_LIB_DIR}/arm64") elseif("$ENV{VSCMD_ARG_TGT_ARCH}" STREQUAL "arm") set(_DIA_SDK_LIB_DIR "${_DIA_SDK_LIB_DIR}/arm") elseif(CMAKE_SIZEOF_VOID_P EQUAL 8) set(_DIA_SDK_LIB_DIR "${_DIA_SDK_LIB_DIR}/amd64") endif() find_library(DIASDK_LIBRARIES NAMES diaguids PATHS "${_DIA_SDK_LIB_DIR}" NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH ) endif() include(FindPackageHandleStandardArgs) find_package_handle_standard_args( DIASDK FOUND_VAR DIASDK_FOUND REQUIRED_VARS DIASDK_INCLUDE_DIR DIASDK_LIBRARIES ) mark_as_advanced(DIASDK_INCLUDE_DIR DIASDK_LIBRARIES) if(DIASDK_FOUND) if(NOT TARGET DIASDK::Diaguids) add_library(DIASDK::Diaguids UNKNOWN IMPORTED) set_target_properties(DIASDK::Diaguids PROPERTIES IMPORTED_LOCATION "${DIASDK_LIBRARIES}" INTERFACE_INCLUDE_DIRECTORIES "${DIASDK_INCLUDE_DIR}" ) endif() endif()