2016-12-28 22:52:27 +03:00
|
|
|
# Find the DIA SDK path.
|
2020-09-18 03:42:08 +03:00
|
|
|
# It will typically look something like this:
|
|
|
|
# C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\DIA SDK\include
|
2016-12-28 22:52:27 +03:00
|
|
|
|
2020-09-18 03:42:08 +03:00
|
|
|
# CMAKE_GENERATOR_INSTANCE has the location of Visual Studio used
|
|
|
|
# i.e. C:/Program Files (x86)/Microsoft Visual Studio/2019/Community
|
|
|
|
set(VS_PATH ${CMAKE_GENERATOR_INSTANCE})
|
|
|
|
get_filename_component(VS_DIA_INC_PATH "${VS_PATH}/DIA SDK/include" ABSOLUTE CACHE)
|
2017-03-14 02:21:15 +03:00
|
|
|
|
2019-09-18 03:13:38 +03:00
|
|
|
# Starting in VS 15.2, vswhere is included.
|
|
|
|
# Unclear what the right component to search for is, might be Microsoft.VisualStudio.Component.VC.DiagnosticTools
|
|
|
|
# (although the friendly name of that is C++ profiling tools). The toolset is the most likely target.
|
2020-09-18 03:42:08 +03:00
|
|
|
set(PROGRAMFILES_X86 "ProgramFiles(x86)")
|
2019-09-18 03:13:38 +03:00
|
|
|
execute_process(
|
2020-10-06 01:51:37 +03:00
|
|
|
COMMAND "$ENV{${PROGRAMFILES_X86}}/Microsoft Visual Studio/Installer/vswhere.exe" -latest -products * -requires Microsoft.VisualStudio.Component.VC.Tools.x86.x64 -property installationPath
|
2019-09-18 03:13:38 +03:00
|
|
|
OUTPUT_VARIABLE VSWHERE_LATEST
|
|
|
|
ERROR_QUIET
|
|
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
|
|
|
)
|
|
|
|
|
2016-12-28 22:52:27 +03:00
|
|
|
find_path(DIASDK_INCLUDE_DIR # Set variable DIASDK_INCLUDE_DIR
|
|
|
|
dia2.h # Find a path with dia2.h
|
2020-09-18 03:42:08 +03:00
|
|
|
HINTS "${VS_DIA_INC_PATH}"
|
2019-09-18 03:13:38 +03:00
|
|
|
HINTS "${VSWHERE_LATEST}/DIA SDK/include"
|
2016-12-28 22:52:27 +03:00
|
|
|
DOC "path to DIA SDK header files"
|
|
|
|
)
|
|
|
|
|
2020-11-04 04:58:55 +03:00
|
|
|
|
2022-11-22 18:33:06 +03:00
|
|
|
if ((CMAKE_GENERATOR_PLATFORM STREQUAL "x64") OR ("${CMAKE_C_COMPILER_ARCHITECTURE_ID}" STREQUAL "x64"))
|
2022-10-18 04:49:35 +03:00
|
|
|
find_library(DIASDK_GUIDS_LIBRARY NAMES diaguids.lib HINTS ${DIASDK_INCLUDE_DIR}/../lib/amd64 )
|
2022-11-22 18:33:06 +03:00
|
|
|
elseif ((CMAKE_GENERATOR_PLATFORM STREQUAL "ARM") OR ("${CMAKE_C_COMPILER_ARCHITECTURE_ID}" STREQUAL "ARM"))
|
2022-10-18 04:49:35 +03:00
|
|
|
find_library(DIASDK_GUIDS_LIBRARY NAMES diaguids.lib HINTS ${DIASDK_INCLUDE_DIR}/../lib/arm )
|
2022-11-22 18:33:06 +03:00
|
|
|
elseif ((CMAKE_GENERATOR_PLATFORM MATCHES "ARM64.*") OR ("${CMAKE_C_COMPILER_ARCHITECTURE_ID}" MATCHES "ARM64.*"))
|
2022-10-18 04:49:35 +03:00
|
|
|
find_library(DIASDK_GUIDS_LIBRARY NAMES diaguids.lib HINTS ${DIASDK_INCLUDE_DIR}/../lib/arm64 )
|
2022-11-22 18:33:06 +03:00
|
|
|
else ((CMAKE_GENERATOR_PLATFORM STREQUAL "x64") OR ("${CMAKE_C_COMPILER_ARCHITECTURE_ID}" STREQUAL "x64"))
|
2022-10-18 04:49:35 +03:00
|
|
|
find_library(DIASDK_GUIDS_LIBRARY NAMES diaguids.lib HINTS ${DIASDK_INCLUDE_DIR}/../lib )
|
2022-11-22 18:33:06 +03:00
|
|
|
endif((CMAKE_GENERATOR_PLATFORM STREQUAL "x64") OR ("${CMAKE_C_COMPILER_ARCHITECTURE_ID}" STREQUAL "x64"))
|
2016-12-28 22:52:27 +03:00
|
|
|
|
|
|
|
set(DIASDK_LIBRARIES ${DIASDK_GUIDS_LIBRARY})
|
|
|
|
set(DIASDK_INCLUDE_DIRS ${DIASDK_INCLUDE_DIR})
|
|
|
|
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
|
|
# handle the QUIETLY and REQUIRED arguments and set DIASDK_FOUND to TRUE
|
|
|
|
# if all listed variables are TRUE
|
2020-05-11 22:23:20 +03:00
|
|
|
find_package_handle_standard_args(DiaSDK DEFAULT_MSG
|
2016-12-28 22:52:27 +03:00
|
|
|
DIASDK_LIBRARIES DIASDK_INCLUDE_DIR)
|
|
|
|
|
2021-10-29 02:33:17 +03:00
|
|
|
mark_as_advanced(DIASDK_INCLUDE_DIRS DIASDK_LIBRARIES)
|