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 Worker# Only can include subdirectory which has a media_srcs.cmake 22*ba62d9d3SAndroid Build Coastguard Worker# the effect is like include(${CMAKE_CURRENT_LIST_DIR}/<subd>/media_srcs.cmake) 23*ba62d9d3SAndroid Build Coastguard Worker 24*ba62d9d3SAndroid Build Coastguard Workermacro(media_include_subdirectory subd) 25*ba62d9d3SAndroid Build Coastguard Worker if(EXISTS ${CMAKE_CURRENT_LIST_DIR}/${subd}/media_srcs.cmake) 26*ba62d9d3SAndroid Build Coastguard Worker if(CMAKE_WDDM_LINUX) 27*ba62d9d3SAndroid Build Coastguard Worker media_wsl_include_subdirectory(${subd}) 28*ba62d9d3SAndroid Build Coastguard Worker else() 29*ba62d9d3SAndroid Build Coastguard Worker include(${CMAKE_CURRENT_LIST_DIR}/${subd}/media_srcs.cmake) 30*ba62d9d3SAndroid Build Coastguard Worker endif() 31*ba62d9d3SAndroid Build Coastguard Worker else() 32*ba62d9d3SAndroid Build Coastguard Worker message("-- ${CMAKE_CURRENT_LIST_DIR}/${subd}/media_srcs.cmake doesn't exist, macro(media_include_subdirectory) just does nothing") 33*ba62d9d3SAndroid Build Coastguard Worker endif() 34*ba62d9d3SAndroid Build Coastguard Workerendmacro() 35*ba62d9d3SAndroid Build Coastguard Worker 36*ba62d9d3SAndroid Build Coastguard Worker# add current path to include path 37*ba62d9d3SAndroid Build Coastguard Workermacro(media_add_curr_to_include_path) 38*ba62d9d3SAndroid Build Coastguard Worker if(${PLATFORM} STREQUAL "linux") 39*ba62d9d3SAndroid Build Coastguard Worker include_directories(${CMAKE_CURRENT_LIST_DIR}) 40*ba62d9d3SAndroid Build Coastguard Worker else() 41*ba62d9d3SAndroid Build Coastguard Worker media_add_curr_to_include_path_ext(${CMAKE_CURRENT_LIST_DIR}) 42*ba62d9d3SAndroid Build Coastguard Worker endif() 43*ba62d9d3SAndroid Build Coastguard Workerendmacro() 44*ba62d9d3SAndroid Build Coastguard Worker 45*ba62d9d3SAndroid Build Coastguard Worker# MediaSetLinkerFlags: apply linker flags for given configuration 46*ba62d9d3SAndroid Build Coastguard Worker# linkerFlags: linker specific options 47*ba62d9d3SAndroid Build Coastguard Worker# linkerTarget: optional parameter - apply linker flags for specfied target 48*ba62d9d3SAndroid Build Coastguard Workermacro (MediaSetLinkerFlags linkerFlags linkerTarget) 49*ba62d9d3SAndroid Build Coastguard Worker foreach (opt ${linkerFlags}) 50*ba62d9d3SAndroid Build Coastguard Worker if ("${linkerTarget}" STREQUAL "") 51*ba62d9d3SAndroid Build Coastguard Worker set (CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} ${opt}") 52*ba62d9d3SAndroid Build Coastguard Worker set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${opt}") 53*ba62d9d3SAndroid Build Coastguard Worker else() 54*ba62d9d3SAndroid Build Coastguard Worker set (CMAKE_SHARED_LINKER_FLAGS_${linkerTarget} "${CMAKE_SHARED_LINKER_FLAGS_${linkerTarget}} ${opt}") 55*ba62d9d3SAndroid Build Coastguard Worker set (CMAKE_EXE_LINKER_FLAGS_${linkerTarget} "${CMAKE_EXE_LINKER_FLAGS_${linkerTarget}} ${opt}") 56*ba62d9d3SAndroid Build Coastguard Worker endif() 57*ba62d9d3SAndroid Build Coastguard Worker endforeach() 58*ba62d9d3SAndroid Build Coastguard Workerendmacro() 59*ba62d9d3SAndroid Build Coastguard Worker 60*ba62d9d3SAndroid Build Coastguard Worker# common defines 61*ba62d9d3SAndroid Build Coastguard Workermacro (MediaAddCommonTargetDefines target) 62*ba62d9d3SAndroid Build Coastguard Worker if (TARGET ${target}) 63*ba62d9d3SAndroid Build Coastguard Worker set_property(TARGET ${target} APPEND PROPERTY COMPILE_DEFINITIONS 64*ba62d9d3SAndroid Build Coastguard Worker $<$<CONFIG:Release>:_RELEASE> 65*ba62d9d3SAndroid Build Coastguard Worker $<$<CONFIG:ReleaseInternal>: _RELEASE_INTERNAL> 66*ba62d9d3SAndroid Build Coastguard Worker $<$<CONFIG:Debug>: _DEBUG DEBUG> 67*ba62d9d3SAndroid Build Coastguard Worker ) 68*ba62d9d3SAndroid Build Coastguard Worker endif() 69*ba62d9d3SAndroid Build Coastguard Workerendmacro() 70*ba62d9d3SAndroid Build Coastguard Worker 71*ba62d9d3SAndroid Build Coastguard Workerinclude( ${MEDIA_EXT_CMAKE}/ext/media_utils_ext.cmake OPTIONAL) 72