1*ba62d9d3SAndroid Build Coastguard Worker# Copyright (c) 2017-2022, Intel Corporation 2*ba62d9d3SAndroid Build Coastguard Worker# 3*ba62d9d3SAndroid Build Coastguard Worker# Permission is hereby granted, free of charge, to any person obtaining a 4*ba62d9d3SAndroid Build Coastguard Worker# copy of this software and associated documentation files (the "Software"), 5*ba62d9d3SAndroid Build Coastguard Worker# to deal in the Software without restriction, including without limitation 6*ba62d9d3SAndroid Build Coastguard Worker# the rights to use, copy, modify, merge, publish, distribute, sublicense, 7*ba62d9d3SAndroid Build Coastguard Worker# and/or sell copies of the Software, and to permit persons to whom the 8*ba62d9d3SAndroid Build Coastguard Worker# Software is furnished to do so, subject to the following conditions: 9*ba62d9d3SAndroid Build Coastguard Worker# 10*ba62d9d3SAndroid Build Coastguard Worker# The above copyright notice and this permission notice shall be included 11*ba62d9d3SAndroid Build Coastguard Worker# in all copies or substantial portions of the Software. 12*ba62d9d3SAndroid Build Coastguard Worker# 13*ba62d9d3SAndroid Build Coastguard Worker# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 14*ba62d9d3SAndroid Build Coastguard Worker# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15*ba62d9d3SAndroid Build Coastguard Worker# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 16*ba62d9d3SAndroid Build Coastguard Worker# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 17*ba62d9d3SAndroid Build Coastguard Worker# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 18*ba62d9d3SAndroid Build Coastguard Worker# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 19*ba62d9d3SAndroid Build Coastguard Worker# OTHER DEALINGS IN THE SOFTWARE. 20*ba62d9d3SAndroid Build Coastguard Worker 21*ba62d9d3SAndroid Build Coastguard Workerproject( media ) 22*ba62d9d3SAndroid Build Coastguard Worker 23*ba62d9d3SAndroid Build Coastguard Workerfind_package(PkgConfig) 24*ba62d9d3SAndroid Build Coastguard Workerfind_package(X11) 25*ba62d9d3SAndroid Build Coastguard Worker 26*ba62d9d3SAndroid Build Coastguard Workerbs_set_if_undefined(LIB_NAME iHD_drv_video) 27*ba62d9d3SAndroid Build Coastguard Worker 28*ba62d9d3SAndroid Build Coastguard Workeroption (MEDIA_RUN_TEST_SUITE "run google test module after install" ON) 29*ba62d9d3SAndroid Build Coastguard Workerinclude(${MEDIA_SOFTLET_CMAKE}/media_gen_flags.cmake) 30*ba62d9d3SAndroid Build Coastguard Workerinclude(${MEDIA_SOFTLET_CMAKE}/media_feature_flags.cmake) 31*ba62d9d3SAndroid Build Coastguard Worker 32*ba62d9d3SAndroid Build Coastguard Worker 33*ba62d9d3SAndroid Build Coastguard Workerif(NOT DEFINED SKIP_GMM_CHECK) 34*ba62d9d3SAndroid Build Coastguard Worker # checking dependencies 35*ba62d9d3SAndroid Build Coastguard Worker pkg_check_modules(LIBGMM REQUIRED igdgmm>=12.0.0) 36*ba62d9d3SAndroid Build Coastguard Worker 37*ba62d9d3SAndroid Build Coastguard Worker if(LIBGMM_FOUND) 38*ba62d9d3SAndroid Build Coastguard Worker include_directories(BEFORE ${LIBGMM_INCLUDE_DIRS}) 39*ba62d9d3SAndroid Build Coastguard Worker # link_directories() should appear before add_library and the like 40*ba62d9d3SAndroid Build Coastguard Worker # otherwise it will not take effect 41*ba62d9d3SAndroid Build Coastguard Worker link_directories(${LIBGMM_LIBRARY_DIRS}) 42*ba62d9d3SAndroid Build Coastguard Worker endif() 43*ba62d9d3SAndroid Build Coastguard Workerendif(NOT DEFINED SKIP_GMM_CHECK) 44*ba62d9d3SAndroid Build Coastguard Worker 45*ba62d9d3SAndroid Build Coastguard Workermessage("-- media -- PLATFORM = ${PLATFORM}") 46*ba62d9d3SAndroid Build Coastguard Workermessage("-- media -- ARCH = ${ARCH}") 47*ba62d9d3SAndroid Build Coastguard Workermessage("-- media -- CMAKE_CURRENT_LIST_DIR = ${CMAKE_CURRENT_LIST_DIR}") 48*ba62d9d3SAndroid Build Coastguard Workermessage("-- media -- INCLUDED_LIBS = ${INCLUDED_LIBS}") 49*ba62d9d3SAndroid Build Coastguard Workermessage("-- media -- LIB_NAME = ${LIB_NAME}") 50*ba62d9d3SAndroid Build Coastguard Workermessage("-- media -- OUTPUT_NAME = ${OUTPUT_NAME}") 51*ba62d9d3SAndroid Build Coastguard Workermessage("-- media -- BUILD_TYPE/UFO_BUILD_TYPE/CMAKE_BUILD_TYPE = ${BUILD_TYPE}/${UFO_BUILD_TYPE}/${CMAKE_BUILD_TYPE}") 52*ba62d9d3SAndroid Build Coastguard Workermessage("-- media -- LIBVA_INSTALL_PATH = ${LIBVA_INSTALL_PATH}") 53*ba62d9d3SAndroid Build Coastguard Workermessage("-- media -- MEDIA_VERSION = ${MEDIA_VERSION}") 54*ba62d9d3SAndroid Build Coastguard Workerif(X11_FOUND) 55*ba62d9d3SAndroid Build Coastguard Worker message("-- media -- X11 Found") 56*ba62d9d3SAndroid Build Coastguard Worker pkg_check_modules(LIBVAX11 libva-x11) 57*ba62d9d3SAndroid Build Coastguard Worker if(LIBVAX11_FOUND) 58*ba62d9d3SAndroid Build Coastguard Worker message("-- media -- LIBVAX11 Found") 59*ba62d9d3SAndroid Build Coastguard Worker else() 60*ba62d9d3SAndroid Build Coastguard Worker set(X11_FOUND FALSE) 61*ba62d9d3SAndroid Build Coastguard Worker endif() 62*ba62d9d3SAndroid Build Coastguard Workerendif() 63*ba62d9d3SAndroid Build Coastguard Worker 64*ba62d9d3SAndroid Build Coastguard Workerset(LIB_NAME_STATIC "${LIB_NAME}_softlet_STATIC") 65*ba62d9d3SAndroid Build Coastguard Workerset(SOFTLET_COMMON_SOURCES_ "") 66*ba62d9d3SAndroid Build Coastguard Workerset(SOFTLET_COMMON_PRIVATE_INCLUDE_DIRS_ "") 67*ba62d9d3SAndroid Build Coastguard Workerset(SOFTLET_VP_SOURCES_ "") # softlet source group 68*ba62d9d3SAndroid Build Coastguard Workerset(SOFTLET_VP_PRIVATE_INCLUDE_DIRS_ "") 69*ba62d9d3SAndroid Build Coastguard Workerset(CP_COMMON_SHARED_SOURCES_ "") # legacy and softlet shared source group 70*ba62d9d3SAndroid Build Coastguard Workerset(CP_COMMON_NEXT_SOURCES_ "") # softlet source group 71*ba62d9d3SAndroid Build Coastguard Workerset(SOFTLET_DDI_PUBLIC_INCLUDE_DIRS_ "") 72*ba62d9d3SAndroid Build Coastguard Workerset(SOFTLET_CODEC_SOURCES_ "") 73*ba62d9d3SAndroid Build Coastguard Workerset(SOFTLET_CODEC_PRIVATE_INCLUDE_DIRS_ "") 74*ba62d9d3SAndroid Build Coastguard Workerset(CP_INTERFACE_DIRECTORIES_ "") 75*ba62d9d3SAndroid Build Coastguard Worker 76*ba62d9d3SAndroid Build Coastguard Worker###################################################### 77*ba62d9d3SAndroid Build Coastguard Worker#MOS LIB 78*ba62d9d3SAndroid Build Coastguard Workerset (SOFTLET_MOS_COMMON_SOURCES_ "") 79*ba62d9d3SAndroid Build Coastguard Workerset (SOFTLET_MOS_COMMON_HEADERS_ "") 80*ba62d9d3SAndroid Build Coastguard Workerset (SOFTLET_MOS_PRIVATE_SOURCES_ "") 81*ba62d9d3SAndroid Build Coastguard Workerset (SOFTLET_MOS_PUBLIC_INCLUDE_DIRS_ "") 82*ba62d9d3SAndroid Build Coastguard Workerset (SOFTLET_MOS_PRIVATE_INCLUDE_DIRS_ "") 83*ba62d9d3SAndroid Build Coastguard Workerset (SOFTLET_MOS_PREPEND_INCLUDE_DIRS_ "") 84*ba62d9d3SAndroid Build Coastguard Workerset (SOFTLET_MOS_EXT_INCLUDE_DIRS_ "") 85*ba62d9d3SAndroid Build Coastguard Worker###################################################### 86*ba62d9d3SAndroid Build Coastguard Worker################################################################################ 87*ba62d9d3SAndroid Build Coastguard Worker# MHW 88*ba62d9d3SAndroid Build Coastguard Worker################################################################################ 89*ba62d9d3SAndroid Build Coastguard Workerset(SOFTLET_MHW_VDBOX_PRIVATE_INCLUDE_DIRS_ "") 90*ba62d9d3SAndroid Build Coastguard Workerset(SOFTLET_MHW_PRIVATE_INCLUDE_DIRS_ "") 91*ba62d9d3SAndroid Build Coastguard Worker 92*ba62d9d3SAndroid Build Coastguard Workerset(SOFTLET_MHW_VDBOX_COMMON_SOURCES_ "") 93*ba62d9d3SAndroid Build Coastguard Workerset(SOFTLET_MHW_VDBOX_SOURCES_ "") 94*ba62d9d3SAndroid Build Coastguard Workerset(SOFTLET_MHW_SOURCES_ "") 95*ba62d9d3SAndroid Build Coastguard Workerset(SOFTLET_MHW_VDBOX_HCP_SOURCES_ "") 96*ba62d9d3SAndroid Build Coastguard Workerset(SOFTLET_MHW_VDBOX_HUC_SOURCES_ "") 97*ba62d9d3SAndroid Build Coastguard Workerset(SOFTLET_MHW_VDBOX_VDENC_SOURCES_ "") 98*ba62d9d3SAndroid Build Coastguard Workerset(SOFTLET_MHW_VDBOX_AVP_SOURCES_ "") 99*ba62d9d3SAndroid Build Coastguard Workerset(SOFTLET_MHW_VDBOX_MFX_SOURCES_ "") 100*ba62d9d3SAndroid Build Coastguard Workerset(SOFTLET_MHW_VDBOX_VVCP_SOURCES_ "") 101*ba62d9d3SAndroid Build Coastguard Workerset(SOFTLET_MHW_VDBOX_AQM_SOURCES_ "") 102*ba62d9d3SAndroid Build Coastguard Workerset(SOFTLET_MHW_EXT_SOURCES_ "") 103*ba62d9d3SAndroid Build Coastguard Worker 104*ba62d9d3SAndroid Build Coastguard Worker# MHW settings 105*ba62d9d3SAndroid Build Coastguard Workerset(SOFTLET_MHW_PRIVATE_INCLUDE_DIRS_ 106*ba62d9d3SAndroid Build Coastguard Worker${SOFTLET_MHW_PRIVATE_INCLUDE_DIRS_} 107*ba62d9d3SAndroid Build Coastguard Worker${SOFTLET_MHW_VDBOX_PRIVATE_INCLUDE_DIRS_} 108*ba62d9d3SAndroid Build Coastguard Worker${SOFTLET_MHW_COMMON_PRIVATE_INCLUDE_DIRS_} 109*ba62d9d3SAndroid Build Coastguard Worker${SOFTLET_MHW_BLT_PRIVATE_INCLUDE_DIRS_} 110*ba62d9d3SAndroid Build Coastguard Worker${SOFTLET_MHW_RENDER_PRIVATE_INCLUDE_DIRS_} 111*ba62d9d3SAndroid Build Coastguard Worker${SOFTLET_MHW_SFC_PRIVATE_INCLUDE_DIRS_} 112*ba62d9d3SAndroid Build Coastguard Worker${SOFTLET_MHW_VEBOX_PRIVATE_INCLUDE_DIRS_} 113*ba62d9d3SAndroid Build Coastguard Worker${SOFTLET_MHW_MI_PRIVATE_INCLUDE_DIRS_} 114*ba62d9d3SAndroid Build Coastguard Worker) 115*ba62d9d3SAndroid Build Coastguard Worker 116*ba62d9d3SAndroid Build Coastguard Workerset(SOFTLET_MHW_VDBOX_SOURCES_ 117*ba62d9d3SAndroid Build Coastguard Worker${SOFTLET_MHW_VDBOX_SOURCES_} 118*ba62d9d3SAndroid Build Coastguard Worker${SOFTLET_MHW_VDBOX_COMMON_SOURCES_} 119*ba62d9d3SAndroid Build Coastguard Worker${SOFTLET_MHW_VDBOX_HCP_SOURCES_} 120*ba62d9d3SAndroid Build Coastguard Worker${SOFTLET_MHW_VDBOX_HUC_SOURCES_} 121*ba62d9d3SAndroid Build Coastguard Worker${SOFTLET_MHW_VDBOX_VDENC_SOURCES_} 122*ba62d9d3SAndroid Build Coastguard Worker${SOFTLET_MHW_VDBOX_AVP_SOURCES_} 123*ba62d9d3SAndroid Build Coastguard Worker${SOFTLET_MHW_VDBOX_MFX_SOURCES_} 124*ba62d9d3SAndroid Build Coastguard Worker${SOFTLET_MHW_VDBOX_VVCP_SOURCES_} 125*ba62d9d3SAndroid Build Coastguard Worker${SOFTLET_MHW_VDBOX_AQM_SOURCES_} 126*ba62d9d3SAndroid Build Coastguard Worker${SOFTLET_MHW_EXT_SOURCES_} 127*ba62d9d3SAndroid Build Coastguard Worker) 128*ba62d9d3SAndroid Build Coastguard Worker 129*ba62d9d3SAndroid Build Coastguard Workerset(SOFTLET_MHW_SOURCES_ 130*ba62d9d3SAndroid Build Coastguard Worker${SOFTLET_MHW_SOURCES_} 131*ba62d9d3SAndroid Build Coastguard Worker${SOFTLET_MHW_VDBOX_SOURCES_} 132*ba62d9d3SAndroid Build Coastguard Worker${SOFTLET_MHW_COMMON_SOURCES_} 133*ba62d9d3SAndroid Build Coastguard Worker${SOFTLET_MHW_BLT_SOURCES_} 134*ba62d9d3SAndroid Build Coastguard Worker${SOFTLET_MHW_RENDER_SOURCES_} 135*ba62d9d3SAndroid Build Coastguard Worker${SOFTLET_MHW_SFC_SOURCES_} 136*ba62d9d3SAndroid Build Coastguard Worker${SOFTLET_MHW_VEBOX_SOURCES_} 137*ba62d9d3SAndroid Build Coastguard Worker${SOFTLET_MHW_MI_SOURCES_} 138*ba62d9d3SAndroid Build Coastguard Worker) 139*ba62d9d3SAndroid Build Coastguard Worker 140*ba62d9d3SAndroid Build Coastguard Worker# add source 141*ba62d9d3SAndroid Build Coastguard Workermedia_include_subdirectory(../media_common/agnostic) 142*ba62d9d3SAndroid Build Coastguard Workermedia_include_subdirectory(../media_common/linux) 143*ba62d9d3SAndroid Build Coastguard Workermedia_include_subdirectory(media_interface) 144*ba62d9d3SAndroid Build Coastguard Worker 145*ba62d9d3SAndroid Build Coastguard Workermedia_include_subdirectory(agnostic) 146*ba62d9d3SAndroid Build Coastguard Workermedia_include_subdirectory(linux) 147*ba62d9d3SAndroid Build Coastguard Worker 148*ba62d9d3SAndroid Build Coastguard Workerinclude(${MEDIA_SOFTLET_EXT}/media_srcs_ext.cmake OPTIONAL) 149*ba62d9d3SAndroid Build Coastguard Workerinclude(${MEDIA_COMMON_EXT}/media_srcs_ext.cmake OPTIONAL) 150*ba62d9d3SAndroid Build Coastguard Worker 151*ba62d9d3SAndroid Build Coastguard Workerinclude(${MEDIA_SOFTLET_CMAKE}/media_include_paths.cmake) 152*ba62d9d3SAndroid Build Coastguard Worker 153*ba62d9d3SAndroid Build Coastguard Workerinclude(${MEDIA_SOFTLET_CMAKE}/media_compile_flags.cmake) 154*ba62d9d3SAndroid Build Coastguard Worker 155*ba62d9d3SAndroid Build Coastguard Worker# 156*ba62d9d3SAndroid Build Coastguard Worker# set platform specific defines 157*ba62d9d3SAndroid Build Coastguard Worker# 158*ba62d9d3SAndroid Build Coastguard Workerbs_set_defines() 159*ba62d9d3SAndroid Build Coastguard Worker 160*ba62d9d3SAndroid Build Coastguard Worker 161*ba62d9d3SAndroid Build Coastguard Workerset_source_files_properties(${SOURCES_} PROPERTIES LANGUAGE "CXX") 162*ba62d9d3SAndroid Build Coastguard Workerset_source_files_properties(${SOFTLET_COMMON_SOURCES_} PROPERTIES LANGUAGE "CXX") 163*ba62d9d3SAndroid Build Coastguard Workerset_source_files_properties(${SOFTLET_MHW_SOURCES_} PROPERTIES LANGUAGE "CXX") 164*ba62d9d3SAndroid Build Coastguard Workerset_source_files_properties(${SOFTLET_VP_SOURCES_} PROPERTIES LANGUAGE "CXX") 165*ba62d9d3SAndroid Build Coastguard Workerset_source_files_properties(${CP_COMMON_SHARED_SOURCES_} PROPERTIES LANGUAGE "CXX") 166*ba62d9d3SAndroid Build Coastguard Workerset_source_files_properties(${CP_COMMON_NEXT_SOURCES_} PROPERTIES LANGUAGE "CXX") 167*ba62d9d3SAndroid Build Coastguard Workerset_source_files_properties(${SOURCES_SSE2} PROPERTIES LANGUAGE "CXX") 168*ba62d9d3SAndroid Build Coastguard Workerset_source_files_properties(${SOURCES_SSE4} PROPERTIES LANGUAGE "CXX") 169*ba62d9d3SAndroid Build Coastguard Worker 170*ba62d9d3SAndroid Build Coastguard Workeradd_library(${LIB_NAME}_SOFTLET_COMMON OBJECT ${SOFTLET_COMMON_SOURCES_} ${SOFTLET_MHW_SOURCES_}) 171*ba62d9d3SAndroid Build Coastguard Workerset_property(TARGET ${LIB_NAME}_SOFTLET_COMMON PROPERTY POSITION_INDEPENDENT_CODE 1) 172*ba62d9d3SAndroid Build Coastguard WorkerMediaAddCommonTargetDefines(${LIB_NAME}_SOFTLET_COMMON) 173*ba62d9d3SAndroid Build Coastguard Workertarget_include_directories(${LIB_NAME}_SOFTLET_COMMON BEFORE PRIVATE 174*ba62d9d3SAndroid Build Coastguard Worker ${SOFTLET_MOS_PREPEND_INCLUDE_DIRS_} 175*ba62d9d3SAndroid Build Coastguard Worker ${SOFTLET_MOS_PUBLIC_INCLUDE_DIRS_} 176*ba62d9d3SAndroid Build Coastguard Worker ${SOFTLET_COMMON_PRIVATE_INCLUDE_DIRS_} 177*ba62d9d3SAndroid Build Coastguard Worker ${SOFTLET_MHW_PRIVATE_INCLUDE_DIRS_} 178*ba62d9d3SAndroid Build Coastguard Worker ${SOFTLET_CODEC_PRIVATE_INCLUDE_DIRS_} 179*ba62d9d3SAndroid Build Coastguard Worker ${SOFTLET_VP_PRIVATE_INCLUDE_DIRS_} 180*ba62d9d3SAndroid Build Coastguard Worker ${CP_INTERFACE_DIRECTORIES_} 181*ba62d9d3SAndroid Build Coastguard Worker ${SOFTLET_DDI_PUBLIC_INCLUDE_DIRS_} 182*ba62d9d3SAndroid Build Coastguard Worker) 183*ba62d9d3SAndroid Build Coastguard Worker 184*ba62d9d3SAndroid Build Coastguard Workeradd_library(${LIB_NAME}_SOFTLET_VP OBJECT ${SOFTLET_VP_SOURCES_}) 185*ba62d9d3SAndroid Build Coastguard Workerset_property(TARGET ${LIB_NAME}_SOFTLET_VP PROPERTY POSITION_INDEPENDENT_CODE 1) 186*ba62d9d3SAndroid Build Coastguard WorkerMediaAddCommonTargetDefines(${LIB_NAME}_SOFTLET_VP) 187*ba62d9d3SAndroid Build Coastguard Workertarget_include_directories(${LIB_NAME}_SOFTLET_VP BEFORE PRIVATE 188*ba62d9d3SAndroid Build Coastguard Worker ${SOFTLET_MOS_PREPEND_INCLUDE_DIRS_} 189*ba62d9d3SAndroid Build Coastguard Worker ${SOFTLET_MOS_PUBLIC_INCLUDE_DIRS_} 190*ba62d9d3SAndroid Build Coastguard Worker ${SOFTLET_COMMON_PRIVATE_INCLUDE_DIRS_} 191*ba62d9d3SAndroid Build Coastguard Worker ${SOFTLET_MHW_PRIVATE_INCLUDE_DIRS_} 192*ba62d9d3SAndroid Build Coastguard Worker ${SOFTLET_VP_PRIVATE_INCLUDE_DIRS_} 193*ba62d9d3SAndroid Build Coastguard Worker ${SOFTLET_DDI_PUBLIC_INCLUDE_DIRS_} 194*ba62d9d3SAndroid Build Coastguard Worker ${SOFTLET_CODEC_PRIVATE_INCLUDE_DIRS_} 195*ba62d9d3SAndroid Build Coastguard Worker ${CP_INTERFACE_DIRECTORIES_} 196*ba62d9d3SAndroid Build Coastguard Worker) 197*ba62d9d3SAndroid Build Coastguard Worker 198*ba62d9d3SAndroid Build Coastguard Workeradd_library(${LIB_NAME}_SOFTLET_CODEC OBJECT ${SOFTLET_CODEC_SOURCES_}) 199*ba62d9d3SAndroid Build Coastguard Workerset_property(TARGET ${LIB_NAME}_SOFTLET_CODEC PROPERTY POSITION_INDEPENDENT_CODE 1) 200*ba62d9d3SAndroid Build Coastguard WorkerMediaAddCommonTargetDefines(${LIB_NAME}_SOFTLET_CODEC) 201*ba62d9d3SAndroid Build Coastguard Workertarget_include_directories(${LIB_NAME}_SOFTLET_CODEC BEFORE PRIVATE 202*ba62d9d3SAndroid Build Coastguard Worker ${SOFTLET_MOS_PREPEND_INCLUDE_DIRS_} 203*ba62d9d3SAndroid Build Coastguard Worker ${SOFTLET_MOS_PUBLIC_INCLUDE_DIRS_} 204*ba62d9d3SAndroid Build Coastguard Worker ${SOFTLET_COMMON_PRIVATE_INCLUDE_DIRS_} 205*ba62d9d3SAndroid Build Coastguard Worker ${SOFTLET_MHW_PRIVATE_INCLUDE_DIRS_} 206*ba62d9d3SAndroid Build Coastguard Worker ${SOFTLET_VP_PRIVATE_INCLUDE_DIRS_} 207*ba62d9d3SAndroid Build Coastguard Worker ${SOFTLET_DDI_PUBLIC_INCLUDE_DIRS_} 208*ba62d9d3SAndroid Build Coastguard Worker ${SOFTLET_CODEC_PRIVATE_INCLUDE_DIRS_} 209*ba62d9d3SAndroid Build Coastguard Worker ${CP_INTERFACE_DIRECTORIES_} 210*ba62d9d3SAndroid Build Coastguard Worker) 211*ba62d9d3SAndroid Build Coastguard Worker############## MOS LIB ######################################## 212*ba62d9d3SAndroid Build Coastguard Workerset_source_files_properties(${MOS_COMMON_SOURCES_} PROPERTIES LANGUAGE "CXX") 213*ba62d9d3SAndroid Build Coastguard Workerset_source_files_properties(${SOFTLET_MOS_COMMON_SOURCES_} PROPERTIES LANGUAGE "CXX") 214*ba62d9d3SAndroid Build Coastguard Worker 215*ba62d9d3SAndroid Build Coastguard Worker# This is to include drm_device.h in cmrtlib, no cpp file needed. 216*ba62d9d3SAndroid Build Coastguard Workerset (SOFTLET_MOS_EXT_INCLUDE_DIRS_ 217*ba62d9d3SAndroid Build Coastguard Worker${SOFTLET_MOS_EXT_INCLUDE_DIRS_} 218*ba62d9d3SAndroid Build Coastguard Worker${BS_DIR_MEDIA}/cmrtlib/linux/hardware 219*ba62d9d3SAndroid Build Coastguard Worker) 220*ba62d9d3SAndroid Build Coastguard Worker 221*ba62d9d3SAndroid Build Coastguard Worker 222*ba62d9d3SAndroid Build Coastguard Worker#1 softlet mos lib 223*ba62d9d3SAndroid Build Coastguard Workeradd_library(${LIB_NAME}_mos_softlet OBJECT ${SOFTLET_MOS_COMMON_SOURCES_} ${SOFTLET_MOS_PRIVATE_SOURCES_}) 224*ba62d9d3SAndroid Build Coastguard Workerset_property(TARGET ${LIB_NAME}_mos_softlet PROPERTY POSITION_INDEPENDENT_CODE 1) 225*ba62d9d3SAndroid Build Coastguard WorkerMediaAddCommonTargetDefines(${LIB_NAME}_mos_softlet) 226*ba62d9d3SAndroid Build Coastguard Workertarget_include_directories(${LIB_NAME}_mos_softlet BEFORE PRIVATE 227*ba62d9d3SAndroid Build Coastguard Worker ${SOFTLET_MOS_PREPEND_INCLUDE_DIRS_} 228*ba62d9d3SAndroid Build Coastguard Worker ${SOFTLET_MOS_EXT_INCLUDE_DIRS_} 229*ba62d9d3SAndroid Build Coastguard Worker ${SOFTLET_MOS_PUBLIC_INCLUDE_DIRS_} 230*ba62d9d3SAndroid Build Coastguard Worker) 231*ba62d9d3SAndroid Build Coastguard Worker############## MOS LIB END ######################################## 232*ba62d9d3SAndroid Build Coastguard Worker 233*ba62d9d3SAndroid Build Coastguard Worker############## Media Driver Static and Shared Lib ################## 234*ba62d9d3SAndroid Build Coastguard Worker# The shared library cannot succeed until all refactor done. Comment it out. 235*ba62d9d3SAndroid Build Coastguard Worker#add_library(${LIB_NAME}_softlet SHARED 236*ba62d9d3SAndroid Build Coastguard Worker# $<TARGET_OBJECTS:${LIB_NAME}_mos_softlet> 237*ba62d9d3SAndroid Build Coastguard Worker# $<TARGET_OBJECTS:${LIB_NAME}_SOFTLET_VP> 238*ba62d9d3SAndroid Build Coastguard Worker# $<TARGET_OBJECTS:${LIB_NAME}_SOFTLET_COMMON>) 239*ba62d9d3SAndroid Build Coastguard Worker 240*ba62d9d3SAndroid Build Coastguard Workeradd_library(${LIB_NAME_STATIC} STATIC 241*ba62d9d3SAndroid Build Coastguard Worker $<TARGET_OBJECTS:${LIB_NAME}_mos_softlet> 242*ba62d9d3SAndroid Build Coastguard Worker $<TARGET_OBJECTS:${LIB_NAME}_SOFTLET_VP> 243*ba62d9d3SAndroid Build Coastguard Worker $<TARGET_OBJECTS:${LIB_NAME}_SOFTLET_CODEC> 244*ba62d9d3SAndroid Build Coastguard Worker $<TARGET_OBJECTS:${LIB_NAME}_SOFTLET_COMMON>) 245*ba62d9d3SAndroid Build Coastguard Worker 246*ba62d9d3SAndroid Build Coastguard Workerset_target_properties(${LIB_NAME_STATIC} PROPERTIES OUTPUT_NAME ${LIB_NAME_STATIC}) 247*ba62d9d3SAndroid Build Coastguard Worker 248*ba62d9d3SAndroid Build Coastguard Workeroption(MEDIA_BUILD_FATAL_WARNINGS "Turn compiler warnings into fatal errors" ON) 249*ba62d9d3SAndroid Build Coastguard Workerif(MEDIA_BUILD_FATAL_WARNINGS) 250*ba62d9d3SAndroid Build Coastguard Worker set_target_properties(${LIB_NAME}_mos_softlet PROPERTIES COMPILE_FLAGS "-Werror") 251*ba62d9d3SAndroid Build Coastguard Worker set_target_properties(${LIB_NAME}_SOFTLET_VP PROPERTIES COMPILE_FLAGS "-Werror") 252*ba62d9d3SAndroid Build Coastguard Worker set_target_properties(${LIB_NAME}_SOFTLET_CODEC PROPERTIES COMPILE_FLAGS "-Werror") 253*ba62d9d3SAndroid Build Coastguard Worker set_target_properties(${LIB_NAME}_SOFTLET_COMMON PROPERTIES COMPILE_FLAGS "-Werror") 254*ba62d9d3SAndroid Build Coastguard Workerendif() 255*ba62d9d3SAndroid Build Coastguard Worker 256*ba62d9d3SAndroid Build Coastguard Workerset(MEDIA_LINK_FLAGS "-Wl,--no-as-needed -Wl,--gc-sections -z relro -z now -fPIC") 257*ba62d9d3SAndroid Build Coastguard Workeroption(MEDIA_BUILD_HARDENING "Enable hardening (stack-protector, fortify source)" ON) 258*ba62d9d3SAndroid Build Coastguard Workerif(MEDIA_BUILD_HARDENING) 259*ba62d9d3SAndroid Build Coastguard Worker set(MEDIA_LINK_FLAGS "${MEDIA_LINK_FLAGS} -fstack-protector") 260*ba62d9d3SAndroid Build Coastguard Workerendif() 261*ba62d9d3SAndroid Build Coastguard Workerset_target_properties(${LIB_NAME}_softlet PROPERTIES LINK_FLAGS ${MEDIA_LINK_FLAGS}) 262*ba62d9d3SAndroid Build Coastguard Worker 263*ba62d9d3SAndroid Build Coastguard Workerset_target_properties(${LIB_NAME}_softlet PROPERTIES PREFIX "") 264*ba62d9d3SAndroid Build Coastguard Workerset_target_properties(${LIB_NAME_STATIC} PROPERTIES PREFIX "") 265*ba62d9d3SAndroid Build Coastguard Worker 266*ba62d9d3SAndroid Build Coastguard Workerbs_ufo_link_libraries_noBsymbolic( 267*ba62d9d3SAndroid Build Coastguard Worker ${LIB_NAME}_softlet 268*ba62d9d3SAndroid Build Coastguard Worker "${INCLUDED_LIBS}" 269*ba62d9d3SAndroid Build Coastguard Worker "${PKG_PCIACCESS_LIBRARIES} m pthread dl" 270*ba62d9d3SAndroid Build Coastguard Worker) 271*ba62d9d3SAndroid Build Coastguard Worker 272*ba62d9d3SAndroid Build Coastguard Workerif (NOT DEFINED INCLUDED_LIBS OR "${INCLUDED_LIBS}" STREQUAL "") 273*ba62d9d3SAndroid Build Coastguard Worker # dep libs (gmmlib for now) can be passed through INCLUDED_LIBS, but if not, we need try to setup dep through including dep projects 274*ba62d9d3SAndroid Build Coastguard Worker if(NOT LIBGMM_FOUND) 275*ba62d9d3SAndroid Build Coastguard Worker # If we failed to setup dependency from gmmlib via pkg-config we will try to 276*ba62d9d3SAndroid Build Coastguard Worker # add gmmlib as a target from sources. We need to do this here, after 277*ba62d9d3SAndroid Build Coastguard Worker # add_library() for iHD driver since gmmlib needs this information. 278*ba62d9d3SAndroid Build Coastguard Worker if (NOT TARGET igfx_gmmumd_dll) 279*ba62d9d3SAndroid Build Coastguard Worker add_subdirectory("${BS_DIR_GMMLIB}" "${CMAKE_BINARY_DIR}/gmmlib") 280*ba62d9d3SAndroid Build Coastguard Worker endif() 281*ba62d9d3SAndroid Build Coastguard Worker if (NOT TARGET igfx_gmmumd_dll) 282*ba62d9d3SAndroid Build Coastguard Worker message(FATAL_ERROR "gmm library not found on the system") 283*ba62d9d3SAndroid Build Coastguard Worker endif() 284*ba62d9d3SAndroid Build Coastguard Worker set(LIBGMM_CFLAGS_OTHER -DGMM_LIB_DLL) 285*ba62d9d3SAndroid Build Coastguard Worker set(LIBGMM_LIBRARIES igfx_gmmumd_dll) 286*ba62d9d3SAndroid Build Coastguard Worker endif() 287*ba62d9d3SAndroid Build Coastguard Worker 288*ba62d9d3SAndroid Build Coastguard Worker target_compile_options( ${LIB_NAME}_softlet PUBLIC ${LIBGMM_CFLAGS_OTHER}) 289*ba62d9d3SAndroid Build Coastguard Worker target_link_libraries ( ${LIB_NAME}_softlet ${LIBGMM_LIBRARIES}) 290*ba62d9d3SAndroid Build Coastguard Worker 291*ba62d9d3SAndroid Build Coastguard Worker target_compile_definitions(${LIB_NAME}_softlet PUBLIC GMM_LIB_DLL) 292*ba62d9d3SAndroid Build Coastguard Worker include(${MEDIA_SOFTLET_EXT_CMAKE}/media_feature_include_ext.cmake OPTIONAL) 293*ba62d9d3SAndroid Build Coastguard Worker 294*ba62d9d3SAndroid Build Coastguard Workerendif(NOT DEFINED INCLUDED_LIBS OR "${INCLUDED_LIBS}" STREQUAL "") 295*ba62d9d3SAndroid Build Coastguard Worker 296*ba62d9d3SAndroid Build Coastguard Worker############## Media Driver Static and Shared Lib ################## 297*ba62d9d3SAndroid Build Coastguard Worker 298*ba62d9d3SAndroid Build Coastguard Worker# post target attributes 299*ba62d9d3SAndroid Build Coastguard Workerbs_set_post_target() 300*ba62d9d3SAndroid Build Coastguard Worker 301*ba62d9d3SAndroid Build Coastguard Workerif(MEDIA_RUN_TEST_SUITE AND ENABLE_KERNELS AND ENABLE_NONFREE_KERNELS) 302*ba62d9d3SAndroid Build Coastguard Worker 303*ba62d9d3SAndroid Build Coastguard Workerendif() 304