%bcond_with x
%bcond_with wayland
-%if "%{?profile}" == "wearable"
-%define WITH_WEBSOCKET TRUE
-%else
-%define WITH_WEBSOCKET FALSE
-%endif
+# Do not create auto-Provides from .so files of wearable so that
+# we can manually create .so Provides from the main package,
+# which eliminates ambiguity in build systems.
+%global __provides_exclude_from ^%{_libdir}/.*\\.so.wearable$
Name: libscl-core
Summary: A library for developing software keyboards
-Version: 0.4.26
+Version: 0.9.11
Release: 1
Group: Graphics & UI Framework/Input
License: Apache-2.0
BuildRequires: pkgconfig(dlog)
BuildRequires: pkgconfig(isf)
%if %{with wayland}
-BuildRequires: pkgconfig(ecore-wayland)
+BuildRequires: pkgconfig(ecore-wl2)
BuildRequires: pkgconfig(wayland-client)
BuildRequires: pkgconfig(input-method-client)
%else
BuildRequires: pkgconfig(x11)
%endif
BuildRequires: pkgconfig(libscl-common)
-BuildRequires: pkgconfig(capi-appfw-application)
-%if "%{WITH_WEBSOCKET}" == "TRUE"
+BuildRequires: pkgconfig(appcore-efl)
+BuildRequires: pkgconfig(capi-appfw-app-common)
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if wearable || "undefined"
+%if "%{?profile}" != "mobile" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
BuildRequires: pkgconfig(libwebsockets)
%endif
+Provides: %{name}-profile_common = %{version}-%{release}
+Provides: %{name}-profile_mobile = %{version}-%{release}
+Provides: %{name}-profile_tv = %{version}-%{release}
+Provides: %{name}-profile_ivi = %{version}-%{release}
%description
A library that helps developing S/W Keyboard
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if wearable || "undefined"
+%if "%{?profile}" != "mobile" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+%package profile_wearable
+Summary: libscl-core subpackage for wearable
+Requires: %{name} = %{version}-%{release}
+%description profile_wearable
+A library extension for %{name} for developing software keyboards for wearable.
+%endif
+
%package devel
Summary: SCL-Core header file
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
-
%description devel
A devel package of libscl-core library that helps developing S/W Keyboard
%prep
%setup -q
-
%build
-export CFLAGS+=" -DTIZEN_DEBUG_ENABLE -Werror"
-export CXXFLAGS+=" -DTIZEN_DEBUG_ENABLE -Werror"
+export CFLAGS+=" -fvisibility=hidden -DTIZEN_DEBUG_ENABLE -Werror"
+export CXXFLAGS+=" -fvisibility=hidden -fvisibility-inlines-hidden -DTIZEN_DEBUG_ENABLE -Werror"
export FFLAGS+=" -DTIZEN_DEBUG_ENABLE"
rm -rf CMakeFiles
rm -rf CMakeCache.txt
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if wearable || "undefined"
+%if "%{?profile}" != "mobile" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+# wearable
+mkdir -p wearable
+pushd wearable
%if %{with wayland}
-cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DLIB_INSTALL_DIR:PATH=%{_libdir} -Dwith_wayland=TRUE -Dwith_websocket=%{WITH_WEBSOCKET}
+cmake .. -DCMAKE_INSTALL_PREFIX=%{_prefix} -DLIB_INSTALL_DIR:PATH=%{_libdir} -Dwith_wayland=TRUE -Dwith_websocket=TRUE
%else
-cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DLIB_INSTALL_DIR:PATH=%{_libdir} -Dwith_websocket=%{WITH_WEBSOCKET}
+cmake .. -DCMAKE_INSTALL_PREFIX=%{_prefix} -DLIB_INSTALL_DIR:PATH=%{_libdir} -Dwith_websocket=TRUE
%endif
make %{?_smp_mflags}
+popd
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if mobile || tv || ivi || common || "undefined"
+%if "%{?profile}" != "wearable"
+# common
+%if %{with wayland}
+cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DLIB_INSTALL_DIR:PATH=%{_libdir} -Dwith_wayland=TRUE -Dwith_websocket=FALSE
+%else
+cmake . -DCMAKE_INSTALL_PREFIX=%{_prefix} -DLIB_INSTALL_DIR:PATH=%{_libdir} -Dwith_websocket=FALSE
+%endif
+make %{?_smp_mflags}
+%endif
%install
rm -rf %{buildroot}
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if wearable || "undefined"
+%if "%{?profile}" != "mobile" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+pushd wearable
%make_install
+%if "%{?profile}" == "wearable"
+cp %{buildroot}%{_libdir}/%{name}.so %{buildroot}%{_libdir}/%{name}.so.wearable
+%else
+mv %{buildroot}%{_libdir}/%{name}.so %{buildroot}%{_libdir}/%{name}.so.wearable
+%endif
+popd
+%endif
-
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if mobile || tv || ivi || common || "undefined"
+%if "%{?profile}" != "wearable"
+%make_install
+%endif
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if wearable || "undefined"
+%if "%{?profile}" != "mobile" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+%post profile_wearable
+pushd %{_libdir}
+for FILE in %{name}.so.wearable; do ln -sf "$FILE" "${FILE%.wearable}"; done
+popd
+/sbin/ldconfig
+
+%preun profile_wearable
+rm %{_libdir}/%{name}.so
+/sbin/ldconfig
+%endif
+
%files
%manifest %{name}.manifest
%defattr(-,root,root,-)
%{_libdir}/%{name}.so
%license LICENSE
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if wearable || "undefined"
+%if "%{?profile}" != "mobile" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+
+%files profile_wearable
+%manifest %{name}.manifest
+%defattr(-,root,root,-)
+%{_libdir}/%{name}.so.wearable
+%endif
+
%files devel
%defattr(-,root,root,-)
%{_includedir}/*