Repository navigation
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
125 lines (103 loc) · 4.19 KB
/
Copy pathCMakeLists.txt
File metadata and controls
125 lines (103 loc) · 4.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#/ Copyright (C) Advanced Micro Devices, Inc. All rights reserved.
cmake_minimum_required(VERSION 3.25)
set(GPA_CMAKE_MODULES_DIR ${CMAKE_CURRENT_SOURCE_DIR}/build/cmake_modules)
set(GPA_MAJOR_VERSION 4)
set(GPA_MINOR_VERSION 4)
set(GPA_UPDATE_VERSION 1)
if(NOT DEFINED build)
set(GPA_BUILD_NUMBER 0)
else()
set(GPA_BUILD_NUMBER ${build})
endif()
set(ProjectSuffix "-x64")
project(GPUPerfAPI${ProjectSuffix} VERSION ${GPA_MAJOR_VERSION}.${GPA_MINOR_VERSION}.${GPA_UPDATE_VERSION}.${GPA_BUILD_NUMBER} LANGUAGES C CXX)
include(${GPA_CMAKE_MODULES_DIR}/defs.cmake)
include(${GPA_CMAKE_MODULES_DIR}/build_flags.cmake)
include(${GPA_CMAKE_MODULES_DIR}/utils.cmake)
include(${GPA_CMAKE_MODULES_DIR}/common.cmake)
include(${GPA_CMAKE_MODULES_DIR}/fetch_dependencies.cmake)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
set(CMAKE_MSVC_DEBUG_INFORMATION_FORMAT "Embedded")
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
set(CMAKE_C_VISIBILITY_PRESET "hidden")
set(CMAKE_CXX_VISIBILITY_PRESET "hidden")
set(CMAKE_VISIBILITY_INLINES_HIDDEN "YES")
if(NOT ${skipdocs})
add_subdirectory(documentation/sphinx)
endif()
if(NOT ${skiptests})
enable_testing()
endif()
block()
set(CMAKE_FOLDER "${CMAKE_FOLDER}/external")
add_subdirectory(external/device_info)
set(CMAKE_FOLDER "${CMAKE_FOLDER}/third_party")
if(NOT ${skiptests} AND NOT TARGET gtest)
set(BUILD_GMOCK OFF)
set(INSTALL_GTEST OFF)
add_subdirectory(external/third_party/googletest EXCLUDE_FROM_ALL SYSTEM)
endif()
if (NOT skipvulkan)
add_subdirectory(external/third_party/Vulkan-Headers EXCLUDE_FROM_ALL SYSTEM)
endif()
endblock()
add_subdirectory(source/third_party/AmdVkExt SYSTEM)
if (WIN32)
add_subdirectory(source/third_party/AmdDxExt SYSTEM)
endif()
# Only apply warnings to code we own
if (MSVC)
add_compile_options(/W4 /WX)
else()
add_compile_options(-Wall -Werror)
endif()
add_library(GPUPerfAPI-Headers INTERFACE)
add_library(AMD::GPUPerfAPI-Headers ALIAS GPUPerfAPI-Headers)
target_sources(GPUPerfAPI-Headers PUBLIC
FILE_SET HEADERS
BASE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/include/
FILES
${CMAKE_CURRENT_SOURCE_DIR}/include/gpu_performance_api/gpu_perf_api.h
${CMAKE_CURRENT_SOURCE_DIR}/include/gpu_performance_api/gpu_perf_api_counters.h
${CMAKE_CURRENT_SOURCE_DIR}/include/gpu_performance_api/gpu_perf_api_functions.h
${CMAKE_CURRENT_SOURCE_DIR}/include/gpu_performance_api/gpu_perf_api_function_types.h
${CMAKE_CURRENT_SOURCE_DIR}/include/gpu_performance_api/gpu_perf_api_interface_loader.h
${CMAKE_CURRENT_SOURCE_DIR}/include/gpu_performance_api/gpu_perf_api_stub.h
${CMAKE_CURRENT_SOURCE_DIR}/include/gpu_performance_api/gpu_perf_api_types.h
${CMAKE_CURRENT_SOURCE_DIR}/include/gpu_performance_api/gpu_perf_api_vk.h
)
add_subdirectory(source)
set(CPACK_ARCHIVE_COMPONENT_INSTALL ON)
set(CPACK_COMPONENTS_GROUPING IGNORE)
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/gpu_performance_api" DESTINATION ${GPA_INSTALL_INCLUDEDIR} COMPONENT GPUPerfAPI)
install(FILES LICENSE.txt DESTINATION ${GPA_INSTALL_PREFIX} COMPONENT GPUPerfAPI)
install(FILES NOTICES.txt DESTINATION ${GPA_INSTALL_PREFIX} COMPONENT GPUPerfAPI)
# Create the archive's suffix (ie: <GPUPerfAPI>[-Android|-Linux]-<version>.[zip|tgz])
set(ARCHIVE_SUFFIX "")
if (LINUX)
set(ARCHIVE_SUFFIX "${ARCHIVE_SUFFIX}-Linux")
elseif (ANDROID)
set(ARCHIVE_SUFFIX "${ARCHIVE_SUFFIX}-Android")
endif()
set(ARCHIVE_SUFFIX "${ARCHIVE_SUFFIX}-${PROJECT_VERSION}")
if (GPA_PACKAGE_SUFFIX)
set(ARCHIVE_SUFFIX "${ARCHIVE_SUFFIX}-${GPA_PACKAGE_SUFFIX}")
endif()
set(CPACK_PACKAGE_VENDOR "AMD")
if (WIN32)
set(CPACK_GENERATOR "ZIP")
else()
set(CPACK_GENERATOR "TGZ")
# By default CMake uses .tar.gz
set(CPACK_ARCHIVE_FILE_EXTENSION "tgz")
endif()
set(CPACK_PACKAGE_DIRECTORY ${GPA_OUTPUT_DIR})
set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY OFF)
set(CPACK_ARCHIVE_GPUPERFAPI_FILE_NAME "GPUPerfAPI${ARCHIVE_SUFFIX}")
set(CPACK_ARCHIVE_GPATESTKIT_FILE_NAME "GPATestKit${ARCHIVE_SUFFIX}")
include(CPack)
cpack_add_component(GPUPerfAPI)
cpack_add_component(GPATestKit)