-
Notifications
You must be signed in to change notification settings - Fork 50
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
102 lines (84 loc) · 3.07 KB
/
CMakeLists.txt
File metadata and controls
102 lines (84 loc) · 3.07 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
## Copyright (C) 2018-2026 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 3)
set(GPA_UPDATE_VERSION 0)
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")
if(NOT ${skiptests} AND NOT TARGET gtest)
enable_testing()
block()
set(CMAKE_FOLDER "Tests")
set(BUILD_GMOCK OFF)
set(INSTALL_GTEST OFF)
add_subdirectory(external/googletest EXCLUDE_FROM_ALL SYSTEM)
endblock()
endif()
add_subdirectory(external/device_info)
add_subdirectory(external/tsingleton)
if(NOT ${skipdocs})
add_subdirectory(documentation/sphinx)
endif()
if (NOT skipvulkan)
block()
add_subdirectory(external/Vulkan-Headers EXCLUDE_FROM_ALL SYSTEM)
add_subdirectory(source/third_party/AmdVkExt SYSTEM)
endblock()
endif()
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_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)