This commit unifies platform-api-wrapper build for standard and TV profiles.
Builds the .so library with GCC, CMake and links with libchromium-impl.
Adds build switch --disable-platform-api-wrapper to disable the functionality
which is enabled by default.
Change-Id: I680d2864ee03687524183175aee1bb2199df256b
Signed-off-by: Gajendra N <gajendra.n@samsung.com>
%define __enable_network_camera 0
%endif
+%define __enable_platform_api_wrapper 1
+%if 0%{?_disable_platform_api_wrapper}
+%define __enable_platform_api_wrapper 0
+%endif
+
%if "%{enable_gamepad_latency_test}" == "1"
%define __enable_gamepad_latency_test 1
%else
%endif
BuildRequires: at-spi2-atk-devel, bison, edje-tools, expat-devel, flex, gettext, gperf, libatk-bridge-2_0-0, libcap-devel, libcurl, libatomic
BuildRequires: libjpeg-turbo-devel, ninja, perl, python3, python3-xml, which
+%if 0%{?__enable_platform_api_wrapper}
+BuildRequires: cmake
+%endif
BuildRequires: pkgconfig(atk)
BuildRequires: pkgconfig(capi-appfw-application)
BuildRequires: pkgconfig(capi-appfw-app-manager)
BuildRequires: pkgconfig(tv-resource-information)
BuildRequires: pkgconfig(vd-win-util)
BuildRequires: pkgconfig(WebProduct)
-BuildRequires: pkgconfig(chromium-efl-platform-api-wrapper)
%if %{tizen_version} >= 60
BuildRequires: pkgconfig(resource-center-api)
%endif
CFLAGS="$(echo $CFLAGS | sed -E 's/-g[0-9] /-g0 /g')"
CXXFLAGS="$(echo $CXXFLAGS | sed -E 's/-g[0-9] /-g0 /g')"
%endif
+
+%if 0%{?__enable_platform_api_wrapper}
+# Build platform api wrapper separately with gcc and cmake.
+./tizen_src/platform_api_wrapper/build.sh %{?tizen_profile_name}
+%endif
+
%if %{__use_clang} == 0
ulimit -n 16384
%endif
%if %{__drm_mapi_aarch_64} && "%{?tizen_profile_name}" == "tv" && %{tizen_version} >= 80
"drm_mapi_aarch_64=true" \
%endif
+ "platform_api_wrapper=%{macro_to_bool __enable_platform_api_wrapper}" \
%endif # _skip_gn
ninja %{_smp_mflags} -C "%{OUTPUT_FOLDER}" \
%else
install -m 0644 "%{OUTPUT_FOLDER}"/libchromium-ewk.so "%{buildroot}"%{CHROMIUM_LIB_DIR}/lib/
%endif
- %if "%{?profile}" == "tv"
- install -m 0644 "%{_libdir}"/libchromium-efl-platform-api-wrapper.so "%{buildroot}"%{CHROMIUM_LIB_DIR}/lib/
- %endif
+%if 0%{?__enable_platform_api_wrapper}
+ install -m 0644 ./tizen_src/platform_api_wrapper/libchromium-efl-platform-api-wrapper.so "%{buildroot}"%{CHROMIUM_LIB_DIR}/lib/
+%endif
%endif
install -m 0644 "%{OUTPUT_FOLDER}"/resources/*.edj "%{buildroot}"%{CHROMIUM_LIB_DIR}/res/themes/
%else
%{CHROMIUM_LIB_DIR}/lib/libchromium-ewk.so
%endif
- %if "%{?profile}" == "tv"
- %{CHROMIUM_LIB_DIR}/lib/libchromium-efl-platform-api-wrapper.so
- %endif
+%if 0%{?__enable_platform_api_wrapper}
+ %{CHROMIUM_LIB_DIR}/lib/libchromium-efl-platform-api-wrapper.so
+%endif
%{CHROMIUM_LIB_DIR}/res/images/*.png
%endif
}
}
-tizen_pkg_config("chromium-efl-platform-api-wrapper") {
- packages = []
- if (tizen_product_tv) {
- packages = [ "chromium-efl-platform-api-wrapper" ]
- }
-}
-
if (enable_wrt_js) {
tizen_pkg_config("appcore-agent") {
packages = [ "appcore-agent" ]
fi
sed -e "s/@PUBLIC_REPO_VERSION@/$PUBLIC_REPO_VERSION/g" \
-e "s/@TIZEN_VERSION@/$DEFAULT_TIZEN_VERSION/g" \
- -e "s#@RPM_LOCAL_PATH_PREFIX@#$PWD#g" \
tizen_src/build/gbs.conf.in > tizen_src/build/gbs.conf
function getSystemDeps() {
--disable-wrtjs)
ARGS+=(--define "_disable_wrt_js 1")
;;
+ --disable-platform-api-wrapper)
+ ARGS+=(--define "_disable_platform_api_wrapper 1")
+ ;;
--gbs-debug)
ARGS+=(--debug)
;;
build_chrome = false
enable_ewk_interface = false
+ platform_api_wrapper = false
enable_wrt_js = false
tizen_pepper_extensions = false
use_gstreamer_fft = false
ewk_bringup = true
-platform_api_wrapper = true
wayland_bringup = use_wayland
compile_suid_client = true
#
[profile.tztv_9.0_arm-pontusm]
obs = obs.tizen_product_tv
-repos = repo.tv_product_9.0_pontusm, repo.tv_product_9.0_base, repo.tv_product_9.0_pontusm_local
+repos = repo.tv_product_9.0_pontusm, repo.tv_product_9.0_base
buildroot = ~/GBS-ROOT-TZTV_9.0_ARM-PONTUSM
[repo.tv_product_9.0_base]
[repo.tv_product_9.0_pontusm]
url = http://repos.vd.sec.samsung.net/products/tv/official/2025/ONEMAIN/PontusM/latest/repos/product/armv7l/packages/
-[repo.tv_product_9.0_pontusm_local]
-url = @RPM_LOCAL_PATH_PREFIX@/tizen_src/build/local_repository/
-
###############################################
#
# Tizen v8.0 for product tv (PontusM armv7l)
#include "media/filters/ieme_drm_bridge.h"
#include <drmdecrypt_api.h>
-#include <platform-api-wrapper/platform_api_wrapper.h>
#include <algorithm>
#include <limits>
#include "base/strings/string_number_conversions.h"
#include "content/public/common/content_switches.h"
#include "media/base/decoder_buffer.h"
+#include "tizen_src/platform_api_wrapper/platform_api_wrapper.h"
#include "url/gurl.h"
namespace media {
if (tizen_product_tv) {
configs += [ "//tizen_src/build:WebProduct" ]
configs += [ "//tizen_src/build:drmdecrypt" ]
- configs += [ "//tizen_src/build:chromium-efl-platform-api-wrapper" ]
}
deps = [
"//base/:base_static",
deps += [ "//ui/ozone" ]
}
+ libs = []
if (is_clang) {
- libs = [ "atomic" ]
+ libs += [ "atomic" ]
ldflags += [ "-Wl,-rpath=\$ORIGIN/:/usr/local/lib/" ]
}
+ if (platform_api_wrapper) {
+ lib_dirs = [ "//tizen_src/platform_api_wrapper" ]
+ libs += [ "chromium-efl-platform-api-wrapper" ]
+ }
+
if (enable_wrt_js) {
deps += [ "//wrt:wrt_lib" ]
}
#include "renderer/key_systems_tizen.h"
#include <emeCDM/IEME.h>
-#include <platform-api-wrapper/platform_api_wrapper.h>
#include <algorithm>
#include "base/logging.h"
#include "base/memory/ptr_util.h"
#include "renderer/tizen_key_system_info.h"
+#include "tizen_src/platform_api_wrapper/platform_api_wrapper.h"
namespace efl_integration {
INCLUDE(FindPkgConfig)
-pkg_check_modules(PACKAGE_DEPS REQUIRED drmdecrypt)
+if (TIZEN_PROFILE STREQUAL "tv")
+ pkg_check_modules(PACKAGE_DEPS REQUIRED drmdecrypt)
+ add_compile_definitions(OS_TIZEN_TV_PRODUCT)
+endif()
-add_library(chromium-efl-platform-api-wrapper
+add_library(chromium-efl-platform-api-wrapper SHARED
platform_api_wrapper.cc
)
-target_link_libraries(chromium-efl-platform-api-wrapper ${PACKAGE_DEPS_LIBRARIES})
+if (TIZEN_PROFILE STREQUAL "tv")
+ target_include_directories(chromium-efl-platform-api-wrapper PUBLIC ${PACKAGE_DEPS_INCLUDE_DIRS})
+ target_link_libraries(chromium-efl-platform-api-wrapper ${PACKAGE_DEPS_LIBRARIES})
+endif()
+
target_link_libraries(chromium-efl-platform-api-wrapper stdc++)
-target_include_directories(chromium-efl-platform-api-wrapper PUBLIC ${PACKAGE_DEPS_INCLUDE_DIRS})
+install(TARGETS chromium-efl-platform-api-wrapper LIBRARY DESTINATION ${CMAKE_SOURCE_DIR})
+++ /dev/null
-This directory has to be built in a separate git codebase,
-and the built rpm has to be copied to tizen_src/build/local_repository/
-gbs -c ./gbs.conf build -P profile.tztv_9.0_arm-pontusm -A armv7l --include-all $1
+# Script for building platform-api-wrapper library with cmake.
+
+cd ./tizen_src/platform_api_wrapper
+rm -r build *.so
+mkdir build && cd build
+cmake ../ -DTIZEN_PROFILE=$1
+make && make install
+rm -r ../build
+++ /dev/null
-prefix=/usr
-exec_prefix=${prefix}
-libdir=${prefix}/lib
-includedir=${prefix}/include
-
-Name: chromium-efl-platform-api-wrapper
-Description: Chromium-Efl Platform Api Wrapper
-Requires: drmdecrypt
-Version: 1.0.0
-
-Libs: -L${libdir} -lchromium-efl-platform-api-wrapper
-Cflags: -I${includedir}/platform-api-wrapper
+++ /dev/null
-###############################################
-#
-# Tizen product tv
-#
-[obs.tizen_product_tv]
-url = https://168.219.243.64/api
-
-###############################################
-#
-# Tizen v9.0 for product tv (PontusM armv7l)
-#
-[profile.tztv_9.0_arm-pontusm]
-obs = obs.tizen_product_tv
-repos = repo.tv_product_9.0_pontusm, repo.tv_product_9.0_base
-buildroot = ~/GBS-ROOT-PLATFORM-API-WRAPPER
-
-[repo.tv_product_9.0_base]
-url = http://repos.vd.sec.samsung.net/base/tizen-9.0-base/standard/latest/repos/base/armv7l/packages/
-
-[repo.tv_product_9.0_pontusm]
-url = http://repos.vd.sec.samsung.net/products/tv/official/2025/ONEMAIN/PontusM/latest/repos/product/armv7l/packages/
+++ /dev/null
-%define _unpackaged_files_terminate_build 0
-
-Name: chromium-efl-platform-api-wrapper
-Summary: Chromium-Efl Plaform Api Wrapper
-Version: 1.0.0
-Release: 1
-Group: Application
-License: Apache-2.0 and BSD-3-Clause
-Source0: %{name}-%{version}.tar.gz
-
-BuildRequires: cmake
-BuildRequires: pkgconfig(drmdecrypt)
-
-%description
-Plaform Api Wrapper
-
-%prep
-%setup -q
-
-%build
-export CXX=/usr/bin/g++
-export CC=/usr/bin/gcc
-export CXXFLAGS="$(echo $CFLAGS | sed 's/-Wl,--as-needed//g')"
-export CXXFLAGS="$(echo $CFLAGS | sed 's/-Wshadow//g')"
-
-%cmake .
-make %{?_smp_mflags}
-
-%install
-
-install -d %{buildroot}/usr/lib/
-install -d %{buildroot}/usr/lib/pkgconfig/
-install -d %{buildroot}/usr/include/platform-api-wrapper/
-
-install -m 0644 ./libchromium-efl-platform-api-wrapper.so %{buildroot}/usr/lib/libchromium-efl-platform-api-wrapper.so
-install -m 0644 ./chromium-efl-platform-api-wrapper.pc %{buildroot}/usr/lib/pkgconfig/chromium-efl-platform-api-wrapper.pc
-install -m 0644 ./platform_api_wrapper.h %{buildroot}/usr/include/platform-api-wrapper/platform_api_wrapper.h
-
-%post -p /sbin/ldconfig
-
-%postun -p /sbin/ldconfig
-
-%files
-/usr/lib/libchromium-efl-platform-api-wrapper.so
-/usr/lib/pkgconfig/chromium-efl-platform-api-wrapper.pc
-/usr/include/platform-api-wrapper/platform_api_wrapper.h
namespace platform_api_wrapper {
+#if defined(OS_TIZEN_TV_PRODUCT)
// eme::IEME wrapper impl
void enumerateMediaKeySystems(vector_wrapper<const char*>* list) {
eme::Status isKeySystemSupported(const char* key_system) {
return eme::IEME::isKeySystemSupported(std::string(key_system));
}
+#endif
} // namespace platform_api_wrapper
+#ifndef PLATFORM_API_WRAPPER_H_
+#define PLATFORM_API_WRAPPER_H_
+
+#if defined(OS_TIZEN_TV_PRODUCT)
#include <emeCDM/IEME.h>
+#endif
+
+#include <vector>
namespace platform_api_wrapper {
std::vector<T> list_;
};
+#if defined(OS_TIZEN_TV_PRODUCT)
// Wrapper APIs for <emeCDM/IEME.h>
void enumerateMediaKeySystems(vector_wrapper<const char*>* list);
bool privacy_mode);
eme::Status isKeySystemSupported(const char* key_system);
+#endif
} // namespace platform_api_wrapper
+
+#endif