Support dual ABI 54/130254/2
authorDenis Khalikov <d.khalikov@partner.samsung.com>
Thu, 23 Mar 2017 16:03:57 +0000 (19:03 +0300)
committerDenis Khalikov <d.khalikov@partner.samsung.com>
Fri, 19 May 2017 14:35:56 +0000 (17:35 +0300)
Change-Id: Ife7bc516b930b4e746bc9f13a6894ba0ece861e9

Makefile.am
autogen.sh
configure.ac
packaging/pepper-dali.spec
pepper-dali-cxx03.pc.in [new file with mode: 0644]
pepper-dali.pc.in
pepper-dali/Makefile.am

index 1ff1a0320fcfb14ba1cd79da4373ffa001051715..a12fad4d82e659892a38823319ed5644aaadc3dc 100644 (file)
@@ -1,5 +1,9 @@
 SUBDIRS = pepper-dali
 
+if ENABLE_CXX03_ABI
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = pepper-dali-cxx03.pc
+else
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = pepper-dali.pc
-
+endif
index d247709f8e77066d91d0624b59902f3a0a09a63b..8b95b42cbf36945193632758a6e0f580bac430c1 100755 (executable)
@@ -9,7 +9,4 @@ echo "Running autoconf..." ; autoconf || exit 1
 echo "Running libtoolize..." ; (libtoolize --copy --automake || glibtoolize --automake) || exit 1
 echo "Running automake..." ; automake --add-missing --copy --gnu || exit 1
 
-if [ -z "$NOCONFIGURE" ]; then
-         ./configure "$@"
-fi
-
+./configure $@
index e869ebed64be84fc66f9d5f70a5d39011eff7a84..e976784a8d2d5d26977352d892a349b5352d788c 100644 (file)
@@ -12,17 +12,41 @@ AM_INIT_AUTOMAKE(1.6)
 AC_PROG_CXX
 AC_PROG_LIBTOOL
 
+AC_ARG_ENABLE([cxx03_abi],
+              [AC_HELP_STRING([--enable-cxx03-abi],
+                              [Specify abi for the build])],
+              [enable_cxx03_abi=$enableval],
+              [enable_cxx03_abi=no])
+
+AM_CONDITIONAL([ENABLE_CXX03_ABI], [test x$enable_cxx03_abi = xyes])
+
 # Checks for libraries.
 PKG_CHECK_MODULES([PEPPER], [pepper xkbcommon])
 PKG_CHECK_MODULES([WAYLAND], [wayland-server xdg-shell-server tizen-extension-client])
-PKG_CHECK_MODULES([DALI], [dali-core dali-adaptor dali-toolkit dali-adaptor-integration])
 PKG_CHECK_MODULES([EFL], [ecore ecore-input ecore-wayland])
 PKG_CHECK_MODULES([WAYLAND_TBM], [wayland-tbm-server])
 
+if test "x$enable_cxx03_abi" = "xyes"; then
+PKG_CHECK_MODULES([DALI], [dali-core-cxx03 dali-adaptor-cxx03 dali-toolkit-cxx03 dali-adaptor-integration-cxx03])
+else
+PKG_CHECK_MODULES([DALI], [dali-core dali-adaptor dali-toolkit dali-adaptor-integration])
+fi
+
+if test "x$enable_cxx03_abi" = "xyes"; then
+ PEPPER_CFLAGS="$PEPPER_CFLAGS -D_GLIBCXX_USE_CXX11_ABI=0"
+fi
+
 AC_CONFIG_FILES([
 Makefile
 pepper-dali/Makefile
 ])
+
+if test "x$enable_cxx03_abi" = "xyes"; then
+AC_OUTPUT([
+pepper-dali-cxx03.pc
+])
+else
 AC_OUTPUT([
 pepper-dali.pc
 ])
+fi
index 23d675dd91a6d8a501f6de91a3a8346fdfba89ba..2be492211723cbc379df3db6af2eecb51736ee6a 100644 (file)
@@ -7,9 +7,13 @@ Group:      Graphics & UI Framework/Wayland Window System
 
 Source:     %{name}-%{version}.tar.xz
 
+BuildRequires: pkgconfig(dali-core-cxx03)
 BuildRequires: pkgconfig(dali-core)
-BuildRequires: pkgconfig(dali-adaptor)
-BuildRequires: pkgconfig(dali-adaptor-integration)
+BuildRequires: dali-adaptor-cxx03
+BuildRequires: dali-adaptor-integration-devel-cxx03
+BuildRequires: pkgconfig(dali-toolkit-cxx03)
+BuildRequires: dali-adaptor
+BuildRequires: dali-adaptor-integration-devel
 BuildRequires: pkgconfig(dali-toolkit)
 BuildRequires: pkgconfig(wayland-server)
 BuildRequires: pkgconfig(pepper)
@@ -27,6 +31,24 @@ Requires: libwayland-extension-server
 DALi backend for pepper.
 Pepper is a lightweight and flexible library for developing various types of wayland compositors.
 
+%package cxx03
+Summary:       DALi backend for pepper with cxx03 abi 
+Provides:      %{name}-cxx03 = %{version}-%{release}
+
+%description cxx03
+DALi backend for pepper with cxx03 abi 
+
+##############################
+# devel
+##############################
+%package devel-cxx03
+Summary:    Development components for pepper-dali
+Group:      Development/Building
+Requires:   %{name}-cxx03 = %{version}-%{release}
+
+%description devel-cxx03
+This package includes developer files common to all packages.
+
 ##############################
 # devel
 ##############################
