xref: /aosp_15_r20/external/gmmlib/Source/GmmLib/ULT/CMakeLists.txt (revision 35ffd701415c9e32e53136d61a677a8d0a8fc4a5)
1# Copyright(c) 2017 Intel Corporation
2
3# Permission is hereby granted, free of charge, to any person obtaining a
4# copy of this software and associated documentation files(the "Software"),
5# to deal in the Software without restriction, including without limitation
6# the rights to use, copy, modify, merge, publish, distribute, sublicense,
7# and / or sell copies of the Software, and to permit persons to whom the
8# Software is furnished to do so, subject to the following conditions:
9
10# The above copyright notice and this permission notice shall be included
11# in all copies or substantial portions of the Software.
12
13# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
14# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
16# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
17# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
18# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
19# OTHER DEALINGS IN THE SOFTWARE.
20
21set (EXE_NAME GMMULT)
22
23set(GMMULT_HEADERS
24     GmmCachePolicyULT.h
25     GmmCommonULT.h
26     GmmMultiAdapterULT.h
27     GmmGen10CachePolicyULT.h
28     GmmGen10ResourceULT.h
29     GmmGen11CachePolicyULT.h
30     GmmGen11ResourceULT.h
31     GmmGen12ResourceULT.h
32     GmmGen12dGPUResourceULT.h
33     GmmXe2_LPGResourceULT.h
34     GmmGen12CachePolicyULT.h
35     GmmGen12dGPUCachePolicyULT.h
36     GmmXe_LPGCachePolicyULT.h
37     GmmGen9CachePolicyULT.h
38     GmmGen9ResourceULT.h
39     GmmResourceULT.h
40     GmmAuxTableULT.h
41     stdafx.h
42     targetver.h
43     )
44
45set(GMMULT_SOURCES
46    GmmCachePolicyULT.cpp
47    GmmCommonULT.cpp
48    GmmMultiAdapterULT.cpp
49    GmmGen10CachePolicyULT.cpp
50    GmmGen10ResourceULT.cpp
51    GmmGen11CachePolicyULT.cpp
52    GmmGen12CachePolicyULT.cpp
53    GmmGen12dGPUCachePolicyULT.cpp
54    GmmXe_LPGCachePolicyULT.cpp
55    GmmGen11ResourceULT.cpp
56    GmmGen12ResourceULT.cpp
57    GmmGen12dGPUResourceULT.cpp
58    GmmXe2_LPGResourceULT.cpp
59    GmmGen9CachePolicyULT.cpp
60    GmmGen9ResourceULT.cpp
61    GmmResourceCpuBltULT.cpp
62    GmmResourceULT.cpp
63    GmmAuxTableULT.cpp
64    googletest/src/gtest-all.cc
65    GmmULT.cpp
66)
67
68source_group("Source Files\\Cache Policy" FILES
69            GmmCachePolicyULT.cpp
70            GmmGen9CachePolicyULT.cpp
71            GmmGen10CachePolicyULT.cpp
72            GmmGen11CachePolicyULT.cpp
73            GmmGen12CachePolicyULT.cpp
74            GmmGen12dGPUCachePolicyULT.cpp
75            GmmXe_LPGCachePolicyULT.cpp
76	    )
77
78source_group("Source Files\\Resource" FILES
79            GmmGen10ResourceULT.cpp
80            GmmGen11ResourceULT.cpp
81            GmmGen12ResourceULT.cpp
82            GmmGen12dGPUResourceULT.cpp
83            GmmXe2_LPGResourceULT.cpp
84            GmmGen9ResourceULT.cpp
85            GmmResourceCpuBltULT.cpp
86            GmmResourceULT.cpp
87            )
88
89source_group("Source Files\\TranslationTable" FILES
90            GmmAuxTableULT.cpp
91            )
92
93source_group("Source Files\\MultiAdapter" FILES
94            GmmMultiAdapterULT.cpp
95            )
96
97source_group("Header Files\\TranslationTable" FILES
98            GmmAuxTableULT.h
99            )
100
101source_group("Header Files\\Cache Policy" FILES
102             GmmCachePolicyULT.h
103             GmmGen10CachePolicyULT.h
104             GmmGen11CachePolicyULT.h
105             GmmGen12CachePolicyULT.h
106             GmmXe_LPGCachePolicyULT.h
107	     GmmGen12dGPUCachePolicyULT.h
108             GmmGen9CachePolicyULT.h
109            )
110
111source_group("Header Files\\Resource" FILES
112             GmmGen10ResourceULT.h
113             GmmGen11ResourceULT.h
114             GmmGen12ResourceULT.h
115             GmmGen12dGPUResourceULT.h
116             GmmXe2_LPGResourceULT.h
117             GmmGen9ResourceULT.h
118             GmmResourceULT.h
119            )
120
121source_group("Header Files\\MultiAdapter" FILES
122            GmmMultiAdapterULT.h
123            )
124
125source_group("gtest" FILES
126            googletest/gtest/gtest.h
127            googletest/src/gtest-all.cc
128            )
129
130include_directories(BEFORE ./)
131
132include_directories(BEFORE ${PROJECT_SOURCE_DIR})
133
134include_directories(
135    googletest
136    googletest/gtest
137    ${BS_DIR_INC}/umKmInc
138    ${BS_DIR_INC}
139    ${BS_DIR_GMMLIB}/inc
140    ${BS_DIR_INC}/common
141    )
142
143macro(GmmLibULTSetTargetConfig ultTarget)
144	if (TARGET ${ultTarget})
145			set_property(TARGET ${ultTarget} APPEND PROPERTY COMPILE_DEFINITIONS
146				$<$<CONFIG:Release>: _RELEASE>
147				$<$<CONFIG:ReleaseInternal>: _RELEASE_INTERNAL>
148				$<$<CONFIG:Debug>: _DEBUG>
149			)
150		endif()
151
152endmacro()
153
154add_executable(${EXE_NAME} ${GMMULT_HEADERS} ${GMMULT_SOURCES})
155
156GmmLibULTSetTargetConfig(${EXE_NAME})
157
158set_property(TARGET ${EXE_NAME} APPEND PROPERTY COMPILE_DEFINITIONS __GMM GMM_LIB_DLL __UMD)
159
160if(NOT TARGET igfx_gmmumd_dll)
161    add_subdirectory("${BS_DIR_GMMLIB}" "${CMAKE_BINARY_DIR}/gmmlib/ult")
162endif()
163target_link_libraries(${EXE_NAME} igfx_gmmumd_dll)
164
165target_link_libraries(${EXE_NAME}
166    pthread
167    dl
168)
169
170add_custom_target(Run_ULT ALL DEPENDS GMMULT)
171
172add_custom_command(
173    TARGET Run_ULT
174    POST_BUILD
175    COMMAND echo running ULTs
176    COMMAND "${CMAKE_COMMAND}" -E env "LD_LIBRARY_PATH=$<TARGET_FILE_DIR:igfx_gmmumd_dll>" ${CMAKE_CFG_INTDIR}/${EXE_NAME} --gtest_filter=CTest*
177)
178
179add_test(
180    NAME ULT
181    COMMAND env "LD_LIBRARY_PATH=$<TARGET_FILE_DIR:igfx_gmmumd_dll>" $<TARGET_FILE:${EXE_NAME}> --gtest_filter=CTest*
182)
183