77 строки
4.0 KiB
CMake
77 строки
4.0 KiB
CMake
# Find the TAEF path that supports x86 and x64.
|
|
get_filename_component(WINDOWS_KIT_10_PATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows Kits\\Installed Roots;KitsRoot10]" ABSOLUTE CACHE)
|
|
get_filename_component(WINDOWS_KIT_81_PATH "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows Kits\\Installed Roots;KitsRoot81]" ABSOLUTE CACHE)
|
|
|
|
# Find the TAEF path, it will typically look something like this.
|
|
# "C:\Program Files (x86)\Windows Kits\8.1\Testing\Development\inc"
|
|
set(pfx86 "programfiles(x86)") # Work around behavior for environment names allows chars.
|
|
find_path(TAEF_INCLUDE_DIR # Set variable TAEF_INCLUDE_DIR
|
|
Wex.Common.h # Find a path with Wex.Common.h
|
|
HINTS "${CMAKE_SOURCE_DIR}/external/taef/build/Include"
|
|
HINTS "${WINDOWS_KIT_10_PATH}/Testing/Development/inc"
|
|
HINTS "${WINDOWS_KIT_81_PATH}/Testing/Development/inc"
|
|
DOC "path to TAEF header files"
|
|
HINTS
|
|
)
|
|
|
|
if ("${DXC_BUILD_ARCH}" STREQUAL "x64" )
|
|
find_library(TAEF_COMMON_LIBRARY NAMES Te.Common.lib
|
|
HINTS ${TAEF_INCLUDE_DIR}/../Library/x64
|
|
HINTS ${TAEF_INCLUDE_DIR}/../lib/x64 )
|
|
find_library(TAEF_WEX_COMMON_LIBRARY NAMES Wex.Common.lib
|
|
HINTS ${TAEF_INCLUDE_DIR}/../Library/x64
|
|
HINTS ${TAEF_INCLUDE_DIR}/../lib/x64 )
|
|
find_library(TAEF_WEX_LOGGER_LIBRARY NAMES Wex.Logger.lib
|
|
HINTS ${TAEF_INCLUDE_DIR}/../Library/x64
|
|
HINTS ${TAEF_INCLUDE_DIR}/../lib/x64 )
|
|
elseif (CMAKE_GENERATOR MATCHES "Visual Studio.*ARM" )
|
|
find_library(TAEF_COMMON_LIBRARY NAMES Te.Common.lib
|
|
HINTS ${TAEF_INCLUDE_DIR}/../Library/arm
|
|
HINTS ${TAEF_INCLUDE_DIR}/../lib/arm )
|
|
find_library(TAEF_WEX_COMMON_LIBRARY NAMES Wex.Common.lib
|
|
HINTS ${TAEF_INCLUDE_DIR}/../Library/arm
|
|
HINTS ${TAEF_INCLUDE_DIR}/../lib/arm )
|
|
find_library(TAEF_WEX_LOGGER_LIBRARY NAMES Wex.Logger.lib
|
|
HINTS ${TAEF_INCLUDE_DIR}/../Library/arm
|
|
HINTS ${TAEF_INCLUDE_DIR}/../lib/arm )
|
|
elseif ("${DXC_BUILD_ARCH}" STREQUAL "Win32" )
|
|
find_library(TAEF_COMMON_LIBRARY NAMES Te.Common.lib
|
|
HINTS ${TAEF_INCLUDE_DIR}/../Library/x86
|
|
HINTS ${TAEF_INCLUDE_DIR}/../lib/x86 )
|
|
find_library(TAEF_WEX_COMMON_LIBRARY NAMES Wex.Common.lib
|
|
HINTS ${TAEF_INCLUDE_DIR}/../Library/x86
|
|
HINTS ${TAEF_INCLUDE_DIR}/../lib/x86 )
|
|
find_library(TAEF_WEX_LOGGER_LIBRARY NAMES Wex.Logger.lib
|
|
HINTS ${TAEF_INCLUDE_DIR}/../Library/x86
|
|
HINTS ${TAEF_INCLUDE_DIR}/../lib/x86 )
|
|
endif ("${DXC_BUILD_ARCH}" STREQUAL "x64" )
|
|
|
|
set(TAEF_LIBRARIES ${TAEF_COMMON_LIBRARY} ${TAEF_WEX_COMMON_LIBRARY} ${TAEF_WEX_LOGGER_LIBRARY})
|
|
set(TAEF_INCLUDE_DIRS ${TAEF_INCLUDE_DIR})
|
|
|
|
# Prefer the version that supports both x86 and x64, else prefer latest.
|
|
if(EXISTS "${CMAKE_SOURCE_DIR}/external/taef/build/Binaries/amd64/te.exe")
|
|
set(TAEF_BIN_DIR "${CMAKE_SOURCE_DIR}/external/taef/build/Binaries")
|
|
elseif(EXISTS "${WINDOWS_KIT_10_PATH}/Testing/Runtimes/TAEF/x86/te.exe"
|
|
AND EXISTS "${WINDOWS_KIT_10_PATH}/Testing/Runtimes/TAEF/x64/te.exe")
|
|
set(TAEF_BIN_DIR "${WINDOWS_KIT_10_PATH}/Testing/Runtimes/TAEF")
|
|
elseif(EXISTS "${WINDOWS_KIT_81_PATH}/Testing/Runtimes/TAEF/x86/te.exe"
|
|
AND EXISTS "${WINDOWS_KIT_81_PATH}/Testing/Runtimes/TAEF/x64/te.exe")
|
|
set(TAEF_BIN_DIR "${WINDOWS_KIT_81_PATH}/Testing/Runtimes/TAEF")
|
|
elseif(EXISTS "${WINDOWS_KIT_10_PATH}")
|
|
message(ERROR "Unable to find TAEF binaries under Windows 10 SDK.")
|
|
elseif(EXISTS "${WINDOWS_KIT_81_PATH}")
|
|
message(ERROR "Unable to find TAEF binaries under Windows 8.1 or 10 SDK.")
|
|
else()
|
|
message(ERROR "Unable to find TAEF binaries or Windows 8.1 or 10 SDK.")
|
|
endif()
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
# handle the QUIETLY and REQUIRED arguments and set TAEF_FOUND to TRUE
|
|
# if all listed variables are TRUE
|
|
find_package_handle_standard_args(TAEF DEFAULT_MSG
|
|
TAEF_COMMON_LIBRARY TAEF_INCLUDE_DIR)
|
|
|
|
mark_as_advanced(TAEF_INCLUDE_DIR TAEF_LIBRARY)
|
|
|