@@ -51,24 +73,53 @@ This package includes developer files common to all packages.
 %autogen
 make %{?_smp_mflags}
 
+%make_install
+
+pushd %{buildroot}%{_libdir}
+for FILE in libpepper-dali_cxx11.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/$FILE"; done
+mv pkgconfig/pepper-dali.pc %{_builddir}/%{name}-%{version}/pepper-dali.pc 
+popd
+
+make clean
+
+%autogen --enable-cxx03-abi=yes 
+make %{?_smp_mflags}
+
 ##############################
 # Installation
 ##############################
 %install
 %make_install
 
+pushd %{_builddir}/%{name}-%{version}
+for FILE in libpepper-dali_cxx11.so*; do mv "$FILE" "%{buildroot}%{_libdir}/$FILE"; done
+mv pepper-dali.pc %{buildroot}%{_libdir}/pkgconfig/pepper-dali.pc 
+popd
+
 ##############################
 # Files in Binary Packages
 ##############################
 %files -n %{name}
-%manifest pepper-dali.manifest     
+%manifest pepper-dali.manifest
+%defattr(-,root,root,-)
+%{_libdir}/libpepper-dali_cxx11.so*
+
+%files -n %{name}-cxx03
+%manifest pepper-dali.manifest
+%defattr(-,root,root,-)
+%{_libdir}/libpepper-dali.so*
+
+%files devel-cxx03
 %defattr(-,root,root,-)
-%{_libdir}/lib%{name}.so*
+%dir %{_includedir}/pepper-dali/
+%{_includedir}/pepper-dali/pepper-dali.h
+%{_includedir}/pepper-dali/public-api/*
+%{_libdir}/pkgconfig/pepper-dali-cxx03.pc
 
 %files devel
 %defattr(-,root,root,-)
-%dir %{_includedir}/%{name}/
-%{_includedir}/%{name}/pepper-dali.h 
-%{_includedir}/%{name}/public-api/*
-%{_libdir}/pkgconfig/%{name}.pc
+%dir %{_includedir}/pepper-dali/
+%{_includedir}/pepper-dali/pepper-dali.h
+%{_includedir}/pepper-dali/public-api/*
+%{_libdir}/pkgconfig/pepper-dali.pc
 
diff --git a/pepper-dali-cxx03.pc.in b/pepper-dali-cxx03.pc.in
new file mode 100644 (file)
index 0000000..2b65ebb
--- /dev/null
@@ -0,0 +1,13 @@
+# Package Information for pkg-config
+
+prefix=@PREFIX@
+exec_prefix=@EXEC_DIR@
+libdir=@LIB_DIR@
+includedir=@INC_DIR@
+
+Name: Pepper DALi
+Description: The Pepper DALi Libaray
+Version: @VERSION@
+Requires: dali-toolkit-cxx03
+Libs: -L${libdir} -lpepper-dali
+Cflags: -I${includedir}/pepper-dali
index ce92385667edae8ccfa4f146ebb3800549293df0..d71c974996cea398c4a7870ef71f631cd4fa9f2c 100644 (file)
@@ -9,5 +9,5 @@ Name: Pepper DALi
 Description: The Pepper DALi Libaray
 Version: @VERSION@
 Requires: dali-toolkit
-Libs: -L${libdir} -lpepper-dali
+Libs: -L${libdir} -lpepper-dali_cxx11
 Cflags: -I${includedir}/pepper-dali
index 2b748ad6b6a660d02cb398228522a0576e636aec..70fe0a986745cd562ac4d19f99230e2bf9a4876b 100644 (file)
@@ -10,6 +10,8 @@ src_files = $(internal_src_files) \
 pepper_dali_includes = \
         -I.
 
+if ENABLE_CXX03_ABI
+
 libpepper_dali_la_LTLIBRARIES = libpepper-dali.la
 libpepper_dali_ladir = $(libdir)
 libpepper_dali_la_LIBADD = @DALI_LIBS@ @WAYLAND_LIBS@ @PEPPER_LIBS@ @WAYLAND_TBM_LIBS@
@@ -25,6 +27,25 @@ libpepper_dali_la_CXXFLAGS = \
 
 libpepper_dali_la_SOURCES = $(src_files)
 
+else
+
+libpepper_dali_cxx11_la_LTLIBRARIES = libpepper-dali_cxx11.la
+libpepper_dali_cxx11_ladir = $(libdir)
+libpepper_dali_cxx11_la_LIBADD = @DALI_LIBS@ @WAYLAND_LIBS@ @PEPPER_LIBS@ @WAYLAND_TBM_LIBS@
+libpepper_dali_cxx11_la_LDFLAGS = ${LDFLAGS}
+libpepper_dali_cxx11_la_CXXFLAGS = \
+    ${CFLAGS} \
+    $(DALI_CFLAGS) \
+    @EFL_CFLAGS@ \
+    @WAYLAND_CFLAGS@ \
+    @PEPPER_CFLAGS@ \
+    @WAYLAND_TBM_LIBS@ \
+    $(pepper_dali_includes)
+
+libpepper_dali_cxx11_la_SOURCES = $(src_files)
+
+endif
+
 libpepperdalidir = $(includedir)/pepper-dali
 libpepperdali_HEADERS = $(public_api_header_files)