Update package version to 0.9.11
[platform/core/uifw/libscl-core.git] / packaging / libscl-core.spec
index 46b8eb6..9b5da67 100644 (file)
@@ -1,15 +1,14 @@
 %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.30
+Version:    0.9.11
 Release:    1
 Group:      Graphics & UI Framework/Input
 License:    Apache-2.0
@@ -20,7 +19,7 @@ BuildRequires:  pkgconfig(vconf)
 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
@@ -28,59 +27,133 @@ BuildRequires:  pkgconfig(ecore-x)
 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}/*