-
Notifications
You must be signed in to change notification settings - Fork 11
/
Copy pathCMakeLists.txt
144 lines (122 loc) · 4.06 KB
/
CMakeLists.txt
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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
################################################################################
# aux-overlay
################################################################################
therock_cmake_subproject_declare(therock-aux-overlay
EXTERNAL_SOURCE_DIR "aux-overlay"
)
therock_cmake_subproject_activate(therock-aux-overlay)
################################################################################
# rocm-cmake
################################################################################
therock_cmake_subproject_declare(rocm-cmake
EXTERNAL_SOURCE_DIR "rocm-cmake"
)
therock_cmake_subproject_provide_package(rocm-cmake
ROCmCMakeBuildTools share/rocmcmakebuildtools/cmake)
therock_cmake_subproject_provide_package(rocm-cmake
ROCM share/rocm/cmake)
therock_cmake_subproject_activate(rocm-cmake)
################################################################################
# rocm-core
################################################################################
if(WIN32)
set(_shared_libs_arg "OFF")
else()
set(_shared_libs_arg "ON")
endif()
therock_cmake_subproject_declare(rocm-core
EXTERNAL_SOURCE_DIR "rocm-core"
CMAKE_ARGS
"-DBUILD_SHARED_LIBS=${_shared_libs_arg}"
"-DROCM_VERSION=${ROCM_MAJOR_VERSION}.${ROCM_MINOR_VERSION}.${ROCM_PATCH_VERSION}"
)
therock_cmake_subproject_glob_c_sources(rocm-core
SUBDIRS .
)
therock_cmake_subproject_provide_package(rocm-core rocm-core lib/cmake/rocm-core)
therock_cmake_subproject_activate(rocm-core)
################################################################################
# rocm_smi_lib
################################################################################
if(NOT WIN32) # TODO(#36): Enable on Windows and/or make subproject inclusion generally optional
therock_cmake_subproject_declare(rocm_smi_lib
EXTERNAL_SOURCE_DIR "rocm_smi_lib"
CMAKE_ARGS
# See the post_hook, which needs to advertise install interface directories
# in this case.
"-DTHEROCK_HAS_BUNDLED_LIBDRM=${THEROCK_BUNDLED_LIBDRM}"
INTERFACE_LINK_DIRS
"lib"
INSTALL_RPATH_DIRS
"lib"
INTERFACE_INSTALL_RPATH_DIRS
"lib"
RUNTIME_DEPS
${THEROCK_BUNDLED_LIBDRM}
)
therock_cmake_subproject_glob_c_sources(rocm_smi_lib
SUBDIRS
include
src
)
therock_cmake_subproject_provide_package(rocm_smi_lib rocm_smi lib/cmake/rocm_smi)
therock_cmake_subproject_activate(rocm_smi_lib)
endif()
################################################################################
# rocprofiler-register
# This is a stub that helps runtime libraries and profiles rendezvous
################################################################################
therock_cmake_subproject_declare(rocprofiler-register
EXTERNAL_SOURCE_DIR "rocprofiler-register"
INTERFACE_LINK_DIRS
"lib"
INTERFACE_INSTALL_RPATH_DIRS
"lib"
)
therock_cmake_subproject_glob_c_sources(rocprofiler-register
SUBDIRS
source/include
source/lib
)
therock_cmake_subproject_provide_package(rocprofiler-register
rocprofiler-register lib/cmake/rocprofiler-register)
therock_cmake_subproject_activate(rocprofiler-register)
################################################################################
# rocm-half
################################################################################
therock_cmake_subproject_declare(rocm-half
EXTERNAL_SOURCE_DIR "half"
BUILD_DEPS
rocm-cmake
)
therock_cmake_subproject_glob_c_sources(rocm-half
SUBDIRS
include
)
therock_cmake_subproject_activate(rocm-half)
################################################################################
# Artifacts
################################################################################
set(_optional_subproject_deps)
if(NOT WIN32)
# TODO(#36): Enable on Windows and/or make subproject inclusion generally optional
list(APPEND _optional_subproject_deps rocm_smi_lib)
endif()
therock_provide_artifact(base
TARGET_NEUTRAL
DESCRIPTOR artifact.toml
COMPONENTS
dbg
dev
doc
lib
run
test
SUBPROJECT_DEPS
${_optional_subproject_deps}
rocm-cmake
rocm-core
rocm-half
rocprofiler-register
therock-aux-overlay
)