Files
kekkodance--webos-steam-view/cmake/ExternalWebOSUserland.cmake

67 lines
2.5 KiB
CMake

# To suppress warnings for ExternalProject DOWNLOAD_EXTRACT_TIMESTAMP
if (POLICY CMP0135)
cmake_policy(SET CMP0135 NEW)
endif ()
if (TARGET ext_webos_userland)
return()
endif ()
message(STATUS "Using external webos-userland")
include(ExternalProject)
set(EXT_WEBOS_USERLAND_TOOLCHAIN_ARGS)
if (CMAKE_TOOLCHAIN_FILE)
list(APPEND EXT_WEBOS_USERLAND_TOOLCHAIN_ARGS "-DCMAKE_TOOLCHAIN_FILE:string=${CMAKE_TOOLCHAIN_FILE}")
endif ()
if (CMAKE_TOOLCHAIN_ARGS)
list(APPEND EXT_WEBOS_USERLAND_TOOLCHAIN_ARGS "-DCMAKE_TOOLCHAIN_ARGS:string=${CMAKE_TOOLCHAIN_ARGS}")
endif ()
ExternalProject_Add(ext_webos_userland
GIT_REPOSITORY https://github.com/webosbrew/webos-userland.git
GIT_TAG main
CMAKE_ARGS ${EXT_WEBOS_USERLAND_TOOLCHAIN_ARGS}
-DCMAKE_BUILD_TYPE:string=${CMAKE_BUILD_TYPE}
-DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR>
)
ExternalProject_Get_Property(ext_webos_userland INSTALL_DIR)
macro(add_webos_userland_library)
cmake_parse_arguments(_ADD "" "PREFIX;SONAME" "INCLUDES" ${ARGN})
string(TOLOWER "${_ADD_PREFIX}" _ADD_PREFIX_LOWER)
set(_ADD_TARGET "${_ADD_PREFIX_LOWER}_target")
if (TARGET ${_ADD_TARGET})
return()
endif ()
add_library(${_ADD_TARGET} SHARED IMPORTED)
message(STATUS "Adding ${_ADD_PREFIX_LOWER}")
set_target_properties(${_ADD_TARGET} PROPERTIES IMPORTED_LOCATION "${INSTALL_DIR}/lib/${_ADD_SONAME}")
ExternalProject_Add_Step(ext_webos_userland lib_${_ADD_PREFIX_LOWER} BYPRODUCTS "${INSTALL_DIR}/lib/${_ADD_SONAME}")
add_dependencies(${_ADD_TARGET} ext_webos_userland)
if (_ADD_INCLUDES)
list(TRANSFORM _ADD_INCLUDES PREPEND "${INSTALL_DIR}/include/")
set(${_ADD_PREFIX}_INCLUDE_DIRS ${_ADD_INCLUDES})
else ()
set(${_ADD_PREFIX}_INCLUDE_DIRS ${INSTALL_DIR}/include)
endif ()
set(${_ADD_PREFIX}_FOUND TRUE)
set(${_ADD_PREFIX}_INCLUDEDIR ${INSTALL_DIR}/include)
set(${_ADD_PREFIX}_LIBRARY ${_ADD_TARGET})
set(${_ADD_PREFIX}_LIBRARIES ${_ADD_TARGET})
endmacro()
list(APPEND CMAKE_MESSAGE_INDENT " ")
add_webos_userland_library(PREFIX LGNCOPENAPI SONAME liblgncopenapi.so INCLUDES lgncopenapi)
add_webos_userland_library(PREFIX NDL_DIRECTMEDIA SONAME libNDL_directmedia.so INCLUDES libndl-media)
add_webos_userland_library(PREFIX LIBPLAYERAPIS SONAME libplayerAPIs.so INCLUDES starfish-media-pipeline)
add_webos_userland_library(PREFIX HELPERS SONAME libhelpers.so INCLUDES webos-helpers)
add_webos_userland_library(PREFIX LIBACBAPI SONAME libAcbAPI.so INCLUDES appswitching-control-block)
list(POP_BACK CMAKE_MESSAGE_INDENT)