Support dual ABI
authorDenis Khalikov <d.khalikov@partner.samsung.com>
Thu, 4 May 2017 06:53:11 +0000 (09:53 +0300)
committerDenis Khalikov <d.khalikov@partner.samsung.com>
Thu, 18 May 2017 09:18:23 +0000 (12:18 +0300)
13 files changed:
build/tizen/Makefile.am
build/tizen/adaptor-uv/Makefile.am
build/tizen/adaptor-uv/configure.ac
build/tizen/adaptor-uv/dali-adaptor-uv-cxx03.pc.in [new file with mode: 0644]
build/tizen/adaptor-uv/dali-adaptor-uv.pc.in
build/tizen/adaptor/Makefile.am
build/tizen/adaptor/configure.ac
build/tizen/adaptor/dali-adaptor-cxx03.pc.in [new file with mode: 0644]
build/tizen/adaptor/dali-adaptor-integration-cxx03.pc.in [new file with mode: 0644]
build/tizen/adaptor/dali-adaptor.pc.in
build/tizen/plugins/Makefile.am
build/tizen/plugins/configure.ac
packaging/dali-adaptor.spec

index 3210dfa..108ccb2 100644 (file)
@@ -42,8 +42,8 @@ rename_cov_data:
        @test -z $(COVERAGE_DIR) || mkdir -p $(COVERAGE_DIR)
        @rm -f $(COVERAGE_DIR)/*
        @-cp adaptor/.libs/*.gcda adaptor/.libs/*.gcno  $(COVERAGE_DIR)
-       @for i in `find $(COVERAGE_DIR) -name "libdali_adaptor_la-*.gcda" -o -name "libdali_adaptor_la-*.gcno"` ;\
-               do mv $$i `echo $$i | sed s/libdali_adaptor_la-//` ; echo $$i ; done
+       @for i in `find $(COVERAGE_DIR) -name "libdali_adaptor*_la-*.gcda" -o -name "libdali_adaptor*_la-*.gcno"` ;\
+               do mv $$i `echo $$i | sed s/libdali_adaptor*_la-//` ; echo $$i ; done
 
 cov_data: rename_cov_data
        @cd $(COVERAGE_DIR) ; lcov $(LCOV_OPTS) --base-directory . --directory . -c -o dali.info
index 55348f1..9de9012 100755 (executable)
@@ -273,9 +273,16 @@ main_loop_integration_src_files = $(adaptor_common_internal_ecore_src_files)
 input_event_handler_src_files = $(adaptor_ecore_x_event_handler_internal_src_files)
 endif
 
-
+if ENABLE_CXX03_ABI
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = dali-adaptor-uv-cxx03.pc
+else
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = dali-adaptor-uv.pc
+endif
+
+
+if ENABLE_CXX03_ABI
 
 lib_LTLIBRARIES = libdali-adaptor-uv.la
 
@@ -591,10 +598,326 @@ linker_test_CXXFLAGS += \
 endif
 
 
-linker_test_DEPENDENCIES = libdali-adaptor-uv.la
+linker_test_DEPENDENCIES = libdali-adaptor-uv_cx11.la
 linker_test_LDADD = \
   $(DALICORE_LIBS) \
   $(VCONF_LIBS) \
   libdali-adaptor-uv.la \
   $(HARFBUZZ_LIBS) \
   -L${prefix}/lib
+
+else
+
+lib_LTLIBRARIES = libdali-adaptor-uv_cxx11.la
+libdali_adaptor_uv_cxx11_la_SOURCES = \
+                     $(base_adaptor_src_files) \
+                     $(main_loop_integration_src_files) \
+                     $(tizen_platform_abstraction_src_files) \
+                     $(text_abstraction_src_files) \
+                     $(devel_api_src_files) \
+                     $(public_api_src_files) \
+                     $(adaptor_internal_src_files) \
+                     $(input_event_handler_src_files)
+
+
+if ENABLE_NETWORK_LOGGING
+libdali_adaptor_uv_cxx11_la_SOURCES += \
+  $(base_adaptor_networking_src_files)
+endif
+
+libdali_adaptor_uv_cxx11_la_DEPENDENCIES =
+
+# List include directories with more platform-specific (tizen) before portable root:
+libdali_adaptor_uv_cxx11_la_includes = \
+                      -I../../.. \
+                      -I../../../platform-abstractions/tizen \
+                      -I../../../platform-abstractions/tizen/resource-loader \
+                      -I../../../platform-abstractions/portable \
+                      -I../../../platform-abstractions/ \
+                      -I../../../adaptors/public-api \
+                      -I../../../adaptors/integration-api \
+                      -I../../../adaptors/public-api/adaptor-framework \
+                      -I../../../adaptors/devel-api/adaptor-framework \
+                      -I../../../adaptors/common \
+                      -I../../../adaptors/base/interfaces \
+                      -I../../../adaptors/ \
+                      -I../../../text \
+                      -I../../../text/dali/internal/libunibreak \
+                      -I../../../third-party/image-resampler
+
+if WAYLAND
+libdali_adaptor_uv_cxx11_la_includes += -I../../../adaptors/integration-api/wayland
+if USE_ECORE_WAYLAND
+libdali_adaptor_uv_cxx11_la_includes += \
+                      -I../../../adaptors/ecore/common \
+                      -I../../../adaptors/ecore/wayland
+else
+libdali_adaptor_uv_cxx11_la_includes += -I../../../adaptors/wayland \
+                               -I../../../adaptors/wayland/input/text/imf \
+                               -I../../../adaptors/wayland/clipboard \
+                               -I../../../adaptors/wayland/native-image
+endif # USE_ECORE_WAYLAND
+
+libdali_adaptor_uv_cxx11_la_includes += \
+                      -I../../../adaptors/tizen
+
+else
+libdali_adaptor_uv_cxx11_la_includes += \
+                      -I../../../adaptors/ecore/common \
+                      -I../../../adaptors/x11 \
+                      -I../../../adaptors/integration-api/x11
+endif # WAYLAND
+
+if UBUNTU_PROFILE
+libdali_adaptor_uv_cxx11_la_includes += \
+                      -I../../../adaptors/ubuntu
+else
+libdali_adaptor_uv_cxx11_la_includes += \
+                      -I../../../adaptors/tizen
+endif
+
+daliDefaultThemeDir  = ${dataReadWriteDir}/theme/
+daliShaderbinCacheDir = ${dataReadOnlyDir}/core/shaderbin/
+
+libdali_adaptor_uv_cxx11_la_CXXFLAGS = \
+                      -DDALI_DATA_RW_DIR="\"${daliReadWriteDir}\"" \
+                      -DDALI_DATA_RO_DIR="\"${daliReadOnlyDir}\"" \
+                      -DDALI_DEFAULT_FONT_CACHE_DIR="\"${daliDefaultFontCacheDir}\"" \
+                      -DDALI_USER_FONT_CACHE_DIR="\"${daliUserFontCacheDir}\"" \
+                      -DDALI_SHADERBIN_DIR="\"${daliShaderbinCacheDir}\"" \
+                      -DDALI_DEFAULT_THEME_DIR="\"${daliDefaultThemeDir}\"" \
+                      -DFONT_PRELOADED_PATH="\"${fontPreloadedPath}\"" \
+                      -DFONT_DOWNLOADED_PATH="\"${fontDownloadedPath}\"" \
+                      -DFONT_APPLICATION_PATH="\"${fontApplicationPath}\"" \
+                      -DFONT_CONFIGURATION_FILE="\"${fontConfigurationFile}\"" \
+                      -DTIZEN_PLATFORM_CONFIG_SUPPORTED=${tizenPlatformConfigSupported} \
+                      -DNON_POWER_OF_TWO_TEXTURES \
+                      -DDALI_COMPILATION -DDALI_ADAPTOR_COMPILATION \
+                      -DWAYLAND_EXTENSIONS_SUPPORTED \
+                      -Werror -Wall -lgcc \
+                      $(libdali_adaptor_uv_cxx11_la_includes) \
+                      $(DALI_ADAPTOR_CFLAGS) \
+                      $(DALICORE_CFLAGS) \
+                      $(OPENGLES20_CFLAGS) \
+                      $(FREETYPE_CFLAGS) \
+                      $(FONTCONFIG_CFLAGS) \
+                      $(PNG_CFLAGS) \
+                      $(DLOG_CFLAGS) \
+                      $(VCONF_CFLAGS) \
+                      $(EXIF_CFLAGS) \
+                      $(MMFSOUND_CFLAGS) \
+                      $(TTS_CFLAGS) \
+                      $(LIBDRM_CFLAGS) \
+                      $(LIBEXIF_CFLAGS) \
+                      $(LIBCURL_CFLAGS) \
+                      $(TPKP_CURL_CFLAGS)
+
+libdali_adaptor_uv_cxx11_la_CFLAGS = $(libdali_adaptor_uv_cxx11_la_CXXFLAGS)
+
+libdali_adaptor_uv_cxx11_la_LIBADD = \
+                      $(DALICORE_LIBS) \
+                      $(OPENGLES20_LIBS) \
+                      $(FREETYPE_LIBS) \
+                      $(FONTCONFIG_LIBS) \
+                      $(PNG_LIBS) \
+                      $(DLOG_LIBS) \
+                      $(VCONF_LIBS) \
+                      $(EXIF_LIBS) \
+                      $(TTS_LIBS) \
+                      $(LIBDRM_LIBS) \
+                      $(LIBEXIF_LIBS) \
+                      $(LIBCURL_LIBS) \
+                      $(HARFBUZZ_LIBS) \
+                      $(TPKP_CURL_LIBS) \
+                      -lgif \
+                      -lpthread \
+                      -lturbojpeg
+
+if USE_EFL
+# EVAS used indicator
+libdali_adaptor_uv_cxx11_la_CXXFLAGS += $(ELEMENTARY_CFLAGS) \
+                               $(EVAS_CFLAGS) \
+                               $(ECORE_CFLAGS) \
+                               $(ECORE_IPC_CFLAGS) \
+                               $(ELDBUS_CFLAGS) \
+                               -DUSE_EFL
+
+
+libdali_adaptor_uv_cxx11_la_LIBADD += $(ELEMENTARY_LIBS) \
+                             $(ECORE_IPC_LIBS) \
+                             $(ELDBUS_LIBS)
+
+else
+
+if !UBUNTU_PROFILE
+libdali_adaptor_uv_cxx11_la_CXXFLAGS += $(ECORE_WAYLAND_CFLAGS)
+libdali_adaptor_uv_cxx11_la_LIBADD += $(ECORE_WAYLAND_LIBS)
+endif # !UBUNTU_PROFILE
+
+endif # USE_EFL
+
+if USE_APPFW
+
+libdali_adaptor_uv_cxx11_la_CXXFLAGS += $(CAPI_APPFW_APPLICATION_CFLAGS) \
+                               $(CAPI_SYSTEM_SYSTEM_SETTINGS_CFLAGS) \
+                               $(CAPI_SYSTEM_INFO_CFLAGS) \
+                               $(TTS_CFLAGS) \
+                               $(CAPI_SYSTEM_SENSOR_CFLAGS)
+
+libdali_adaptor_uv_cxx11_la_LIBADD += $(CAPI_APPFW_APPLICATION_LIBS) \
+                             $(CAPI_SYSTEM_SYSTEM_SETTINGS_LIBS) \
+                             $(CAPI_SYSTEM_INFO_LIBS) \
+                             $(TTS_LIBS) \
+                             $(CAPI_SYSTEM_SENSOR_LIBS)
+
+endif
+if WAYLAND
+# This is to avoid having to include wayland-egl.h everywhere
+libdali_adaptor_uv_cxx11_la_CXXFLAGS += -DWL_EGL_PLATFORM
+libdali_adaptor_uv_cxx11_la_CXXFLAGS += $(WAYLAND_CFLAGS)
+libdali_adaptor_uv_cxx11_la_CXXFLAGS += $(WAYLAND_EXTENSION_CFLAGS)
+
+libdali_adaptor_uv_cxx11_la_LIBADD += $(WAYLAND_LIBS)
+libdali_adaptor_uv_cxx11_la_LIBADD += $(WAYLAND_EXTENSION_LIBS)
+
+else
+libdali_adaptor_uv_cxx11_la_CXXFLAGS += $(X11_CFLAGS)
+libdali_adaptor_uv_cxx11_la_LIBADD += $(X11_LIBS)
+libdali_adaptor_uv_cxx11_la_LIBADD += $(ECORE_X_LIBS)
+endif
+
+if COMMON_PROFILE
+libdali_adaptor_uv_cxx11_la_CXXFLAGS += $(HAPTIC_CFLAGS)
+endif
+
+if MOBILE_PROFILE
+libdali_adaptor_uv_cxx11_la_CXXFLAGS += \
+                      $(DEVICED_CFLAGS) \
+                      $(EFL_ASSIST_CFLAGS) \
+                      $(NATIVE_BUFFER_CFLAGS) \
+                      $(NATIVE_BUFFER_POOL_CFLAGS)
+
+libdali_adaptor_uv_cxx11_la_LIBADD += \
+                      $(EFL_ASSIST_LIBS) \
+                      $(NATIVE_BUFFER_LIBS) \
+                      $(NATIVE_BUFFER_POOL_LIBS)
+endif
+
+if WEARABLE_PROFILE
+libdali_adaptor_uv_cxx11_la_CXXFLAGS += \
+                      $(HAPTIC_CFLAGS) \
+                      $(EFL_ASSIST_CFLAGS)
+endif
+
+if TV_PROFILE
+libdali_adaptor_uv_cxx11_la_CXXFLAGS += $(HAPTIC_CFLAGS)
+libdali_adaptor_uv_cxx11_la_LIBADD +=
+endif
+
+if IVI_PROFILE
+libdali_adaptor_uv_cxx11_la_CXXFLAGS += \
+                      $(DEVICED_CFLAGS) \
+                      $(EFL_ASSIST_CFLAGS) \
+                      $(NATIVE_BUFFER_CFLAGS) \
+                      $(NATIVE_BUFFER_POOL_CFLAGS)
+
+libdali_adaptor_uv_cxx11_la_LIBADD += \
+                      $(EFL_ASSIST_LIBS) \
+                      $(NATIVE_BUFFER_LIBS) \
+                      $(NATIVE_BUFFER_POOL_LIBS)
+endif
+
+if UBUNTU_PROFILE
+libdali_adaptor_uv_cxx11_la_LIBADD += -ljpeg
+CFLAGS += -fPIC
+endif
+
+tizenadaptorpublicapidir = $(devincludepath)/dali/public-api
+tizenadaptorpublicapi_HEADERS = $(public_api_header_files)
+
+tizenadaptordevelapidir= $(devincludepath)/dali/devel-api
+
+tizenadaptorintegrationapidir = $(devincludepath)/dali/integration-api/adaptors
+tizenadaptorintegrationapi_HEADERS = $(adaptor_integration_api_header_files)
+
+if WAYLAND
+tizenadaptorintegrationwaylandapidir = $(devincludepath)/dali/integration-api/adaptors
+tizenadaptorintegrationwaylandapi_HEADERS = $(adaptor_integration_wayland_api_header_files)
+else
+tizenadaptorintegrationx11apidir = $(devincludepath)/dali/integration-api/adaptors
+tizenadaptorintegrationx11api_HEADERS = $(adaptor_integration_x11_api_header_files)
+endif
+
+tizenadaptorframeworkpublicapidir = $(tizenadaptorpublicapidir)/adaptor-framework
+tizenadaptorframeworkpublicapi_HEADERS = $(public_api_adaptor_framework_header_files)
+
+tizenadaptorframeworkdevelapidir = $(tizenadaptordevelapidir)/adaptor-framework
+tizenadaptorframeworkdevelapi_HEADERS = $(devel_api_adaptor_framework_header_files)
+
+tizentextabstractiondevelapidir = $(tizenadaptordevelapidir)/text-abstraction
+tizentextabstractiondevelapi_HEADERS = $(text_abstraction_header_files)
+
+if !UBUNTU_PROFILE
+
+if !WAYLAND
+tizenadaptorframeworkdevelapi_HEADERS += $(devel_api_adaptor_tizen_x11_header_files)
+endif # NOT WAYLAND
+
+endif # NOT UBUNTU_PROFILE
+
+tizenadaptordaliheaderdir = $(devincludepath)/dali
+tizenadaptordaliheader_HEADERS = $(adaptor_dali_header_file)
+
+install-data-local:
+       $(MKDIR_P) ${DESTDIR}/${daliUserFontCacheDir} ${DESTDIR}/${daliShaderbinCacheDir}
+
+# Install resource log analyzer script
+bin_SCRIPTS = ../../../adaptors/scripts/dalireslog.sh
+
+# package doxygen file (contains doxygen grouping information)
+packagedoxydir = $(devincludepath)/dali/doc
+packagedoxy_HEADERS = $(package_doxy_files)
+
+# linking test
+
+# turn off the linker test if were building for libuv
+# We can't link to LibUV becase it is statically linked to Node.JS (by default)
+if !LIB_UV_EVENT_LOOP
+noinst_PROGRAMS = linker.test
+endif # NOT LIB_UV_EVENT_LOOP
+
+linker_test_SOURCES = linker-test.cpp
+
+linker_test_CXXFLAGS = \
+  -DDALI_ADAPTOR_COMPILATION \
+  -I../../../adaptors/common \
+  -I../../../adaptors/public-api \
+  -I../../../adaptors/integration-api \
+  -I../../../adaptors/base/interfaces \
+  -I../../../adaptors/public-api/adaptor-framework \
+  -I../../../adaptors/devel-api/adaptor-framework \
+  $(DALI_ADAPTOR_CFLAGS) \
+  $(DALICORE_CFLAGS) \
+  $(VCONF_CFLAGS) \
+  $(DALIX11_CFLAGS) \
+  -Werror -Wall
+
+if WAYLAND
+linker_test_CXXFLAGS += \
+  -I../../../adaptors/integration-api/wayland
+else
+
+linker_test_CXXFLAGS += \
+  -I../../../adaptors/integration-api/x11
+endif
+
+
+linker_test_DEPENDENCIES = libdali-adaptor-uv_cx11.la
+linker_test_LDADD = \
+  $(DALICORE_LIBS) \
+  $(VCONF_LIBS) \
+  libdali-adaptor-uv_cxx11.la \
+  $(HARFBUZZ_LIBS) \
+  -L${prefix}/lib
+
+endif
index 1f847b1..51ee04d 100755 (executable)
@@ -35,7 +35,6 @@ FREETYPE_REQUIRED=9.16.3
 # 17.1.11 = Freetype version 2.5.2
 FREETYPE_BITMAP_SUPPORT_VERSION=17.1.11
 
-PKG_CHECK_MODULES(DALICORE, dali-core)
 PKG_CHECK_MODULES(EXIF, libexif)
 PKG_CHECK_MODULES(FREETYPE, [freetype2 >= $FREETYPE_REQUIRED])
 PKG_CHECK_MODULES(FREETYPE_BITMAP_SUPPORT, [freetype2 >= $FREETYPE_BITMAP_SUPPORT_VERSION], [ freetype_bitmap_support=yes  ], [ freetype_bitmap_support=no ] )
@@ -73,7 +72,6 @@ PKG_CHECK_MODULES(ELEMENTARY, elementary)
 PKG_CHECK_MODULES(ELDBUS, eldbus, [ eldbus_available=yes ],  [ eldbus_available=no ] )
 fi
 
-
 DALI_ELDBUS_AVAILABLE=
 if test "x$eldbus_available" = "xyes"; then
   DALI_ELDBUS_AVAILABLE=true
@@ -82,8 +80,6 @@ fi
 AC_SUBST(DALI_ELDBUS_AVAILABLE)
 
 
-PKG_CHECK_MODULES(TPKP_CURL, tpkp-curl, [ tpkp_curl_available=yes ], [ tpkp_curl_available=no ] )
-
 if test "x$tpkp_curl_available" = "xyes"; then
   DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DTPK_CURL_ENABLED "
 fi
@@ -116,7 +112,6 @@ AC_ARG_ENABLE(networklogging,
               [enable_networklogging=$enableval],
               [enable_networklogging=no])
 
-
 if test "x$enable_debug" = "xyes"; then
   DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DDEBUG_ENABLED"
 fi
@@ -138,6 +133,11 @@ if test "x$ecore_imf_1_13" = "xyes"; then
   DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DECORE_IMF_1_13"
 fi
 
+if test "x$enable_cxx03_abi" = "xyes"; then
+ DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -D_GLIBCXX_USE_CXX11_ABI=0"
+fi
+
+
 AC_ARG_ENABLE([gles],
               [AC_HELP_STRING([--enable-gles],
                               [Specify the OpenGL ES version for backwards compatibility])],
@@ -215,6 +215,7 @@ AM_CONDITIONAL([UBUNTU_PROFILE], [test x$enable_profile = xUBUNTU])
 AM_CONDITIONAL([WAYLAND], [test x$enable_wayland = xyes])
 AM_CONDITIONAL([USE_EFL], [test x$enable_efl = xyes])
 AM_CONDITIONAL([USE_APPFW], [test x$enable_appfw = xyes])
+AM_CONDITIONAL([ENABLE_CXX03_ABI], [test x$enable_cxx03_abi = xyes])
 
 AM_CONDITIONAL([ENABLE_NETWORK_LOGGING], [test x$enable_networklogging = xyes])
 
@@ -251,7 +252,17 @@ if test "x$enable_profile" = "xUBUNTU"; then
 PKG_CHECK_MODULES(OPENGLES20, glesv2 egl)
 else
 
+if test "x$enable_cxx03_abi" = "xyes"; then
+PKG_CHECK_MODULES(TPKP_CURL, tpkp-curl-cxx03, [ tpkp_curl_available=yes ], [ tpkp_curl_available=no ] )
+else
+PKG_CHECK_MODULES(TPKP_CURL, tpkp-curl, [ tpkp_curl_available=yes ], [ tpkp_curl_available=no ] )
+fi
 
+if test "x$enable_cxx03_abi" = "xyes"; then
+PKG_CHECK_MODULES(DALICORE, dali-core-cxx03)
+else
+PKG_CHECK_MODULES(DALICORE, dali-core)
+fi
 
 PKG_CHECK_MODULES(DLOG, dlog)
 PKG_CHECK_MODULES(TTS, tts)
@@ -342,10 +353,13 @@ AC_SUBST(tizenPlatformConfigSupported)
 devincludepath=${includedir}
 AC_SUBST(devincludepath)
 
-AC_CONFIG_FILES([
- Makefile
- dali-adaptor-uv.pc
-])
+AC_CONFIG_FILES([Makefile])
+
+if test "x$enable_cxx03_abi" = "xyes"; then
+AC_CONFIG_FILES([dali-adaptor-uv-cxx03.pc])
+else
+AC_CONFIG_FILES([dali-adaptor-uv.pc])
+fi
 
 if test "x$freetype_bitmap_support" = "xyes"; then
 DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DFREETYPE_BITMAP_SUPPORT"
diff --git a/build/tizen/adaptor-uv/dali-adaptor-uv-cxx03.pc.in b/build/tizen/adaptor-uv/dali-adaptor-uv-cxx03.pc.in
new file mode 100644 (file)
index 0000000..f63525f
--- /dev/null
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+apiversion=@DALI_ADAPTOR_VERSION@
+libdir=@libdir@
+includedir=@devincludepath@
+
+Name: dali-adaptor-uv-cxx03
+Description: DALi adaptor using libuv
+Version: ${apiversion}
+Requires: dali-core-cxx03
+Libs: -L${libdir} -ldali-adaptor-uv
+Cflags: -I${includedir}/dali
index 4cee7ac..53367a1 100644 (file)
@@ -8,5 +8,5 @@ Name: dali-adaptor-uv
 Description: DALi adaptor using libuv
 Version: ${apiversion}
 Requires: dali-core
-Libs: -L${libdir} -ldali-adaptor-uv
+Libs: -L${libdir} -ldali-adaptor-uv_cxx11
 Cflags: -I${includedir}/dali
index 6a30e75..1f4b7a2 100644 (file)
@@ -290,8 +290,16 @@ adaptor_internal_src_files += $(static_libraries_glyphy_src_files)
 DALI_ADAPTOR_CFLAGS += -DENABLE_VECTOR_BASED_TEXT_RENDERING
 endif
 
+if ENABLE_CXX03_ABI
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = dali-adaptor-cxx03.pc dali-adaptor-integration-cxx03.pc
+else
 pkgconfigdir = $(libdir)/pkgconfig
 pkgconfig_DATA = dali-adaptor.pc dali-adaptor-integration.pc
+endif
+
+
+if ENABLE_CXX03_ABI
 
 lib_LTLIBRARIES = libdali-adaptor.la
 
@@ -628,3 +636,344 @@ linker_test_LDADD = \
   libdali-adaptor.la \
   $(HARFBUZZ_LIBS) \
   -L${prefix}/lib
+
+
+else
+
+lib_LTLIBRARIES = libdali-adaptor_cxx11.la
+
+libdali_adaptor_cxx11_la_SOURCES = \
+                     $(base_adaptor_src_files) \
+                     $(main_loop_integration_src_files) \
+                     $(tizen_platform_abstraction_src_files) \
+                     $(text_abstraction_src_files) \
+                     $(devel_api_src_files) \
+                     $(public_api_src_files) \
+                     $(adaptor_internal_src_files) \
+                     $(input_event_handler_src_files) \
+                     $(image_resampler_src_files)
+
+
+if ENABLE_NETWORK_LOGGING
+libdali_adaptor_cxx11_la_SOURCES += \
+  $(base_adaptor_networking_src_files)
+endif
+
+libdali_adaptor_cxx11_la_DEPENDENCIES =
+
+# List include directories with more platform-specific (tizen) before portable root:
+libdali_adaptor_cxx11_la_includes = \
+                      -I../../.. \
+                      -I../../../platform-abstractions/tizen \
+                      -I../../../platform-abstractions/tizen/resource-loader \
+                      -I../../../platform-abstractions/portable \
+                      -I../../../platform-abstractions/ \
+                      -I../../../adaptors/public-api \
+                      -I../../../adaptors/integration-api \
+                      -I../../../adaptors/public-api/adaptor-framework \
+                      -I../../../adaptors/devel-api/adaptor-framework \
+                      -I../../../adaptors/common \
+                      -I../../../adaptors/base/interfaces \
+                      -I../../../adaptors/ \
+                      -I../../../text \
+                      -I../../../text/dali/internal/libunibreak \
+                      -I../../../third-party/image-resampler
+
+if WAYLAND
+libdali_adaptor_cxx11_la_includes += -I../../../adaptors/integration-api/wayland
+
+if USE_ECORE_WAYLAND
+libdali_adaptor_cxx11_la_includes += \
+                      -I../../../adaptors/ecore/common \
+                      -I../../../adaptors/ecore/wayland
+else
+libdali_adaptor_cxx11_la_includes += -I../../../adaptors/wayland \
+                               -I../../../adaptors/wayland/input/text/imf \
+                               -I../../../adaptors/wayland/clipboard
+endif # USE_ECORE_WAYLADN
+
+libdali_adaptor_cxx11_la_includes += \
+                      -I../../../adaptors/tizen
+else
+libdali_adaptor_cxx11_la_includes += \
+                      -I../../../adaptors/ecore/common \
+                      -I../../../adaptors/x11 \
+                      -I../../../adaptors/integration-api/x11
+endif # WAYLAND
+
+if UBUNTU_PROFILE
+libdali_adaptor_cxx11_la_includes += \
+                      -I../../../adaptors/ubuntu
+else
+libdali_adaptor_cxx11_la_includes += \
+                      -I../../../adaptors/tizen
+endif
+
+daliDefaultThemeDir  = ${dataReadWriteDir}/theme/
+daliShaderbinCacheDir = ${dataReadOnlyDir}/core/shaderbin/
+
+libdali_adaptor_cxx11_la_CXXFLAGS = \
+                      -DDALI_DATA_RW_DIR="\"${daliReadWriteDir}\"" \
+                      -DDALI_DATA_RO_DIR="\"${daliReadOnlyDir}\"" \
+                      -DDALI_DEFAULT_FONT_CACHE_DIR="\"${daliDefaultFontCacheDir}\"" \
+                      -DDALI_USER_FONT_CACHE_DIR="\"${daliUserFontCacheDir}\"" \
+                      -DDALI_SHADERBIN_DIR="\"${daliShaderbinCacheDir}\"" \
+                      -DDALI_DEFAULT_THEME_DIR="\"${daliDefaultThemeDir}\"" \
+                      -DFONT_PRELOADED_PATH="\"${fontPreloadedPath}\"" \
+                      -DFONT_DOWNLOADED_PATH="\"${fontDownloadedPath}\"" \
+                      -DFONT_APPLICATION_PATH="\"${fontApplicationPath}\"" \
+                      -DFONT_CONFIGURATION_FILE="\"${fontConfigurationFile}\"" \
+                      -DTIZEN_PLATFORM_CONFIG_SUPPORTED=${tizenPlatformConfigSupported} \
+                      -DNON_POWER_OF_TWO_TEXTURES \
+                      -DDALI_COMPILATION -DDALI_ADAPTOR_COMPILATION \
+                      -Werror -Wall -lgcc \
+                      $(libdali_adaptor_cxx11_la_includes) \
+                      $(DALI_ADAPTOR_CFLAGS) \
+                      $(DALICORE_CFLAGS) \
+                      $(OPENGLES20_CFLAGS) \
+                      $(FREETYPE_CFLAGS) \
+                      $(FONTCONFIG_CFLAGS) \
+                      $(PNG_CFLAGS) \
+                      $(DLOG_CFLAGS) \
+                      $(VCONF_CFLAGS) \
+                      $(EXIF_CFLAGS) \
+                      $(MMFSOUND_CFLAGS) \
+                      $(TTS_CFLAGS) \
+                      $(CAPI_SYSTEM_SENSOR_CFLAGS) \
+                      $(LIBDRM_CFLAGS) \
+                      $(LIBEXIF_CFLAGS) \
+                      $(LIBCURL_CFLAGS) \
+                      $(TPKP_CURL_CFLAGS) \
+                      $(UTILX_CFLAGS)
+
+# Todo, as soon as common repos are updated on build server remove this.
+if !COMMON_PROFILE
+libdali_adaptor_cxx11_la_CXXFLAGS += -DWAYLAND_EXTENSIONS_SUPPORTED
+endif
+
+libdali_adaptor_cxx11_la_CFLAGS = $(libdali_adaptor_cxx11_la_CXXFLAGS)
+
+libdali_adaptor_cxx11_la_LIBADD = \
+                      $(DALICORE_LIBS) \
+                      $(OPENGLES20_LIBS) \
+                      $(FREETYPE_LIBS) \
+                      $(FONTCONFIG_LIBS) \
+                      $(PNG_LIBS) \
+                      $(DLOG_LIBS) \
+                      $(VCONF_LIBS) \
+                      $(EXIF_LIBS) \
+                      $(TTS_LIBS) \
+                      $(CAPI_SYSTEM_SENSOR_LIBS) \
+                      $(LIBDRM_LIBS) \
+                      $(LIBEXIF_LIBS) \
+                      $(LIBCURL_LIBS) \
+                      $(HARFBUZZ_LIBS) \
+                      $(TPKP_CURL_LIBS) \
+                      $(UTILX_LIBS) \
+                      -lgif \
+                      -lpthread \
+                      -lturbojpeg \
+                      -ljpeg
+
+if USE_EFL
+# EVAS used indicator
+libdali_adaptor_cxx11_la_CXXFLAGS += $(ELEMENTARY_CFLAGS) \
+                               $(EVAS_CFLAGS) \
+                               $(ECORE_CFLAGS) \
+                               $(ECORE_IPC_CFLAGS) \
+                               $(ELDBUS_CFLAGS) \
+                               -DUSE_EFL
+
+
+libdali_adaptor_cxx11_la_LIBADD += $(ELEMENTARY_LIBS) \
+                             $(ECORE_IPC_LIBS) \
+                             $(ELDBUS_LIBS)
+
+endif
+
+if USE_APPFW
+
+libdali_adaptor_cxx11_la_CXXFLAGS += $(CAPI_APPFW_APPLICATION_CFLAGS) \
+                               $(CAPI_SYSTEM_SYSTEM_SETTINGS_CFLAGS) \
+                               $(CAPI_SYSTEM_INFO_CFLAGS) \
+                               $(TTS_CFLAGS) \
+                               $(SENSOR_CFLAGS)
+
+libdali_adaptor_cxx11_la_LIBADD += $(CAPI_APPFW_APPLICATION_LIBS) \
+                             $(CAPI_SYSTEM_SYSTEM_SETTINGS_LIBS) \
+                             $(CAPI_SYSTEM_INFO_LIBS) \
+                             $(TTS_LIBS) \
+                             $(SENSOR_LIBS)
+
+endif
+if WAYLAND
+# This is to avoid having to include wayland-egl.h everywhere
+libdali_adaptor_cxx11_la_CXXFLAGS += -DWL_EGL_PLATFORM
+libdali_adaptor_cxx11_la_CXXFLAGS += $(WAYLAND_CFLAGS)
+libdali_adaptor_cxx11_la_LIBADD += $(WAYLAND_LIBS)
+else
+libdali_adaptor_cxx11_la_CXXFLAGS += $(X11_CFLAGS)
+libdali_adaptor_cxx11_la_LIBADD += $(X11_LIBS)
+libdali_adaptor_cxx11_la_LIBADD += $(ECORE_X_LIBS)
+endif
+
+if COMMON_PROFILE
+libdali_adaptor_cxx11_la_CXXFLAGS += $(HAPTIC_CFLAGS)
+endif
+
+if MOBILE_PROFILE
+libdali_adaptor_cxx11_la_CXXFLAGS += \
+                      $(DEVICED_CFLAGS) \
+                      $(EFL_ASSIST_CFLAGS) \
+                      $(NATIVE_BUFFER_CFLAGS) \
+                      $(NATIVE_BUFFER_POOL_CFLAGS)
+
+libdali_adaptor_cxx11_la_LIBADD += \
+                      $(EFL_ASSIST_LIBS) \
+                      $(NATIVE_BUFFER_LIBS) \
+                      $(NATIVE_BUFFER_POOL_LIBS)
+endif
+
+if WEARABLE_PROFILE
+libdali_adaptor_cxx11_la_CXXFLAGS += \
+                      $(HAPTIC_CFLAGS) \
+                      $(EFL_ASSIST_CFLAGS) \
+                      $(SCREENCONNECTORPROVIDER_CFLAGS) \
+                      $(APPCORE_WATCH_CFLAGS)
+
+libdali_adaptor_cxx11_la_LIBADD += \
+                      $(SCREENCONNECTORPROVIDER_LIBS) \
+                      $(APPCORE_WATCH_LIBS)
+endif
+
+if TV_PROFILE
+libdali_adaptor_cxx11_la_CXXFLAGS += $(HAPTIC_CFLAGS)
+libdali_adaptor_cxx11_la_LIBADD +=
+endif
+
+if IVI_PROFILE
+libdali_adaptor_cxx11_la_CXXFLAGS += \
+                      $(DEVICED_CFLAGS) \
+                      $(EFL_ASSIST_CFLAGS) \
+                      $(NATIVE_BUFFER_CFLAGS) \
+                      $(NATIVE_BUFFER_POOL_CFLAGS)
+
+libdali_adaptor_cxx11_la_LIBADD += \
+                      $(EFL_ASSIST_LIBS) \
+                      $(NATIVE_BUFFER_LIBS) \
+                      $(NATIVE_BUFFER_POOL_LIBS)
+endif
+
+if UBUNTU_PROFILE
+libdali_adaptor_cxx11_la_LIBADD += -ljpeg
+CFLAGS += -fPIC
+endif
+
+if !UBUNTU_PROFILE
+if WAYLAND
+else
+# X11
+libdali_adaptor_cxx11_la_CXXFLAGS += $(UTILX_CFLAGS)
+libdali_adaptor_cxx11_la_LIBADD += $(UTILX_LIBS)
+endif
+endif
+
+tizenadaptorpublicapidir = $(devincludepath)/dali/public-api
+tizenadaptorpublicapi_HEADERS = $(public_api_header_files)
+
+tizenadaptordevelapidir= $(devincludepath)/dali/devel-api
+
+tizenadaptorintegrationapidir = $(devincludepath)/dali/integration-api/adaptors
+tizenadaptorintegrationapi_HEADERS = $(adaptor_integration_api_header_files)
+
+if WAYLAND
+tizenadaptorintegrationwaylandapidir = $(devincludepath)/dali/integration-api/adaptors
+tizenadaptorintegrationwaylandapi_HEADERS = $(adaptor_integration_wayland_api_header_files)
+tizenadaptorintegrationwaylandapi_HEADERS += $(adaptor_integration_ecore_wayland_api_header_files)
+else
+tizenadaptorintegrationx11apidir = $(devincludepath)/dali/integration-api/adaptors
+tizenadaptorintegrationx11api_HEADERS = $(adaptor_integration_x11_api_header_files)
+endif
+
+tizenadaptorframeworkpublicapidir = $(tizenadaptorpublicapidir)/adaptor-framework
+tizenadaptorframeworkpublicapi_HEADERS = $(public_api_adaptor_framework_header_files)
+
+tizenadaptorframeworkdevelapidir = $(tizenadaptordevelapidir)/adaptor-framework
+tizenadaptorframeworkdevelapi_HEADERS = $(devel_api_adaptor_framework_header_files)
+
+tizentextabstractiondevelapidir = $(tizenadaptordevelapidir)/text-abstraction
+tizentextabstractiondevelapi_HEADERS = $(text_abstraction_header_files)
+
+if !UBUNTU_PROFILE
+tizenadaptorframeworkpublicapi_HEADERS += $(public_api_adaptor_tizen_header_files)
+
+if !WAYLAND
+tizenadaptorframeworkdevelapi_HEADERS += $(devel_api_adaptor_tizen_x11_header_files)
+endif # NOT WAYLAND
+
+endif # NOT UBUNTU_PROFILE
+
+tizenadaptordaliheaderdir = $(devincludepath)/dali
+tizenadaptordaliheader_HEADERS = $(adaptor_dali_header_file)
+
+tizenadaptorpublicapi_HEADERS += $(adaptor_dali_wearable_header_file)
+
+tizenwatchpublicapidir = $(tizenadaptorpublicapidir)/watch
+tizenwatchpublicapi_HEADERS = $(public_dali_watch_header_files)
+
+install-data-local:
+       $(MKDIR_P) ${DESTDIR}/${daliUserFontCacheDir} ${DESTDIR}/${daliShaderbinCacheDir}
+
+# Install resource log analyzer script
+bin_SCRIPTS = ../../../adaptors/scripts/dalireslog.sh
+
+# package doxygen file (contains doxygen grouping information)
+packagedoxydir = $(devincludepath)/dali/doc
+packagedoxy_HEADERS = $(package_doxy_files)
+
+# linking test
+
+# turn off the linker test if were building for libuv
+# We can't link to LibUV becase it is statically linked to Node.JS (by default)
+if !LIB_UV_EVENT_LOOP
+noinst_PROGRAMS = linker.test
+endif # NOT LIB_UV_EVENT_LOOP
+
+linker_test_SOURCES = linker-test.cpp
+
+linker_test_CXXFLAGS = \
+  -DDALI_ADAPTOR_COMPILATION \
+  -I../../../adaptors/common \
+  -I../../../adaptors/public-api \
+  -I../../../adaptors/integration-api \
+  -I../../../adaptors/base/interfaces \
+  -I../../../adaptors/public-api/adaptor-framework \
+  -I../../../adaptors/devel-api/adaptor-framework \
+  $(DALI_ADAPTOR_CFLAGS) \
+  $(DALICORE_CFLAGS) \
+  $(VCONF_CFLAGS) \
+  $(DALIX11_CFLAGS) \
+  -Werror -Wall
+
+if WAYLAND
+linker_test_CXXFLAGS += \
+  -I../../../adaptors/integration-api/wayland
+else
+
+linker_test_CXXFLAGS += \
+  -I../../../adaptors/integration-api/x11
+endif
+
+
+linker_test_DEPENDENCIES = libdali-adaptor_cxx11.la
+linker_test_LDADD = \
+  $(DALICORE_LIBS) \
+  $(VCONF_LIBS) \
+  libdali-adaptor_cxx11.la \
+  $(HARFBUZZ_LIBS) \
+  -L${prefix}/lib
+
+
+
+
+endif
index 062f15e..6429b99 100644 (file)
@@ -35,7 +35,6 @@ FREETYPE_REQUIRED=9.16.3
 # 17.1.11 = Freetype version 2.5.2
 FREETYPE_BITMAP_SUPPORT_VERSION=17.1.11
 
-PKG_CHECK_MODULES(DALICORE, dali-core)
 PKG_CHECK_MODULES(EXIF, libexif)
 PKG_CHECK_MODULES(FREETYPE, [freetype2 >= $FREETYPE_REQUIRED])
 PKG_CHECK_MODULES(FREETYPE_BITMAP_SUPPORT, [freetype2 >= $FREETYPE_BITMAP_SUPPORT_VERSION], [ freetype_bitmap_support=yes  ], [ freetype_bitmap_support=no ] )
@@ -62,7 +61,6 @@ PKG_CHECK_MODULES(ELEMENTARY, elementary)
 PKG_CHECK_MODULES(ELDBUS, eldbus, [ eldbus_available=yes ],  [ eldbus_available=no ] )
 fi
 
-
 DALI_ELDBUS_AVAILABLE=
 if test "x$eldbus_available" = "xyes"; then
   DALI_ELDBUS_AVAILABLE=true
@@ -71,7 +69,11 @@ fi
 AC_SUBST(DALI_ELDBUS_AVAILABLE)
 
 
+if test "x$enable_cxx03_abi" = "xyes"; then
+PKG_CHECK_MODULES(TPKP_CURL, tpkp-curl-cxx03, [ tpkp_curl_available=yes ], [ tpkp_curl_available=no ] )
+else
 PKG_CHECK_MODULES(TPKP_CURL, tpkp-curl, [ tpkp_curl_available=yes ], [ tpkp_curl_available=no ] )
+fi
 
 if test "x$tpkp_curl_available" = "xyes"; then
   DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DTPK_CURL_ENABLED "
@@ -105,7 +107,6 @@ AC_ARG_ENABLE(networklogging,
               [enable_networklogging=$enableval],
               [enable_networklogging=no])
 
-
 if test "x$enable_debug" = "xyes"; then
   DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DDEBUG_ENABLED"
 fi
@@ -197,6 +198,8 @@ AM_CONDITIONAL([UBUNTU_PROFILE], [test x$enable_profile = xUBUNTU])
 AM_CONDITIONAL([WAYLAND], [test x$enable_wayland = xyes])
 AM_CONDITIONAL([USE_EFL], [test x$enable_efl = xyes])
 AM_CONDITIONAL([USE_APPFW], [test x$enable_appfw = xyes])
+AM_CONDITIONAL([ENABLE_CXX03_ABI], [test x$enable_cxx03_abi = xyes])
+
 
 # Platforms with highp shader support can use vector based text
 AM_CONDITIONAL([ENABLE_VECTOR_BASED_TEXT_RENDERING], [test x$enable_profile = xUBUNTU])
@@ -220,6 +223,12 @@ if test "x$enable_profile" = "xLITE"; then
 PKG_CHECK_MODULES(OPENGLES20, gles20)
 fi
 
+if test "x$enable_cxx03_abi" = "xyes"; then
+PKG_CHECK_MODULES(DALICORE, dali-core-cxx03)
+else
+PKG_CHECK_MODULES(DALICORE, dali-core)
+fi
+
 if test "x$enable_profile" = "xWEARABLE"; then
 PKG_CHECK_MODULES(OPENGLES20, glesv2)
 PKG_CHECK_MODULES(SCREENCONNECTORPROVIDER, screen_connector_provider)
@@ -243,7 +252,9 @@ if test "x$enable_profile" = "xUBUNTU"; then
 PKG_CHECK_MODULES(OPENGLES20, glesv2 egl)
 else
 
-
+if test "x$enable_cxx03_abi" = "xyes"; then
+ DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -D_GLIBCXX_USE_CXX11_ABI=0"
+fi
 
 PKG_CHECK_MODULES(DLOG, dlog)
 PKG_CHECK_MODULES(TTS, tts)
@@ -337,11 +348,13 @@ AC_SUBST(tizenPlatformConfigSupported)
 devincludepath=${includedir}
 AC_SUBST(devincludepath)
 
-AC_CONFIG_FILES([
- Makefile
- dali-adaptor.pc
- dali-adaptor-integration.pc
-])
+AC_CONFIG_FILES([Makefile])
+
+if test "x$enable_cxx03_abi" = "xyes"; then
+AC_CONFIG_FILES([dali-adaptor-cxx03.pc dali-adaptor-integration-cxx03.pc])
+else
+AC_CONFIG_FILES([dali-adaptor.pc dali-adaptor-integration.pc])
+fi
 
 if test "x$freetype_bitmap_support" = "xyes"; then
 DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DFREETYPE_BITMAP_SUPPORT"
diff --git a/build/tizen/adaptor/dali-adaptor-cxx03.pc.in b/build/tizen/adaptor/dali-adaptor-cxx03.pc.in
new file mode 100644 (file)
index 0000000..f726245
--- /dev/null
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+apiversion=@DALI_ADAPTOR_VERSION@
+libdir=@libdir@
+includedir=@devincludepath@
+
+Name: dali-adaptor-cxx03
+Description: DALi adaptor using ecore
+Version: ${apiversion}
+Requires: dali-core-cxx03
+Libs: -L${libdir} -ldali-adaptor
+Cflags: -I${includedir}/dali
diff --git a/build/tizen/adaptor/dali-adaptor-integration-cxx03.pc.in b/build/tizen/adaptor/dali-adaptor-integration-cxx03.pc.in
new file mode 100644 (file)
index 0000000..db22442
--- /dev/null
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+apiversion=@DALI_ADAPTOR_VERSION@
+libdir=@libdir@
+includedir=@devincludepath@
+
+Name: dali-adaptor-integration-cxx03
+Description: Integration APIs for dali-adaptor
+Version: ${apiversion}
+Requires: dali-adaptor-cxx03
+Libs: -L${libdir}
+Cflags: -I${includedir}/dali/public-api/adaptor-framework/ -I${includedir}/dali/devel-api/adaptor-framework/ -I${includedir}/dali/integration-api/adaptors/
index 8b94022..b9692a9 100644 (file)
@@ -8,5 +8,5 @@ Name: dali-adaptor
 Description: DALi adaptor using ecore
 Version: ${apiversion}
 Requires: dali-core
-Libs: -L${libdir} -ldali-adaptor
+Libs: -L${libdir} -ldali-adaptor_cxx11
 Cflags: -I${includedir}/dali
index 5944acd..73be2fe 100644 (file)
@@ -25,6 +25,8 @@ plugin_sounds_dir = ../../../plugins/sounds
 
 lib_LTLIBRARIES =
 
+if ENABLE_CXX03_ABI
+
 if USE_FEEDBACK
 lib_LTLIBRARIES += libdali-feedback-plugin.la
 endif
@@ -35,6 +37,23 @@ lib_LTLIBRARIES += libdali-video-player-plugin.la
 endif
 endif
 
+else
+
+if USE_FEEDBACK
+lib_LTLIBRARIES += libdali-feedback-plugin_cxx11.la
+endif
+
+if WAYLAND
+
+if USE_VIDEOPLAYER
+lib_LTLIBRARIES += libdali-video-player-plugin_cxx11.la
+endif
+endif
+endif
+
+
+if ENABLE_CXX03_ABI
+
 if USE_FEEDBACK
 dalisounddir = ${dataReadOnlyDir}/plugins/sounds/
 dalisound_DATA = ${dali_plugin_sound_files}
@@ -106,3 +125,80 @@ libdali_video_player_plugin_la_LDFLAGS = \
 
 endif # USE_VIDEOPLAYER
 endif # WAYLAND
+
+else # CXX03
+
+if USE_FEEDBACK
+dalisounddir = ${dataReadOnlyDir}/plugins/sounds/
+dalisound_DATA = ${dali_plugin_sound_files}
+
+
+# Feedback
+libdali_feedback_plugin_cxx11_la_SOURCES = \
+                     $(feedback_plugin_src_files)
+
+libdali_feedback_plugin_cxx11_la_DEPENDENCIES =
+
+libdali_feedback_plugin_cxx11_la_CXXFLAGS = -DDALI_COMPILATION \
+                      -DDALI_SOUND_DIR="\"${dalisounddir}\"" \
+                      $(DLOG_CFLAGS) \
+                      $(DALICORE_CFLAGS) \
+                      $(MMFSOUND_CFLAGS) \
+                      $(FEEDBACK_CFLAGS) \
+                      $(DALI_PROFILE_CFLAGS) \
+                      $(DALI_ADAPTOR_CFLAGS) \
+                      -I../../../adaptors/public-api \
+                      -I../../../adaptors/integration-api \
+                      -I../../../adaptors/public-api/adaptor-framework \
+                      -I../../../adaptors/devel-api/adaptor-framework \
+                      -Werror -Wall
+
+libdali_feedback_plugin_cxx11_la_LIBADD = \
+                      $(DLOG_LIBS) \
+                      $(MMFSOUND_LIBS)
+
+libdali_feedback_plugin_cxx11_la_LDFLAGS = \
+                      -rdynamic
+
+libdali_feedback_plugin_cxx11_la_LIBADD += \
+                      $(FEEDBACK_LIBS)
+
+endif
+
+# VideoPlayer
+if WAYLAND
+if USE_VIDEOPLAYER
+
+libdali_video_player_plugin_cxx11_la_SOURCES = \
+                     $(video_player_plugin_src_files)
+
+libdali_video_player_plugin_cxx11_la_DEPENDENCIES =
+
+libdali_video_player_plugin_cxx11_la_CXXFLAGS = -DDALI_COMPILATION \
+                      -DDALI_ADAPTOR_COMPILATION \
+                      $(DLOG_CFLAGS) \
+                      $(DALICORE_CFLAGS) \
+                      $(ECORE_WAYLAND_CFLAGS) \
+                      $(CAPI_MEDIA_PLAYER_CFLAGS) \
+                      $(DALI_PROFILE_CFLAGS) \
+                      $(DALI_ADAPTOR_CFLAGS) \
+                      -I../../../adaptors/public-api \
+                      -I../../../adaptors/devel-api \
+                      -I../../../adaptors/devel-api/adaptor-framework \
+                      -I../../../adaptors/integration-api \
+                      -I../../../adaptors/public-api/adaptor-framework \
+                      -I../../../plugins/video-player \
+                      -Werror -Wall
+
+libdali_video_player_plugin_cxx11_la_LIBADD = \
+                      $(DLOG_LIBS) \
+                      $(ECORE_WAYLAND_LIBS) \
+                      $(CAPI_MEDIA_PLAYER_LIBS)
+
+libdali_video_player_plugin_cxx11_la_LDFLAGS = \
+                      -rdynamic
+
+endif
+endif
+
+endif # CXX03
index 3bd8eb9..8e07a48 100644 (file)
@@ -25,6 +25,12 @@ AM_CONDITIONAL([WAYLAND], [test x$enable_wayland = xyes])
 AM_CONDITIONAL([USE_FEEDBACK], [test x$enable_feedback = xyes])
 AM_CONDITIONAL([USE_VIDEOPLAYER], [test x$enable_videoplayer = xyes])
 
+AM_CONDITIONAL([ENABLE_CXX03_ABI], [test x$enable_cxx03_abi = xyes])
+
+if test "x$enable_cxx03_abi" = "xyes"; then
+ DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -D_GLIBCXX_USE_CXX11_ABI=0"
+fi
+
 if test "x$enable_wayland" = "xyes"; then
 if test "x$enable_videoplayer" = "xyes"; then
 if test "x$enable_profile" != "xUBUNTU"; then
index d378e82..ff76188 100644 (file)
@@ -54,14 +54,15 @@ BuildRequires:  pkgconfig(screen_connector_provider)
 
 BuildRequires:  pkgconfig(gles20)
 BuildRequires:  pkgconfig(glesv2)
-
+BuildRequires:  dali-devel-cxx03
+BuildRequires:  dali-integration-devel-cxx03
+BuildRequires:  dali-devel
+BuildRequires:  dali-integration-devel
 BuildRequires:  pkgconfig
 BuildRequires:  gawk
 BuildRequires:  giflib-devel
 BuildRequires:  pkgconfig(fontconfig)
 BuildRequires:  libjpeg-turbo-devel
-BuildRequires:  dali-devel
-BuildRequires:  dali-integration-devel
 BuildRequires:  pkgconfig(vconf)
 BuildRequires:  tts-devel
 BuildRequires:  pkgconfig(dlog)
@@ -98,8 +99,9 @@ BuildRequires:  pkgconfig(ecore-wayland)
 BuildRequires:  pkgconfig(libtbm)
 
 # tpkp-curl (certificate pinning for libcurl functions) is only available in Tizen 3.0
+#BuildRequires:  pkgconfig(tpkp-curl)
+BuildRequires:  pkgconfig(tpkp-curl-cxx03)
 BuildRequires:  pkgconfig(tpkp-curl)
-
 ####### BUILDING FOR X11#######
 %else
 BuildRequires:  pkgconfig(egl)
@@ -132,6 +134,14 @@ Recommends: %{name}-profile_common = %{version}-%{release}
 The DALi Tizen Adaptor provides a Tizen specific implementation of the dali-core
 platform abstraction and application shell
 
+%package cxx03
+Summary:       The DALi Tizen Adaptor DALi Tizen Adaptor with cxx03 abi 
+Provides:      %{name}-cxx03 = %{version}-%{release}
+
+%description cxx03
+The DALi Tizen Adaptor provides a Tizen specific implementation of the dali-core
+platform abstraction and application shell
+
 ###########################################
 # Dali adapter for profiles
 ###########################################
@@ -208,6 +218,85 @@ Conflicts: %{name}-profile_ivi
 The DALi Tizen Adaptor for common.
 %endif
 
+
+###########################################
+# Dali adapter for profiles for cxx03 ABI
+###########################################
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if mobile || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+%package profile_mobile-cxx03
+Summary:       The DALi Tizen Adaptor for mobile
+Provides:      %{name}-cxx03-compat = %{version}-%{release}
+Conflicts:     %{name}-profile_tv-cxx03
+Conflicts:     %{name}-profile_wearable-cxx03
+Conflicts:     %{name}-profile_ivi-cxx03
+Conflicts:     %{name}-profile_common-cxx03
+%description profile_mobile-cxx03
+The DALi Tizen Adaptor for mobile.
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if tv ||"undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "common" && "%{?profile}" != "ivi" && "%{?profile}" != "mobile"
+%package profile_tv-cxx03
+Summary:       The DALi Tizen Adaptor for tv
+Provides:      %{name}-cxx03-compat = %{version}-%{release}
+Conflicts:     %{name}-profile_mobile-cxx03
+Conflicts:     %{name}-profile_wearable-cxx03
+Conflicts:     %{name}-profile_ivi-cxx03
+Conflicts:     %{name}-profile_common-cxx03
+%description profile_tv-cxx03
+The DALi Tizen Adaptor for tv.
+%endif
+
+# 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-cxx03
+Summary:       The DALi Tizen Adaptor for wearable
+Provides:      %{name}-cxx03-compat = %{version}-%{release}
+Conflicts:     %{name}-profile_mobile-cxx03
+Conflicts:     %{name}-profile_tv-cxx03
+Conflicts:     %{name}-profile_ivi-cxx03
+Conflicts:     %{name}-profile_common-cxx03
+%description profile_wearable-cxx03
+The DALi Tizen Adaptor for wearable.
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if ivi ||"undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "common" && "%{?profile}" != "mobile"
+%package profile_ivi-cxx03
+Summary:       The DALi Tizen Adaptor for ivi
+Provides:      %{name}-cxx03-compat = %{version}-%{release}
+Conflicts:     %{name}-profile_mobile-cxx03
+Conflicts:     %{name}-profile_wearable-cxx03
+Conflicts:     %{name}-profile_tv-cxx03
+Conflicts:     %{name}-profile_common-cxx03
+%description profile_ivi-cxx03
+The DALi Tizen Adaptor for ivi.
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if common ||"undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "mobile"
+# Currently Tizen Common we use does not have wayland extensions like xdg-shell
+%package profile_common-cxx03
+%define tizen_2_2_compatibility 0
+Summary:  The DALi Tizen Adaptor for common
+Provides:      %{name}-cxx03-compat = %{version}-%{release}
+Conflicts:     %{name}-profile_mobile-cxx03
+Conflicts:     %{name}-profile_wearable-cxx03
+Conflicts:     %{name}-profile_tv-cxx03
+Conflicts:     %{name}-profile_ivi-cxx03
+%description profile_common-cxx03
+The DALi Tizen Adaptor for common.
+%endif
+
+
+
 ##############################
 # devel
 ##############################
@@ -231,6 +320,31 @@ Requires:   %{name} = %{version}-%{release}
 %description integration-devel
 Integration development package for the Adaptor - headers for integrating with an adaptor library.
 
+
+##############################
+# devel cxx03
+##############################
+%package devel-cxx03
+Summary:    Development components for the DALi Tizen Adaptor
+Group:      Development/Building
+Requires:   %{name}-cxx03 = %{version}-%{release}
+Requires:   %{name}-integration-devel-cxx03 = %{version}-%{release}
+
+%description devel-cxx03
+Development components for the DALi Tizen Adaptor - public headers and package configs
+
+##############################
+# integration-devel cxx03
+##############################
+%package integration-devel-cxx03
+Summary:    Integration development package for the Adaptor
+Group:      Development/Building
+Requires:   %{name}-cxx03 = %{version}-%{release}
+
+%description integration-devel-cxx03
+Integration development package for the Adaptor - headers for integrating with an adaptor library.
+
+
 ##############################
 # Dali Feedback Plugin
 ##############################
@@ -255,6 +369,30 @@ VideoPlayer plugin to play a video file for Dali
 %endif
 
 ##############################
+# Dali Feedback Plugin cxx03
+##############################
+
+%package dali-feedback-plugin-cxx03
+Summary:    Plugin to play haptic and audio feedback for Dali
+Group:      System/Libraries
+Requires:   %{name}-cxx03 = %{version}-%{release}
+%description dali-feedback-plugin-cxx03
+eedback plugin to play haptic and audio feedback for Dali
+
+##############################
+# Dali VideoPlayer Plugin
+##############################
+%if %{with wayland}
+
+%package dali-video-player-plugin-cxx03
+Summary:    Plugin to play a video file for Dali
+Group:      System/Libraries
+%description dali-video-player-plugin-cxx03
+VideoPlayer plugin to play a video file for Dali
+%endif
+
+
+##############################
 # Preparation
 ##############################
 %prep
@@ -360,6 +498,8 @@ popd
 
 pushd %{buildroot}%{_libdir}
 for FILE in libdali-adap*.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/build/tizen/$FILE.mobile"; done
+for FILE in libdali-*plugin*_cxx11.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/build/tizen/$FILE"; done 
+mv pkgconfig/dali-adaptor*pc %{_builddir}/%{name}-%{version}/build/tizen/
 popd
 
 make clean
@@ -399,6 +539,8 @@ popd
 
 pushd %{buildroot}%{_libdir}
 for FILE in libdali-adap*.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/build/tizen/$FILE.tv"; done
+for FILE in libdali-*plugin*_cxx11.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/build/tizen/$FILE"; done 
+mv pkgconfig/dali-adaptor*pc %{_builddir}/%{name}-%{version}/build/tizen/
 popd
 
 make clean
@@ -437,6 +579,8 @@ popd
 
 pushd %{buildroot}%{_libdir}
 for FILE in libdali-adap*.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/build/tizen/$FILE.wearable"; done
+for FILE in libdali-*plugin*_cxx11.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/build/tizen/$FILE"; done 
+mv pkgconfig/dali-adaptor*pc %{_builddir}/%{name}-%{version}/build/tizen/
 popd
 
 make clean
@@ -474,7 +618,10 @@ pushd %{_builddir}/%{name}-%{version}/build/tizen
 popd
 
 pushd %{buildroot}%{_libdir}
-for FILE in libdali-adap*.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/build/tizen/$FILE.ivi"; done
+for FILE in libdali-adaptor*.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/build/tizen/$FILE.ivi"; done
+for FILE in libdali-*plugin*_cxx11.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/build/tizen/$FILE"; done 
+
+mv pkgconfig/dali-adaptor*pc %{_builddir}/%{name}-%{version}/build/tizen/
 popd
 
 make clean
@@ -508,8 +655,217 @@ make clean
 # Build.
 make %{?jobs:-j%jobs}
 
+pushd %{_builddir}/%{name}-%{version}/build/tizen
+%make_install DALI_DATA_RW_DIR="%{dali_data_rw_dir}" DALI_DATA_RO_DIR="%{dali_data_ro_dir}"
+popd
+
+pushd %{buildroot}%{_libdir}
+for FILE in libdali-adap*.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/build/tizen/$FILE"; done
+for FILE in libdali-*plugin*_cxx11.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/build/tizen/$FILE"; done 
+
+mv pkgconfig/dali-adaptor*pc %{_builddir}/%{name}-%{version}/build/tizen/
+popd
+
+make clean
+
 %endif
 
+#######################################################################
+#BUILD for cxx03 ABI
+#######################################################################
+
+# Set up the build via configure.
+#######################################################################
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if mobile || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+
+%configure --prefix=$PREFIX --with-jpeg-turbo --enable-gles=%{target_gles_version} \
+           --enable-shaderbincache=DISABLE --enable-profile=MOBILE \
+           --enable-feedback \
+           --enable-videoplayer \
+          --enable-cxx03-abi=yes  \
+%if 0%{?tizen_2_2_compatibility}
+           --with-tizen-2-2-compatibility \
+%endif
+%if %{with wayland}
+           --enable-efl=no \
+%else
+           --enable-efl=yes \
+%endif
+%if 0%{?enable_debug}
+           --enable-debug \
+%endif
+           --enable-appfw=yes \
+           --with-libuv=/usr/include/node/ \
+           $configure_flags --libdir=%{_libdir}
+
+# Build.
+make %{?jobs:-j%jobs}
+
+pushd %{_builddir}/%{name}-%{version}/build/tizen
+%make_install DALI_DATA_RW_DIR="%{dali_data_rw_dir}" DALI_DATA_RO_DIR="%{dali_data_ro_dir}"
+popd
+
+pushd %{buildroot}%{_libdir}
+for FILE in libdali-adap*.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/build/tizen/$FILE.mobile"; done
+for FILE in libdali-*plugin.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/build/tizen/$FILE"; done 
+popd
+
+make clean
+
+%endif
+
+#######################################################################
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if tv ||"undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "common" && "%{?profile}" != "ivi" && "%{?profile}" != "mobile"
+
+%configure --prefix=$PREFIX --with-jpeg-turbo --enable-gles=%{target_gles_version} \
+           --enable-shaderbincache=DISABLE --enable-profile=TV \
+           --enable-feedback \
+           --enable-videoplayer \
+          --enable-cxx03-abi=yes  \
+%if 0%{?tizen_2_2_compatibility}
+           --with-tizen-2-2-compatibility \
+%endif
+%if %{with wayland}
+           --enable-efl=no \
+%else
+           --enable-efl=yes \
+%endif
+%if 0%{?enable_debug}
+           --enable-debug \
+%endif
+           --enable-appfw=yes \
+           --with-libuv=/usr/include/node/ \
+           $configure_flags --libdir=%{_libdir}
+
+# Build.
+make %{?jobs:-j%jobs}
+
+pushd %{_builddir}/%{name}-%{version}/build/tizen
+%make_install DALI_DATA_RW_DIR="%{dali_data_rw_dir}" DALI_DATA_RO_DIR="%{dali_data_ro_dir}"
+popd
+
+pushd %{buildroot}%{_libdir}
+for FILE in libdali-adap*.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/build/tizen/$FILE.tv"; done
+for FILE in libdali-*plugin.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/build/tizen/$FILE"; done 
+popd
+
+make clean
+%endif
+
+#######################################################################
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if wearable || "undefined"
+%if "%{?profile}" != "mobile" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+
+%configure --prefix=$PREFIX --with-jpeg-turbo --enable-gles=%{target_gles_version} \
+           --enable-shaderbincache=DISABLE --enable-profile=WEARABLE \
+           --enable-feedback \
+           --enable-videoplayer \
+          --enable-cxx03-abi=yes \
+%if 0%{?tizen_2_2_compatibility}
+           --with-tizen-2-2-compatibility \
+%endif
+%if %{with wayland}
+           --enable-efl=no \
+%else
+           --enable-efl=yes \
+%endif
+%if 0%{?enable_debug}
+           --enable-debug \
+%endif
+           --enable-appfw=yes \
+           --with-libuv=/usr/include/node/ \
+           $configure_flags --libdir=%{_libdir}
+
+# Build.
+make %{?jobs:-j%jobs}
+
+pushd %{_builddir}/%{name}-%{version}/build/tizen
+%make_install DALI_DATA_RW_DIR="%{dali_data_rw_dir}" DALI_DATA_RO_DIR="%{dali_data_ro_dir}"
+popd
+
+pushd %{buildroot}%{_libdir}
+for FILE in libdali-adap*.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/build/tizen/$FILE.wearable"; done
+for FILE in libdali-*plugin.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/build/tizen/$FILE"; done 
+popd
+
+make clean
+%endif
+
+#######################################################################
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if ivi ||"undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "common" && "%{?profile}" != "mobile"
+
+%configure --prefix=$PREFIX --with-jpeg-turbo --enable-gles=%{target_gles_version} \
+           --enable-shaderbincache=DISABLE --enable-profile=IVI \
+           --enable-feedback \
+           --enable-videoplayer \
+          --enable-cxx03-abi=yes  \
+%if 0%{?tizen_2_2_compatibility}
+           --with-tizen-2-2-compatibility \
+%endif
+%if %{with wayland}
+           --enable-efl=no \
+%else
+           --enable-efl=yes \
+%endif
+%if 0%{?enable_debug}
+           --enable-debug \
+%endif
+           --enable-appfw=yes \
+           --with-libuv=/usr/include/node/ \
+           $configure_flags --libdir=%{_libdir}
+
+# Build.
+make %{?jobs:-j%jobs}
+
+pushd %{_builddir}/%{name}-%{version}/build/tizen
+%make_install DALI_DATA_RW_DIR="%{dali_data_rw_dir}" DALI_DATA_RO_DIR="%{dali_data_ro_dir}"
+popd
+
+pushd %{buildroot}%{_libdir}
+for FILE in libdali-adap*.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/build/tizen/$FILE.ivi"; done
+for FILE in libdali-*plugin.so*; do mv "$FILE" "%{_builddir}/%{name}-%{version}/build/tizen/$FILE"; done 
+popd
+
+make clean
+%endif
+
+#######################################################################
+# common ( build dali_videoplayer_plugin for common uses )
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if common ||"undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "mobile"
+
+%configure --prefix=$PREFIX --with-jpeg-turbo --enable-gles=%{target_gles_version} \
+           --enable-shaderbincache=DISABLE --enable-profile=COMMON \
+           --enable-feedback \
+           --enable-videoplayer \
+          --enable-cxx03-abi=yes  \
+%if 0%{?tizen_2_2_compatibility}
+           --with-tizen-2-2-compatibility \
+%endif
+%if %{with wayland}
+           --enable-efl=no \
+%else
+           --enable-efl=yes \
+%endif
+%if 0%{?enable_debug}
+           --enable-debug \
+%endif
+           --enable-appfw=yes \
+           --with-libuv=/usr/include/node/ \
+           $configure_flags --libdir=%{_libdir}
+
+# Build.
+make %{?jobs:-j%jobs}
+
+%endif
 
 ##############################
 # Installation
@@ -530,6 +886,7 @@ rm -rf %{buildroot}%{_libdir}/libdali-adap*.so*
 # wearable || tv || ivi || mobile || unified
 %if "%{?profile}" != "common"
 for FILE in libdali-*.so*; do mv "$FILE" "%{buildroot}%{_libdir}/$FILE"; done
+mv dali-adaptor*.pc %{buildroot}%{_libdir}/pkgconfig/
 %endif
 popd
 
@@ -579,7 +936,8 @@ exit 0
 %if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
 %post profile_mobile
 pushd %{_libdir}
-for FILE in libdali-adap*.so*.mobile; do ln -sf "$FILE" "${FILE%.mobile}"; done
+for FILE in libdali-adaptor_cxx11.so*.mobile; do ln -sf "$FILE" "${FILE%.mobile}"; done
+for FILE in libdali-adaptor-uv_cxx11.so*.mobile; do ln -sf "$FILE" "${FILE%.mobile}"; done
 popd
 /sbin/ldconfig
 exit 0
@@ -596,7 +954,8 @@ exit 0
 %if "%{?profile}" != "wearable" && "%{?profile}" != "common" && "%{?profile}" != "ivi" && "%{?profile}" != "mobile"
 %post profile_tv
 pushd %{_libdir}
-for FILE in libdali-adap*.so*.tv; do ln -sf "$FILE" "${FILE%.tv}"; done
+for FILE in libdali-adaptor_cxx11.so*.tv; do ln -sf "$FILE" "${FILE%.tv}"; done
+for FILE in libdali-adaptor-uv_cxx11.so*.tv; do ln -sf "$FILE" "${FILE%.tv}"; done
 popd
 /sbin/ldconfig
 exit 0
@@ -613,7 +972,8 @@ exit 0
 %if "%{?profile}" != "mobile" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
 %post profile_wearable
 pushd %{_libdir}
-for FILE in libdali-adap*.so*.wearable; do ln -sf "$FILE" "${FILE%.wearable}"; done
+for FILE in libdali-adaptor_cxx11.so*.wearable; do ln -sf "$FILE" "${FILE%.wearable}"; done
+for FILE in libdali-adaptor-uv_cxx11.so*.wearable; do ln -sf "$FILE" "${FILE%.wearable}"; done
 popd
 /sbin/ldconfig
 exit 0
@@ -630,7 +990,8 @@ exit 0
 %if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "common" && "%{?profile}" != "mobile"
 %post profile_ivi
 pushd %{_libdir}
-for FILE in libdali-adap*.so*.ivi; do ln -sf "$FILE" "${FILE%.ivi}"; done
+for FILE in libdali-adaptor_cxx11.so*.ivi; do ln -sf "$FILE" "${FILE%.ivi}"; done
+for FILE in libdali-adaptor-uv_cxx11.so*.ivi; do ln -sf "$FILE" "${FILE%.ivi}"; done
 popd
 /sbin/ldconfig
 exit 0
@@ -640,6 +1001,79 @@ exit 0
 exit 0
 %endif
 
+##############################
+#cxx03 ABI
+#############################
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if mobile || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+%post profile_mobile-cxx03
+pushd %{_libdir}
+for FILE in libdali-adaptor.so*.mobile; do ln -sf "$FILE" "${FILE%.mobile}"; done
+for FILE in libdali-adaptor-uv.so*.mobile; do ln -sf "$FILE" "${FILE%.mobile}"; done
+popd
+/sbin/ldconfig
+exit 0
+
+%postun profile_mobile-cxx03
+/sbin/ldconfig
+exit 0
+%endif
+
+##############################
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if tv ||"undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "common" && "%{?profile}" != "ivi" && "%{?profile}" != "mobile"
+%post profile_tv-cxx03
+pushd %{_libdir}
+for FILE in libdali-adaptor.so*.tv; do ln -sf "$FILE" "${FILE%.tv}"; done
+for FILE in libdali-adaptor-uv.so*.tv; do ln -sf "$FILE" "${FILE%.tv}"; done
+popd
+/sbin/ldconfig
+exit 0
+
+%postun profile_tv-cxx03
+/sbin/ldconfig
+exit 0
+%endif
+
+##############################
+
+# 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-cxx03
+pushd %{_libdir}
+for FILE in libdali-adaptor.so*.wearable; do ln -sf "$FILE" "${FILE%.wearable}"; done
+for FILE in libdali-adaptor-uv.so*.wearable; do ln -sf "$FILE" "${FILE%.wearable}"; done
+popd
+/sbin/ldconfig
+exit 0
+
+%postun profile_wearable-cxx03
+/sbin/ldconfig
+exit 0
+%endif
+
+##############################
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if ivi ||"undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "common" && "%{?profile}" != "mobile"
+%post profile_ivi-cxx03
+pushd %{_libdir}
+for FILE in libdali-adaptor.so*.ivi; do ln -sf "$FILE" "${FILE%.ivi}"; done
+for FILE in libdali-adaptor-uv.so*.ivi; do ln -sf "$FILE" "${FILE%.ivi}"; done
+popd
+/sbin/ldconfig
+exit 0
+
+%postun profile_ivi-cxx03
+/sbin/ldconfig
+exit 0
+%endif
+
 
 ##############################
 # Files in Binary Packages
@@ -656,7 +1090,27 @@ exit 0
 # if common ||"undefined"
 %if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "mobile"
 %defattr(-,root,root,-)
-%{_libdir}/libdali-adap*.so*
+%{_libdir}/libdali-adaptor_cxx11.so*
+%{_libdir}/libdali-adaptor-uv_cxx11.so*
+%exclude %{_libdir}/libdali-adap*.so*.mobile
+%exclude %{_libdir}/libdali-adap*.so*.wearable
+%exclude %{_libdir}/libdali-adap*.so*.tv
+%exclude %{_libdir}/libdali-adap*.so*.ivi
+%endif
+
+%files cxx03
+%manifest dali-adaptor.manifest
+%defattr(-,root,root,-)
+%defattr(-,app,app,-)
+%dir %{user_shader_cache_dir}
+%{_bindir}/*
+%license LICENSE
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if common ||"undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "mobile"
+%defattr(-,root,root,-)
+%{_libdir}/libdali-adaptor.so*
+%{_libdir}/libdali-adaptor-uv.so*
 %exclude %{_libdir}/libdali-adap*.so*.mobile
 %exclude %{_libdir}/libdali-adap*.so*.wearable
 %exclude %{_libdir}/libdali-adap*.so*.tv
@@ -664,19 +1118,38 @@ exit 0
 %endif
 
 %if %{with wayland}
-%files dali-video-player-plugin
+%files dali-video-player-plugin-cxx03
 %manifest dali-adaptor.manifest
 %defattr(-,root,root,-)
 %{_libdir}/libdali-video-player-plugin.so*
 %license LICENSE
 %endif
 
-%files dali-feedback-plugin
+%files dali-feedback-plugin-cxx03
 %manifest dali-adaptor.manifest
 %defattr(-,root,root,-)
 %{_libdir}/libdali-feedback-plugin.so*
 %{dali_plugin_sound_files}/*
 
+#################################################
+# cxx03 plugins
+#################################################
+%if %{with wayland}
+%files dali-video-player-plugin
+%manifest dali-adaptor.manifest
+%defattr(-,root,root,-)
+%{_libdir}/libdali-video-player-plugin_cxx11.so*
+%license LICENSE
+%endif
+
+%files dali-feedback-plugin
+%manifest dali-adaptor.manifest
+%defattr(-,root,root,-)
+%{_libdir}/libdali-feedback-plugin_cxx11.so*
+%{dali_plugin_sound_files}/*
+
+#################################################
+
 # This is for backward-compatibility. This does not deteriorate 4.0 Configurability
 # if common ||"undefined"
 %if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "mobile"
@@ -690,7 +1163,8 @@ exit 0
 %files profile_mobile
 %manifest dali-adaptor.manifest
 %defattr(-,root,root,-)
-%{_libdir}/libdali-adap*.so*.mobile
+%{_libdir}/libdali-adaptor_cxx11.so*.mobile
+%{_libdir}/libdali-adaptor-uv_cxx11.so*.mobile
 %endif
 
 # This is for backward-compatibility. This does not deteriorate 4.0 Configurability
@@ -699,7 +1173,8 @@ exit 0
 %files profile_tv
 %manifest dali-adaptor.manifest
 %defattr(-,root,root,-)
-%{_libdir}/libdali-adap*.so*.tv
+%{_libdir}/libdali-adaptor_cxx11.so*.tv
+%{_libdir}/libdali-adaptor-uv_cxx11.so*.tv
 %endif
 
 # This is for backward-compatibility. This does not deteriorate 4.0 Configurability
@@ -708,7 +1183,8 @@ exit 0
 %files profile_wearable
 %manifest dali-adaptor.manifest
 %defattr(-,root,root,-)
-%{_libdir}/libdali-adap*.so*.wearable
+%{_libdir}/libdali-adaptor_cxx11.so*.wearable
+%{_libdir}/libdali-adaptor-uv_cxx11.so*.wearable
 %endif
 
 # This is for backward-compatibility. This does not deteriorate 4.0 Configurability
@@ -717,7 +1193,8 @@ exit 0
 %files profile_ivi
 %manifest dali-adaptor.manifest
 %defattr(-,root,root,-)
-%{_libdir}/libdali-adap*.so*.ivi
+%{_libdir}/libdali-adaptor_cxx11.so*.ivi
+%{_libdir}/libdali-adaptor-uv_cxx11.so*.ivi
 %endif
 
 
@@ -734,3 +1211,70 @@ exit 0
 %defattr(-,root,root,-)
 %{dev_include_path}/dali/integration-api/adaptors/*
 %{_libdir}/pkgconfig/dali-adaptor-integration.pc
+
+
+################################################
+# cxx03 ABI
+################################################
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if common ||"undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "mobile"
+%files profile_common-cxx03
+# default .so files are housed in the main pkg.
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if mobile || "undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "ivi" && "%{?profile}" != "common"
+%files profile_mobile-cxx03
+%manifest dali-adaptor.manifest
+%defattr(-,root,root,-)
+%{_libdir}/libdali-adaptor.so*.mobile
+%{_libdir}/libdali-adaptor-uv.so*.mobile
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if tv ||"undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "common" && "%{?profile}" != "ivi" && "%{?profile}" != "mobile"
+%files profile_tv-cxx03
+%manifest dali-adaptor.manifest
+%defattr(-,root,root,-)
+%{_libdir}/libdali-adaptor.so*.tv
+%{_libdir}/libdali-adaptor-uv.so*.tv
+%endif
+
+# 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-cxx03
+%manifest dali-adaptor.manifest
+%defattr(-,root,root,-)
+%{_libdir}/libdali-adaptor.so*.wearable
+%{_libdir}/libdali-adaptor-uv.so*.wearable
+%endif
+
+# This is for backward-compatibility. This does not deteriorate 4.0 Configurability
+# if ivi ||"undefined"
+%if "%{?profile}" != "wearable" && "%{?profile}" != "tv" && "%{?profile}" != "common" && "%{?profile}" != "mobile"
+%files profile_ivi-cxx03
+%manifest dali-adaptor.manifest
+%defattr(-,root,root,-)
+%{_libdir}/libdali-adaptor.so*.ivi
+%{_libdir}/libdali-adaptor-uv.so*.ivi
+%endif
+
+
+%files devel-cxx03
+%defattr(-,root,root,-)
+%{dev_include_path}/dali/dali.h
+%{dev_include_path}/dali/public-api/*
+%{dev_include_path}/dali/devel-api/*
+%{dev_include_path}/dali/doc/*
+%{_libdir}/pkgconfig/dali-adaptor-cxx03.pc
+%{_libdir}/pkgconfig/dali-adaptor-uv-cxx03.pc
+
+%files integration-devel-cxx03
+%defattr(-,root,root,-)
+%{dev_include_path}/dali/integration-api/adaptors/*
+%{_libdir}/pkgconfig/dali-adaptor-integration-cxx03.pc