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