2016-12-28 22:52:27 +03:00
|
|
|
# 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
|
2020-12-02 05:51:35 +03:00
|
|
|
HINTS "$ENV{TAEF_PATH}/../../../Include"
|
|
|
|
HINTS "$ENV{TAEF_PATH}/../../../Development/inc"
|
2017-04-11 08:53:37 +03:00
|
|
|
HINTS "${CMAKE_SOURCE_DIR}/external/taef/build/Include"
|
2016-12-28 22:52:27 +03:00
|
|
|
HINTS "${WINDOWS_KIT_10_PATH}/Testing/Development/inc"
|
|
|
|
HINTS "${WINDOWS_KIT_81_PATH}/Testing/Development/inc"
|
|
|
|
DOC "path to TAEF header files"
|
|
|
|
HINTS
|
|
|
|
)
|
|
|
|
|
2020-12-02 05:51:35 +03:00
|
|
|
macro(find_taef_libraries targetplatform)
|
|
|
|
set(TAEF_LIBRARIES)
|
|
|
|
foreach(L Te.Common.lib Wex.Common.lib Wex.Logger.lib)
|
|
|
|
find_library(TAEF_LIB_${L} NAMES ${L}
|
|
|
|
HINTS ${TAEF_INCLUDE_DIR}/../Library/${targetplatform}
|
|
|
|
HINTS ${TAEF_INCLUDE_DIR}/../lib/${targetplatform})
|
|
|
|
set(TAEF_LIBRARIES ${TAEF_LIBRARIES} ${TAEF_LIB_${L}})
|
|
|
|
endforeach()
|
|
|
|
set(TAEF_COMMON_LIBRARY ${TAEF_LIB_Te.Common.lib})
|
|
|
|
endmacro(find_taef_libraries)
|
|
|
|
|
2022-11-22 18:33:06 +03:00
|
|
|
if(CMAKE_C_COMPILER_ARCHITECTURE_ID STREQUAL "ARM64EC")
|
2020-12-02 05:51:35 +03:00
|
|
|
find_taef_libraries(arm64)
|
2022-11-29 21:37:10 +03:00
|
|
|
elseif(CMAKE_C_COMPILER_ARCHITECTURE_ID STREQUAL "ARMV7")
|
|
|
|
find_taef_libraries(arm)
|
2022-11-22 18:33:06 +03:00
|
|
|
else()
|
|
|
|
find_taef_libraries(${CMAKE_C_COMPILER_ARCHITECTURE_ID})
|
|
|
|
endif()
|
2016-12-28 22:52:27 +03:00
|
|
|
|
|
|
|
set(TAEF_INCLUDE_DIRS ${TAEF_INCLUDE_DIR})
|
|
|
|
|
2020-12-02 05:51:35 +03:00
|
|
|
# Get TAEF binaries path from the header location
|
|
|
|
set(TAEF_NUGET_BIN ${TAEF_INCLUDE_DIR}/../Binaries/Release)
|
|
|
|
set(TAEF_SDK_BIN ${TAEF_INCLUDE_DIR}/../../Runtimes/TAEF)
|
|
|
|
|
2023-02-03 03:24:03 +03:00
|
|
|
if ((CMAKE_GENERATOR_PLATFORM STREQUAL "x64") OR ("${CMAKE_C_COMPILER_ARCHITECTURE_ID}" STREQUAL "x64"))
|
|
|
|
set(TAEF_BIN_ARCH "amd64")
|
|
|
|
set(TAEF_ARCH "x64")
|
|
|
|
elseif ((CMAKE_GENERATOR_PLATFORM STREQUAL "x86") OR ("${CMAKE_C_COMPILER_ARCHITECTURE_ID}" STREQUAL "x86"))
|
|
|
|
set(TAEF_BIN_ARCH "x86")
|
|
|
|
set(TAEF_ARCH "x86")
|
|
|
|
elseif ((CMAKE_GENERATOR_PLATFORM MATCHES "ARM64.*") OR ("${CMAKE_C_COMPILER_ARCHITECTURE_ID}" MATCHES "ARM64.*"))
|
|
|
|
set(TAEF_BIN_ARCH "arm64")
|
|
|
|
set(TAEF_ARCH "arm64")
|
|
|
|
elseif ((CMAKE_GENERATOR_PLATFORM MATCHES "ARM.*") OR ("${CMAKE_C_COMPILER_ARCHITECTURE_ID}" MATCHES "ARM.*"))
|
|
|
|
set(TAEF_BIN_ARCH "arm")
|
|
|
|
set(TAEF_ARCH "arm")
|
|
|
|
endif((CMAKE_GENERATOR_PLATFORM STREQUAL "x64") OR ("${CMAKE_C_COMPILER_ARCHITECTURE_ID}" STREQUAL "x64"))
|
|
|
|
|
|
|
|
set (TAEF_ARCH ${TAEF_ARCH} CACHE INTERNAL "arch for taef test")
|
2023-01-06 08:07:36 +03:00
|
|
|
find_program(TAEF_EXECUTABLE te.exe PATHS
|
2023-04-17 21:51:19 +03:00
|
|
|
$ENV{TAEF_PATH}
|
2023-02-03 03:24:03 +03:00
|
|
|
${CMAKE_SOURCE_DIR}/external/taef/build/Binaries/${TAEF_BIN_ARCH}
|
|
|
|
$ENV{HLSL_TAEF_DIR}/${TAEF_BIN_ARCH}
|
2023-07-25 23:43:21 +03:00
|
|
|
${TAEF_NUGET_BIN}/${TAEF_ARCH}
|
|
|
|
${TAEF_SDK_BIN}/${TAEF_ARCH}
|
2023-01-06 08:07:36 +03:00
|
|
|
${WINDOWS_KIT_10_PATH}
|
|
|
|
${WINDOWS_KIT_81_PATH}
|
|
|
|
)
|
|
|
|
|
|
|
|
if (TAEF_EXECUTABLE)
|
|
|
|
get_filename_component(TAEF_BIN_DIR ${TAEF_EXECUTABLE} DIRECTORY)
|
2016-12-28 22:52:27 +03:00
|
|
|
else()
|
2023-04-17 21:51:19 +03:00
|
|
|
message(FATAL_ERROR "Unable to find TAEF binaries.")
|
2016-12-28 22:52:27 +03:00
|
|
|
endif()
|
|
|
|
|
2023-01-27 04:34:56 +03:00
|
|
|
|
2016-12-28 22:52:27 +03:00
|
|
|
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)
|