xref: /aosp_15_r20/external/intel-media-driver/media_softlet/media_top_cmake.cmake (revision ba62d9d3abf0e404f2022b4cd7a85e107f48596f)
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