From 3e530b54537d2d2b86e9ffedcea4414cdeb4ff9a Mon Sep 17 00:00:00 2001 From: Yoonsang Lee Date: Mon, 28 Dec 2015 11:46:35 +0900 Subject: [PATCH] Seperate dali-adaptor & dali-adaptor-uv packages * Overview - Now dali-adaptor has one spec file (dali-adaptor.spec) and two pc files (dali-adaptor.pc, dali-adaptor-uv.pc), which means it generates one rpm file, two packages (dali-adaptor, dali-adaptor-uv), and two so files (libdali-adaptor.so, libdali-adaptor-uv.so) - Change the package name of dali-adaptor (dali.pc) to clearer ones (dali-adaptor.pc, dali-adaptor-uv.pc) - If --with-libuv is not specified in build option, dali-adaptor-uv is not generated (only dali-adaptor is generated) - Tidy plugins build code up. * Dependency - Now dali-demo (and other dali appplication packages) uses dali-adaptor - Now dali-addon uses dali-adaptor-uv * Directory Structure: dali-adaptor/build/tizen/ adaptor/ dali-adaptor-integration.pc.in Makefile.am plugins/ Makefile.am dali.pc.in configure.ac Makefile.am || \\// \/ dali-adaptor/build/tizen/ adaptor/ dali-adaptor.pc.in dali-adaptor-integration.pc.in configure.ac Makefile.am adaptor-uv/ dali-adaptor-uv.pc.in configure.ac Makefile.am plugins/ configure.ac Makefile.am configure.ac Makefile.am * Intention - Aims to make minimum changes from existing configure.ac & Makefile.am because seperating dali-adaptor-uv is not ideal solution. It's the best resonable solution at the moment. - That's why adaptor/configure.ac & Makefile.am and adaptor-uv/configure.ac & Makefile.am are almost same to each other and to original adaptor/Makefile.am and /configure.ac. - Ideally, only one libdali-adaptor.so can handle all kind of backends, but it requires intensive refactoring of dali-adaptor and a large amount of man-month efforts. * Detalis - enable_efl is always yes for dali-adaptor. --enable-efl only affects dali-adaptor-uv - with_libuv is always no for dali-adaptor. --with-libuv only affects dali-adaptor-uv - If --with-libuv is not specified in build option, dali-adaptor-uv is not generated (only dali-adaptor is generated) - Move feedback & plugins related code in adaptor/configure.ac & adaptor-uv/configure.ac to plugins/configure.ac - In build point of view, plugin building part is functionally same because it just moves location of each plugin build code snippets. - dali-adaptor-uv for MOBILE profile uses ecore-wayland even if enable_efl==no because adaptors/mobile/pixmap-render-surface-factory.cpp uses it. Change-Id: Ib0cd7a0170a617b9d7499a36df20b8c06f9df140 --- .../mobile/accessibility-adaptor-impl-mobile.cpp | 2 +- adaptors/mobile/mobile-system-settings.cpp | 1 - .../src/dali-adaptor-internal/CMakeLists.txt | 2 +- automated-tests/src/dali-adaptor/CMakeLists.txt | 2 +- .../src/dali-platform-abstraction/CMakeLists.txt | 2 +- build/tizen/Makefile.am | 9 +- build/tizen/adaptor-uv/.gitignore | 20 + build/tizen/adaptor-uv/Makefile.am | 523 +++++++++++++++++++++ build/tizen/adaptor-uv/configure.ac | 373 +++++++++++++++ build/tizen/adaptor-uv/dali-adaptor-uv.pc.in | 12 + build/tizen/adaptor/.gitignore | 20 + build/tizen/adaptor/Makefile.am | 2 +- build/tizen/adaptor/configure.ac | 348 ++++++++++++++ build/tizen/adaptor/dali-adaptor-integration.pc.in | 6 +- .../{dali.pc.in => adaptor/dali-adaptor.pc.in} | 4 +- build/tizen/configure.ac | 367 +-------------- build/tizen/plugins/.gitignore | 20 + build/tizen/plugins/configure.ac | 36 ++ packaging/dali-adaptor.spec | 50 +- 19 files changed, 1391 insertions(+), 408 deletions(-) create mode 100644 build/tizen/adaptor-uv/.gitignore create mode 100644 build/tizen/adaptor-uv/Makefile.am create mode 100644 build/tizen/adaptor-uv/configure.ac create mode 100644 build/tizen/adaptor-uv/dali-adaptor-uv.pc.in create mode 100644 build/tizen/adaptor/.gitignore create mode 100644 build/tizen/adaptor/configure.ac rename build/tizen/{dali.pc.in => adaptor/dali-adaptor.pc.in} (68%) create mode 100644 build/tizen/plugins/.gitignore create mode 100644 build/tizen/plugins/configure.ac diff --git a/adaptors/mobile/accessibility-adaptor-impl-mobile.cpp b/adaptors/mobile/accessibility-adaptor-impl-mobile.cpp index cedfb54..c660087 100644 --- a/adaptors/mobile/accessibility-adaptor-impl-mobile.cpp +++ b/adaptors/mobile/accessibility-adaptor-impl-mobile.cpp @@ -23,9 +23,9 @@ #ifndef WAYLAND #include +#include #endif -#include #include #include diff --git a/adaptors/mobile/mobile-system-settings.cpp b/adaptors/mobile/mobile-system-settings.cpp index 446078f..dc9d60b 100644 --- a/adaptors/mobile/mobile-system-settings.cpp +++ b/adaptors/mobile/mobile-system-settings.cpp @@ -17,7 +17,6 @@ // EXTERNAL INCLUDES #include -#include // INTERNAL INCLUDES #include diff --git a/automated-tests/src/dali-adaptor-internal/CMakeLists.txt b/automated-tests/src/dali-adaptor-internal/CMakeLists.txt index c6cd26f..5951df1 100644 --- a/automated-tests/src/dali-adaptor-internal/CMakeLists.txt +++ b/automated-tests/src/dali-adaptor-internal/CMakeLists.txt @@ -32,7 +32,7 @@ LIST(APPEND TC_SOURCES PKG_CHECK_MODULES(${CAPI_LIB} REQUIRED dali-core - dali + dali-adaptor ecore ) diff --git a/automated-tests/src/dali-adaptor/CMakeLists.txt b/automated-tests/src/dali-adaptor/CMakeLists.txt index e7fa4af..8b73f69 100644 --- a/automated-tests/src/dali-adaptor/CMakeLists.txt +++ b/automated-tests/src/dali-adaptor/CMakeLists.txt @@ -31,7 +31,7 @@ LIST(APPEND TC_SOURCES PKG_CHECK_MODULES(${CAPI_LIB} REQUIRED dali-core - dali + dali-adaptor ecore ) diff --git a/automated-tests/src/dali-platform-abstraction/CMakeLists.txt b/automated-tests/src/dali-platform-abstraction/CMakeLists.txt index 96e6e79..f0ca7c1 100644 --- a/automated-tests/src/dali-platform-abstraction/CMakeLists.txt +++ b/automated-tests/src/dali-platform-abstraction/CMakeLists.txt @@ -22,7 +22,7 @@ LIST(APPEND TC_SOURCES PKG_CHECK_MODULES(${CAPI_LIB} REQUIRED dali-core - dali + dali-adaptor ) SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0 -ggdb --coverage -Wall -Werror" ) diff --git a/build/tizen/Makefile.am b/build/tizen/Makefile.am index 1aa98f0..0dc2051 100644 --- a/build/tizen/Makefile.am +++ b/build/tizen/Makefile.am @@ -14,14 +14,7 @@ # limitations under the License. # -SUBDIRS = adaptor - -if USE_PLUGIN -SUBDIRS += plugins -endif - -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = dali.pc +SUBDIRS = ${subdirs} MAINTAINERCLEANFILES = \ aclocal.m4 \ diff --git a/build/tizen/adaptor-uv/.gitignore b/build/tizen/adaptor-uv/.gitignore new file mode 100644 index 0000000..0d1f029 --- /dev/null +++ b/build/tizen/adaptor-uv/.gitignore @@ -0,0 +1,20 @@ +/doc +/.cov +/aclocal.m4 +/autom4te.cache +/ar-lib +/compile +/config.guess +/config.log +/config.status +/config.sub +/configure +/depcomp +/documentation.list +/install-sh +/libtool +/ltmain.sh +/m4 +/missing +*.pc +/documentation.list diff --git a/build/tizen/adaptor-uv/Makefile.am b/build/tizen/adaptor-uv/Makefile.am new file mode 100644 index 0000000..7efd396 --- /dev/null +++ b/build/tizen/adaptor-uv/Makefile.am @@ -0,0 +1,523 @@ +# +# Copyright (c) 2014 Samsung Electronics Co., Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# Build the Dali Adaptor library + + +############# INCLUDE FILE LISTS ############# + +# Base Adaptor +base_adaptor_src_dir = ../../../adaptors/base +include ../../../adaptors/base/file.list + +# Platform Abstraction +tizen_platform_abstraction_src_dir = ../../../platform-abstractions/tizen +portable_platform_abstraction_src_dir = ../../../platform-abstractions/portable +include ../../../platform-abstractions/tizen/file.list + +# Text Abstraction +text_src_dir = ../../../text +include ../../../text/file.list + +# Integration +adaptor_integration_api_dir = ../../../adaptors/integration-api +include ../../../adaptors/integration-api/file.list + +# Internal Common +adaptor_common_dir = ../../../adaptors/common +include ../../../adaptors/common/file.list + +if USE_EFL +# ECore Common +adaptor_ecore_common_dir = ../../../adaptors/ecore/common +include ../../../adaptors/ecore/common/file.list +else +# If we're not using any EFL, then we need to use libuv mainloop +# for the frame work +adaptor_libuv_dir = ../../../adaptors/libuv +include ../../../adaptors/libuv/file.list +endif + +# Wayland +if WAYLAND +if USE_EFL +## Use ecore_wayland +adaptor_ecore_wayland_dir = ../../../adaptors/ecore/wayland +include ../../../adaptors/ecore/wayland/file.list +else +## Use wayland +adaptor_wayland_dir = ../../../adaptors/wayland +include ../../../adaptors/wayland/file.list +endif +else +# X11 +adaptor_x11_dir = ../../../adaptors/x11 +include ../../../adaptors/x11/file.list +endif + +# Ubuntu +if UBUNTU_PROFILE +adaptor_ubuntu_dir = ../../../adaptors/ubuntu +include ../../../adaptors/ubuntu/file.list +else +# Tizen +adaptor_tizen_dir = ../../../adaptors/tizen +include ../../../adaptors/tizen/file.list +endif + +# Mobile +adaptor_mobile_dir = ../../../adaptors/mobile +include ../../../adaptors/mobile/file.list + +# TV +if TV_PROFILE +adaptor_tv_dir = ../../../adaptors/tv +include ../../../adaptors/tv/file.list +endif + +# Public API +adaptor_public_api_dir = ../../../adaptors/public-api +include ../../../adaptors/public-api/file.list + +# Devel API ( for use by Toolkit) +adaptor_devel_api_dir = ../../../adaptors/devel-api +include ../../../adaptors/devel-api/file.list + + +# Static libraries +static_libraries_libunibreak_src_dir = ../../../text/dali/internal/libunibreak +include ../../../text/dali/internal/libunibreak/file.list + +# Package doc +package_doxy_dir = ../../../doc +include ../../../doc/file.list + +############# source files ############# + +# FRAMEWORK FILES for adaptor +# Either use ecore mainloop + appcore / uiman +# Or libuv main loop with no appcore / uimain +if USE_EFL +adaptor_internal_src_files = $(adaptor_tizen_framework_efl_src_files) \ + $(adaptor_ecore_common_internal_src_files) +else +adaptor_internal_src_files = $(adaptor_tizen_framework_libuv_src_files) +endif + +# COMMON +if COMMON_PROFILE + +adaptor_internal_src_files += $(adaptor_common_internal_src_files) \ + $(adaptor_common_internal_default_profile_src_files) \ + $(adaptor_tizen_internal_src_files) \ + $(adaptor_tizen_internal_non_mobile_src_files) \ + $(static_libraries_libunibreak_src_files) + +if WAYLAND +if USE_ECORE_WAYLAND +adaptor_internal_src_files += $(adaptor_ecore_wayland_tizen_internal_src_files) \ + $(adaptor_ecore_wayland_internal_default_profile_src_files) +else +adaptor_internal_src_files += $(adaptor_wayland_tizen_internal_src_files) +endif +else +adaptor_internal_src_files += $(adaptor_x11_tizen_internal_src_files) \ + $(adaptor_x11_internal_default_profile_src_files) +endif # WAYLAND +endif # COMMON_PROFILE + + +# UBUNTU +if UBUNTU_PROFILE + +adaptor_internal_src_files += $(adaptor_common_internal_src_files) \ + $(adaptor_common_internal_default_profile_src_files) \ + $(adaptor_ubuntu_internal_src_files) \ + $(adaptor_x11_ubuntu_internal_src_files) \ + $(adaptor_x11_internal_default_profile_src_files) \ + $(static_libraries_libunibreak_src_files) + +endif # UBUNTU_PROFILE + + +# MOBILE +if MOBILE_PROFILE + +adaptor_internal_src_files += $(adaptor_common_internal_src_files) \ + $(adaptor_common_internal_mobile_profile_src_files) \ + $(adaptor_tizen_internal_src_files) \ + $(static_libraries_libunibreak_src_files) + +if WAYLAND +if USE_ECORE_WAYLAND +adaptor_internal_src_files += $(adaptor_ecore_wayland_tizen_internal_src_files) +else +adaptor_internal_src_files += $(adaptor_wayland_tizen_internal_src_files) +endif +else +adaptor_internal_src_files += $(adaptor_x11_tizen_internal_src_files) +endif # WAYLAND + +endif # MOBILE_PROFILE + +# WEARABLE +if WEARABLE_PROFILE + +adaptor_internal_src_files += $(adaptor_common_internal_src_files) \ + $(adaptor_common_internal_mobile_profile_src_files) \ + $(adaptor_tizen_internal_src_files) \ + $(static_libraries_libunibreak_src_files) +if WAYLAND +if USE_ECORE_WAYLAND +adaptor_internal_src_files += $(adaptor_ecore_wayland_tizen_internal_src_files) +else +adaptor_internal_src_files += $(adaptor_wayland_tizen_internal_src_files) +endif +else +adaptor_internal_src_files += $(adaptor_x11_tizen_internal_src_files) +endif # WAYLAND + +endif # WEARABLE + + +# TV +if TV_PROFILE + +adaptor_internal_src_files += $(adaptor_common_internal_src_files) \ + $(adaptor_common_internal_tv_profile_src_files) \ + $(adaptor_tizen_internal_src_files) \ + $(adaptor_tizen_internal_non_mobile_src_files) \ + $(static_libraries_libunibreak_src_files) +if WAYLAND +if USE_ECORE_WAYLAND +adaptor_internal_src_files += $(adaptor_ecore_wayland_tizen_internal_src_files) +else +adaptor_internal_src_files += $(adaptor_wayland_tizen_internal_src_files) +endif +else +adaptor_internal_src_files += $(adaptor_x11_tv_internal_src_files) \ + $(adaptor_x11_internal_tv_profile_key_src_files) +endif # WAYLAND + +endif + +# Node JS support for using an external libuv main loop. If not enabled then just use e-core as normal +# Used for things like callbacks, file-monintors, x input handling +if LIB_UV_EVENT_LOOP +main_loop_integration_src_files = $(adaptor_common_internal_uv_src_files) +input_event_handler_src_files = $(adaptor_uv_x_event_handler_internal_src_files) +else +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 + + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = dali-adaptor-uv.pc + +lib_LTLIBRARIES = libdali-adaptor-uv.la + +libdali_adaptor_uv_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_la_SOURCES += \ + $(base_adaptor_networking_src_files) +endif + +libdali_adaptor_uv_la_DEPENDENCIES = + +# List include directories with more platform-specific (tizen) before portable root: +libdali_adaptor_uv_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 + +if WAYLAND +libdali_adaptor_uv_la_includes += -I../../../adaptors/integration-api/wayland +if USE_ECORE_WAYLAND +libdali_adaptor_uv_la_includes += \ + -I../../../adaptors/ecore/common \ + -I../../../adaptors/ecore/wayland +else +libdali_adaptor_uv_la_includes += -I../../../adaptors/wayland \ + -I../../../adaptors/wayland/imf \ + -I../../../adaptors/wayland/clipboard \ + -I../../../adaptors/wayland/native-image +endif +else +libdali_adaptor_uv_la_includes += \ + -I../../../adaptors/ecore/common \ + -I../../../adaptors/x11 \ + -I../../../adaptors/integration-api/x11 +endif + +if UBUNTU_PROFILE +libdali_adaptor_uv_la_includes += \ + -I../../../adaptors/ubuntu +else +libdali_adaptor_uv_la_includes += \ + -I../../../adaptors/tizen +endif + +daliDefaultThemeDir = ${dataReadWriteDir}/theme/ +daliShaderbinCacheDir = ${dataReadOnlyDir}/core/shaderbin/ + +libdali_adaptor_uv_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}\"" \ + -DNON_POWER_OF_TWO_TEXTURES \ + -DDALI_COMPILATION -DDALI_ADAPTOR_COMPILATION \ + -Werror -Wall -lgcc \ + $(libdali_adaptor_uv_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) + +# Todo, as soon as common repos are updated on build server remove this. +if !COMMON_PROFILE +libdali_adaptor_uv_la_CXXFLAGS += -DWAYLAND_EXTENSIONS_SUPPORTED +endif + +libdali_adaptor_uv_la_CFLAGS = $(libdali_adaptor_uv_la_CXXFLAGS) + +libdali_adaptor_uv_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_la_CXXFLAGS += $(ELEMENTARY_CFLAGS) \ + $(EVAS_CFLAGS) \ + $(ECORE_CFLAGS) \ + $(ECORE_IPC_CFLAGS) \ + $(ELDBUS_CFLAGS) \ + -DUSE_EFL + + +libdali_adaptor_uv_la_LIBADD += $(ELEMENTARY_LIBS) \ + $(ECORE_IPC_LIBS) \ + $(ELDBUS_LIBS) + +else + +if MOBILE_PROFILE +libdali_adaptor_uv_la_CXXFLAGS += $(ECORE_WAYLAND_CFLAGS) +libdali_adaptor_uv_la_LIBADD += $(ECORE_WAYLAND_LIBS) +endif + +endif + +if USE_APPFW + +libdali_adaptor_uv_la_CXXFLAGS += $(CAPI_APPFW_APPLICATION_CFLAGS) \ + $(CAPI_SYSTEM_SYSTEM_SETTINGS_CFLAGS) \ + $(CAPI_SYSTEM_INFO_CFLAGS) \ + $(TTS_CFLAGS) \ + $(SENSOR_CFLAGS) + +libdali_adaptor_uv_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_uv_la_CXXFLAGS += -DWL_EGL_PLATFORM +libdali_adaptor_uv_la_CXXFLAGS += $(WAYLAND_CFLAGS) +libdali_adaptor_uv_la_LIBADD += $(WAYLAND_LIBS) +else +libdali_adaptor_uv_la_CXXFLAGS += $(X11_CFLAGS) +libdali_adaptor_uv_la_LIBADD += $(X11_LIBS) +libdali_adaptor_uv_la_LIBADD += $(ECORE_X_LIBS) +endif + +if COMMON_PROFILE +libdali_adaptor_uv_la_CXXFLAGS += $(HAPTIC_CFLAGS) +endif + +if MOBILE_PROFILE +libdali_adaptor_uv_la_CXXFLAGS += \ + $(DEVICED_CFLAGS) \ + $(EFL_ASSIST_CFLAGS) \ + $(NATIVE_BUFFER_CFLAGS) \ + $(NATIVE_BUFFER_POOL_CFLAGS) + +libdali_adaptor_uv_la_LIBADD += \ + $(EFL_ASSIST_LIBS) \ + $(NATIVE_BUFFER_LIBS) \ + $(NATIVE_BUFFER_POOL_LIBS) +endif + +if WEARABLE_PROFILE +libdali_adaptor_uv_la_CXXFLAGS += \ + $(HAPTIC_CFLAGS) \ + $(EFL_ASSIST_CFLAGS) +endif + +if TV_PROFILE +libdali_adaptor_uv_la_CXXFLAGS += $(HAPTIC_CFLAGS) +libdali_adaptor_uv_la_LIBADD += +endif + +if UBUNTU_PROFILE +libdali_adaptor_uv_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.la +linker_test_LDADD = \ + $(DALICORE_LIBS) \ + $(VCONF_LIBS) \ + libdali-adaptor-uv.la \ + $(HARFBUZZ_LIBS) \ + -L${prefix}/lib diff --git a/build/tizen/adaptor-uv/configure.ac b/build/tizen/adaptor-uv/configure.ac new file mode 100644 index 0000000..1ffdab9 --- /dev/null +++ b/build/tizen/adaptor-uv/configure.ac @@ -0,0 +1,373 @@ +# +# Copyright (c) 2015 Samsung Electronics Co., Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +m4_define([dali_version],[0.1.0]) +AC_INIT([dali], [dali_version]) +AM_INIT_AUTOMAKE([-Wall foreign]) + +AC_CONFIG_MACRO_DIR([m4]) + +AC_PROG_CXX +AC_PROG_LIBTOOL +AC_PROG_MKDIR_P + +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + +LT_INIT + +DALI_ADAPTOR_VERSION=dali_version +AC_SUBST(DALI_ADAPTOR_VERSION) + +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 ] ) +PKG_CHECK_MODULES(FONTCONFIG, fontconfig) +PKG_CHECK_MODULES(PNG, libpng) +PKG_CHECK_MODULES(LIBEXIF, libexif) +PKG_CHECK_MODULES(LIBDRM, libdrm) +PKG_CHECK_MODULES(LIBCURL, libcurl) +PKG_CHECK_MODULES(HARFBUZZ, harfbuzz) +PKG_CHECK_MODULES(FRIBIDI, fribidi) +PKG_CHECK_MODULES(TTRACE, ttrace, AC_DEFINE(ENABLE_TTRACE, 1, [ttrace available]), + [ AC_MSG_NOTICE([Tizen Trace not avaiable]) ] + ) + + +# Currently, dali-adaptor-uv requires EFL on X11 (e.g. Ubuntu PC) +# and does not require it on Wayland (e.g. Tizen 3.0 devices). +# So we should be able to enable/disable this option for dali-adaptor-uv. +AC_ARG_ENABLE([efl], + [AC_HELP_STRING([--enable-efl], + [Builds with EFL libraries, On by default])], + [enable_efl=$enableval], + [enable_efl=yes]) + + + +# Check if we need EFL Libraries ( on by default, disabled with --use-efl=no ) +# When running on Node.JS with Wayland no EFL libraries are required. +if test "x$enable_efl" = "xyes"; then +PKG_CHECK_MODULES(ECORE, ecore) +PKG_CHECK_MODULES(ECORE_IPC, ecore-ipc) +PKG_CHECK_MODULES(ECORE_IMF, [ecore-imf >= 1.13], [ecore_imf_1_13=yes], [ecore_imf_1_13=no]) +PKG_CHECK_MODULES(ELEMENTARY, elementary) +# Check for EldBus.h in ECore +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 + DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DDALI_ELDBUS_AVAILABLE " +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 + +DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DPLATFORM_TIZEN" + +AC_ARG_ENABLE(exportall, + [AC_HELP_STRING([--enable-exportall], + [enables the exporting of all the symbols in the library])], + [enable_exportall=yes], + [enable_exportall=no]) + +AC_ARG_ENABLE([debug], + [AC_HELP_STRING([--enable-debug], + [Turns on debugging])], + [enable_debug=$enableval], + [enable_debug=no]) + +AC_ARG_ENABLE(shaderbincache, + [AC_HELP_STRING([--enable-shaderbincache], + [enables shader binary cache])], + [enable_shaderbincache=$enableval], + [enable_shaderbincache=DISABLE]) + +AC_ARG_ENABLE(networklogging, + [AC_HELP_STRING([--enable-networklogging], + [enables network for debug tool])], + [enable_networklogging=$enableval], + [enable_networklogging=no]) + + +if test "x$enable_debug" = "xyes"; then + DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DDEBUG_ENABLED" +fi + +if test "x$enable_debug" = "xno" -a "x$enable_exportall" = "xno"; then + DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -fvisibility=hidden -DHIDE_DALI_INTERNALS" +fi + +if test "x$enable_shaderbincache" = "xENABLE"; then + DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DSHADERBIN_CACHE_ENABLED" +fi + +if test "x$enable_networklogging" = "xyes"; then + DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DNETWORK_LOGGING_ENABLED" +fi + +# If Ecore IMF version is greater than 1.13, then some structures are different +if test "x$ecore_imf_1_13" = "xyes"; then + DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DECORE_IMF_1_13" +fi + +AC_ARG_ENABLE([gles], + [AC_HELP_STRING([--enable-gles], + [Specify the OpenGL ES version for backwards compatibility])], + [enable_gles=$enableval], + [enable_gles=30]) + +DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DDALI_GLES_VERSION=${enable_gles}" + +# node.js by default statically links against libuv, so it doesn't need to install +# a libuv headers/ shared library. So we can't use pkg-config to access any headers. +# As a work around we pass the node deps path so we can access the libuv headers inside nodes +# directory +AC_ARG_WITH([libuv], + [AC_HELP_STRING([--with-libuv], + [Path that contains libuv headers. Setting this configures DALi to work with LibUV mainloop used in Node.JS. + For example /usr/tmp/downloads/node/deps/uv/include/ ])], + [with_libuv=$withval], + [with_libuv=no]) + +# Node.JS already has a libuv main loop running,so we have to integrate with it +AM_CONDITIONAL(LIB_UV_EVENT_LOOP, test x$with_libuv != xno) + + +build_for_libuv=no +if test "x$with_libuv" != "xno"; then + AC_MSG_NOTICE("build with libuv mainloop (Node.JS support) == yes"); + [build_for_libuv=yes] + DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DNODE_JS_SUPPORT -I${with_libuv}" +else + #not using libuv build + AC_MSG_NOTICE("build with libuv mainloop == no (Node.JS not supported)"); +fi + +# Currently, dali-adaptor-uv requires appfw on Tizen 2.4 (X11) +# and does not require it on Tizen 3.0 (Wayland) & Ubuntu. +# So we should be able to enable/disable this option for dali-adaptor. +AC_ARG_ENABLE([appfw], + [AC_HELP_STRING([--enable-appfw], + [Builds with Tizen App framework libraries, off by default])], + [enable_appfw=$enableval], + [enable_appfw=no]) + +# Option to allow building with Tizen SDK 2.2 +AC_ARG_WITH([tizen-2-2-compatibility], + [AC_HELP_STRING([--with-tizen-2-2-compatibility], + [Use Tizen SDK 2.2 compatibility])], + [with_tizen_2_2_compatibility=$withval], + [with_tizen_2_2_compatibility=no]) + +# Tizen Profile options +AC_ARG_ENABLE([profile], + [AC_HELP_STRING([--enable-profile=COMMON,MOBILE,WEARABLE,TV,UBUNTU], + [Select the variant of tizen])], + [enable_profile=$enableval], + [enable_profile=COMMON]) + +# Ensure valid profile selected +if test "x$enable_profile" != "xCOMMON" -a "x$enable_profile" != "xMOBILE" -a "x$enable_profile" != "xWEARABLE" -a "x$enable_profile" != "xTV" -a "x$enable_profile" != "xUBUNTU"; then + AC_MSG_ERROR([$enable_profile is an invalid profile]) +fi + +AC_ARG_ENABLE(wayland, + [ --enable-wayland Build on Wayland], + enable_wayland=yes, + enable_wayland=no) + +DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DDALI_PROFILE_${enable_profile}" +DALI_PROFILE_CFLAGS=" -DDALI_PROFILE_${enable_profile}" +AM_CONDITIONAL([COMMON_PROFILE], [test x$enable_profile = xCOMMON]) +AM_CONDITIONAL([MOBILE_PROFILE], [test x$enable_profile = xMOBILE]) +AM_CONDITIONAL([WEARABLE_PROFILE], [test x$enable_profile = xWEARABLE]) +AM_CONDITIONAL([TV_PROFILE], [test x$enable_profile = xTV]) +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_NETWORK_LOGGING], [test x$enable_networklogging = xyes]) + +# Platforms should either enable features or remove them, they +# should not disable features. This allows the developer to override +# features through the command line. + +if test "x$enable_profile" = "xCOMMON"; then +PKG_CHECK_MODULES(OPENGLES20, glesv2 egl) +fi + +if test "x$enable_profile" = "xMOBILE"; then +PKG_CHECK_MODULES(OPENGLES20, gles20) +enable_assimp=no +fi + +if test "x$enable_profile" = "xLITE"; then +PKG_CHECK_MODULES(OPENGLES20, gles20) +fi + +if test "x$enable_profile" = "xWEARABLE"; then +PKG_CHECK_MODULES(OPENGLES20, glesv2) +fi + +if test "x$enable_profile" = "xTV"; then +PKG_CHECK_MODULES(OPENGLES20, glesv2) +fi + +if test "x$enable_profile" = "xUBUNTU"; then +PKG_CHECK_MODULES(OPENGLES20, glesv2 egl) +else + + + +PKG_CHECK_MODULES(DLOG, dlog) +PKG_CHECK_MODULES(SENSOR, sensor) +PKG_CHECK_MODULES(TTS, tts) +PKG_CHECK_MODULES(VCONF, vconf) + +if test "x$enable_efl" = "xyes"; then +if test "x$with_tizen_2_2_compatibility" = "xno"; then +PKG_CHECK_MODULES(CAPI_SYSTEM_INFO, capi-system-info) +fi +fi + +fi # ubuntu profile test + +if test "x$enable_appfw" = "xyes"; then +PKG_CHECK_MODULES(CAPI_APPFW_APPLICATION, capi-appfw-application) +PKG_CHECK_MODULES(CAPI_SYSTEM_SYSTEM_SETTINGS, capi-system-system-settings) +fi + +# Using EFL api's for WAYLAND AND X11 to run on ecore mainloop +if test "x$enable_efl" = "xyes"; then +if test "x$enable_wayland" = "xyes"; then +PKG_CHECK_MODULES(WAYLAND, [ecore-wayland egl wayland-egl wayland-client >= 1.2.0 xkbcommon], + [DALI_USE_ECORE_WAYLAND=1], + [DALI_USE_ECORE_WAYLAND=0]) + +else +PKG_CHECK_MODULES(ECORE_X, [ecore-x], + [DALI_USE_ECORE_X11=1], + [DALI_USE_ECORE_X11=0]) +PKG_CHECK_MODULES(X11, [x11], + [DALI_USE_X11=1], + [DALI_USE_X11=0]) +fi + +else + +# dali-adaptor-uv for MOBILE profile needs ecore-wayland even if enable_efl==no +# because adaptors/mobile/pixmap-render-surface-factory.cpp uses it. +if test "x$enable_profile" = "xMOBILE"; then +PKG_CHECK_MODULES(ECORE_WAYLAND, ecore-wayland) +fi + +fi +# Using Wayland API directly ( main loop agnostic, typically for running on libuv) +# wayland-extension-client include xdg-shell-client +if test "x$enable_efl" = "xno"; then +if test "x$enable_wayland" = "xyes"; then +PKG_CHECK_MODULES(WAYLAND, [ egl wayland-egl wayland-client >= 1.2.0 xkbcommon], + [DALI_USE_WAYLAND=1], + [DALI_USE_WAYLAND=0]) +fi +fi + +# remove this when we update common repos +# common profile currently does not have wayland extensions like xdg-shell +if test "x$enable_wayland" = "xyes"; then +if test "x$enable_profile" != "xCOMMON"; then +PKG_CHECK_MODULES(WAYLAND_EXTENSION, xdg-shell-client) +fi +fi +AM_CONDITIONAL([USE_ECORE_WAYLAND], [test "$DALI_USE_ECORE_WAYLAND" -eq 1]) + +if test x$DALI_DATA_RW_DIR != x; then + dataReadWriteDir=$DALI_DATA_RW_DIR +else + dataReadWriteDir=${prefix}/share/dali/ +fi + +if test x$DALI_DATA_RO_DIR != x; then + dataReadOnlyDir=$DALI_DATA_RO_DIR +else + dataReadOnlyDir=${prefix}/share/dali/ +fi + +if test x$FONT_CONFIGURATION_FILE != x; then + fontConfigurationFile=$FONT_CONFIGURATION_FILE +fi + +AC_SUBST(dataReadWriteDir) +AC_SUBST(dataReadOnlyDir) +AC_SUBST(DALI_ADAPTOR_CFLAGS) +AC_SUBST(DALI_PROFILE_CFLAGS) +AC_SUBST(fontConfigurationFile) + +# Specify the include directory for development headers +#devincludepath=${includedir}/dali/internal +devincludepath=${includedir} +AC_SUBST(devincludepath) + +AC_CONFIG_FILES([ + Makefile + dali-adaptor-uv.pc +]) + +if test "x$freetype_bitmap_support" = "xyes"; then +DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DFREETYPE_BITMAP_SUPPORT" +fi + +AC_OUTPUT + + +echo " +Configuration +------------- + Prefix: $prefix + Debug Build: $enable_debug + Compile flags $DALI_ADAPTOR_CFLAGS + Freetype bitmap support (Emoji): $freetype_bitmap_support + Profile: $enable_profile + Data Dir (Read/Write): $dataReadWriteDir + Data Dir (Read Only): $dataReadOnlyDir + Tizen SDK 2.2 compatibility: $with_tizen_2_2_compatibility + EldBus: $eldbus_available + Shader Binary Cache: $enable_shaderbincache + Using LibUV mainloop (Node.JS) $build_for_libuv + Ecore Version At Least 1.13.0 $ecore_imf_1_13 + Network logging enabled: $enable_networklogging + Font config file: $fontConfigurationFile + Building with EFL Libraries $enable_efl + Using Tizen APP FW libraries $enable_appfw +" +# optional output of node.js source path if we're building with libuv +if test "x$build_for_libuv" != "xno"; then +echo " LibUV header path $with_libuv" +fi diff --git a/build/tizen/adaptor-uv/dali-adaptor-uv.pc.in b/build/tizen/adaptor-uv/dali-adaptor-uv.pc.in new file mode 100644 index 0000000..4cee7ac --- /dev/null +++ b/build/tizen/adaptor-uv/dali-adaptor-uv.pc.in @@ -0,0 +1,12 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +apiversion=@DALI_ADAPTOR_VERSION@ +libdir=@libdir@ +includedir=@devincludepath@ + +Name: dali-adaptor-uv +Description: DALi adaptor using libuv +Version: ${apiversion} +Requires: dali-core +Libs: -L${libdir} -ldali-adaptor-uv +Cflags: -I${includedir}/dali diff --git a/build/tizen/adaptor/.gitignore b/build/tizen/adaptor/.gitignore new file mode 100644 index 0000000..0d1f029 --- /dev/null +++ b/build/tizen/adaptor/.gitignore @@ -0,0 +1,20 @@ +/doc +/.cov +/aclocal.m4 +/autom4te.cache +/ar-lib +/compile +/config.guess +/config.log +/config.status +/config.sub +/configure +/depcomp +/documentation.list +/install-sh +/libtool +/ltmain.sh +/m4 +/missing +*.pc +/documentation.list diff --git a/build/tizen/adaptor/Makefile.am b/build/tizen/adaptor/Makefile.am index 654e7cd..2f343bd 100644 --- a/build/tizen/adaptor/Makefile.am +++ b/build/tizen/adaptor/Makefile.am @@ -227,7 +227,7 @@ endif pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = dali-adaptor-integration.pc +pkgconfig_DATA = dali-adaptor.pc dali-adaptor-integration.pc lib_LTLIBRARIES = libdali-adaptor.la diff --git a/build/tizen/adaptor/configure.ac b/build/tizen/adaptor/configure.ac new file mode 100644 index 0000000..8899880 --- /dev/null +++ b/build/tizen/adaptor/configure.ac @@ -0,0 +1,348 @@ +# +# Copyright (c) 2015 Samsung Electronics Co., Ltd. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +m4_define([dali_version],[0.1.0]) +AC_INIT([dali], [dali_version]) +AM_INIT_AUTOMAKE([-Wall foreign]) + +AC_CONFIG_MACRO_DIR([m4]) + +AC_PROG_CXX +AC_PROG_LIBTOOL +AC_PROG_MKDIR_P + +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + +LT_INIT + +DALI_ADAPTOR_VERSION=dali_version +AC_SUBST(DALI_ADAPTOR_VERSION) + +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 ] ) +PKG_CHECK_MODULES(FONTCONFIG, fontconfig) +PKG_CHECK_MODULES(PNG, libpng) +PKG_CHECK_MODULES(LIBEXIF, libexif) +PKG_CHECK_MODULES(LIBDRM, libdrm) +PKG_CHECK_MODULES(LIBCURL, libcurl) +PKG_CHECK_MODULES(HARFBUZZ, harfbuzz) +PKG_CHECK_MODULES(FRIBIDI, fribidi) +PKG_CHECK_MODULES(TTRACE, ttrace, AC_DEFINE(ENABLE_TTRACE, 1, [ttrace available]), + [ AC_MSG_NOTICE([Tizen Trace not avaiable]) ] + ) + + +# Currently, dali-adaptor always requires EFL on all platforms. +# (on Wayland & X11, on Tizen devices & Ubuntu PC). +enable_efl=yes +if test "x$enable_efl" = "xyes"; then +PKG_CHECK_MODULES(ECORE, ecore) +PKG_CHECK_MODULES(ECORE_IPC, ecore-ipc) +PKG_CHECK_MODULES(ECORE_IMF, [ecore-imf >= 1.13], [ecore_imf_1_13=yes], [ecore_imf_1_13=no]) +PKG_CHECK_MODULES(ELEMENTARY, elementary) +# Check for EldBus.h in ECore +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 + DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DDALI_ELDBUS_AVAILABLE " +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 + +DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DPLATFORM_TIZEN" + +AC_ARG_ENABLE(exportall, + [AC_HELP_STRING([--enable-exportall], + [enables the exporting of all the symbols in the library])], + [enable_exportall=yes], + [enable_exportall=no]) + +AC_ARG_ENABLE([debug], + [AC_HELP_STRING([--enable-debug], + [Turns on debugging])], + [enable_debug=$enableval], + [enable_debug=no]) + +AC_ARG_ENABLE(shaderbincache, + [AC_HELP_STRING([--enable-shaderbincache], + [enables shader binary cache])], + [enable_shaderbincache=$enableval], + [enable_shaderbincache=DISABLE]) + +AC_ARG_ENABLE(networklogging, + [AC_HELP_STRING([--enable-networklogging], + [enables network for debug tool])], + [enable_networklogging=$enableval], + [enable_networklogging=no]) + + +if test "x$enable_debug" = "xyes"; then + DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DDEBUG_ENABLED" +fi + +if test "x$enable_debug" = "xno" -a "x$enable_exportall" = "xno"; then + DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -fvisibility=hidden -DHIDE_DALI_INTERNALS" +fi + +if test "x$enable_shaderbincache" = "xENABLE"; then + DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DSHADERBIN_CACHE_ENABLED" +fi + +if test "x$enable_networklogging" = "xyes"; then + DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DNETWORK_LOGGING_ENABLED" +fi + +# If Ecore IMF version is greater than 1.13, then some structures are different +if test "x$ecore_imf_1_13" = "xyes"; then + DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DECORE_IMF_1_13" +fi + +AC_ARG_ENABLE([gles], + [AC_HELP_STRING([--enable-gles], + [Specify the OpenGL ES version for backwards compatibility])], + [enable_gles=$enableval], + [enable_gles=30]) + +DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DDALI_GLES_VERSION=${enable_gles}" + +# Currently, dali-adaptor always does not require libuv because it runs on ecore on all platforms. +# (on Wayland & X11, on Tizen devices & Ubuntu PC). +with_libuv=no + +# Node.JS already has a libuv main loop running,so we have to integrate with it +AM_CONDITIONAL(LIB_UV_EVENT_LOOP, test x$with_libuv != xno) + + +build_for_libuv=no +if test "x$with_libuv" != "xno"; then + AC_MSG_NOTICE("build with libuv mainloop (Node.JS support) == yes"); + [build_for_libuv=yes] + DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DNODE_JS_SUPPORT -I${with_libuv}" +else + #not using libuv build + AC_MSG_NOTICE("build with libuv mainloop == no (Node.JS not supported)"); +fi + +# Currently, dali-adaptor requires appfw on Tizen +# and does not require it on Ubuntu. +# So we should be able to enable/disable this option for dali-adaptor. +AC_ARG_ENABLE([appfw], + [AC_HELP_STRING([--enable-appfw], + [Builds with Tizen App framework libraries, off by default])], + [enable_appfw=$enableval], + [enable_appfw=no]) + +# Option to allow building with Tizen SDK 2.2 +AC_ARG_WITH([tizen-2-2-compatibility], + [AC_HELP_STRING([--with-tizen-2-2-compatibility], + [Use Tizen SDK 2.2 compatibility])], + [with_tizen_2_2_compatibility=$withval], + [with_tizen_2_2_compatibility=no]) + +# Tizen Profile options +AC_ARG_ENABLE([profile], + [AC_HELP_STRING([--enable-profile=COMMON,MOBILE,WEARABLE,TV,UBUNTU], + [Select the variant of tizen])], + [enable_profile=$enableval], + [enable_profile=COMMON]) + +# Ensure valid profile selected +if test "x$enable_profile" != "xCOMMON" -a "x$enable_profile" != "xMOBILE" -a "x$enable_profile" != "xWEARABLE" -a "x$enable_profile" != "xTV" -a "x$enable_profile" != "xUBUNTU"; then + AC_MSG_ERROR([$enable_profile is an invalid profile]) +fi + +AC_ARG_ENABLE(wayland, + [ --enable-wayland Build on Wayland], + enable_wayland=yes, + enable_wayland=no) + +DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DDALI_PROFILE_${enable_profile}" +DALI_PROFILE_CFLAGS=" -DDALI_PROFILE_${enable_profile}" +AM_CONDITIONAL([COMMON_PROFILE], [test x$enable_profile = xCOMMON]) +AM_CONDITIONAL([MOBILE_PROFILE], [test x$enable_profile = xMOBILE]) +AM_CONDITIONAL([WEARABLE_PROFILE], [test x$enable_profile = xWEARABLE]) +AM_CONDITIONAL([TV_PROFILE], [test x$enable_profile = xTV]) +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_NETWORK_LOGGING], [test x$enable_networklogging = xyes]) + +# Platforms should either enable features or remove them, they +# should not disable features. This allows the developer to override +# features through the command line. + +if test "x$enable_profile" = "xCOMMON"; then +PKG_CHECK_MODULES(OPENGLES20, glesv2 egl) +fi + +if test "x$enable_profile" = "xMOBILE"; then +PKG_CHECK_MODULES(OPENGLES20, gles20) +enable_assimp=no +fi + +if test "x$enable_profile" = "xLITE"; then +PKG_CHECK_MODULES(OPENGLES20, gles20) +fi + +if test "x$enable_profile" = "xWEARABLE"; then +PKG_CHECK_MODULES(OPENGLES20, glesv2) +fi + +if test "x$enable_profile" = "xTV"; then +PKG_CHECK_MODULES(OPENGLES20, glesv2) +fi + +if test "x$enable_profile" = "xUBUNTU"; then +PKG_CHECK_MODULES(OPENGLES20, glesv2 egl) +else + + + +PKG_CHECK_MODULES(DLOG, dlog) +PKG_CHECK_MODULES(SENSOR, sensor) +PKG_CHECK_MODULES(TTS, tts) +PKG_CHECK_MODULES(VCONF, vconf) + +if test "x$enable_efl" = "xyes"; then +if test "x$with_tizen_2_2_compatibility" = "xno"; then +PKG_CHECK_MODULES(CAPI_SYSTEM_INFO, capi-system-info) +fi +fi + +fi # ubuntu profile test + +if test "x$enable_appfw" = "xyes"; then +PKG_CHECK_MODULES(CAPI_APPFW_APPLICATION, capi-appfw-application) +PKG_CHECK_MODULES(CAPI_SYSTEM_SYSTEM_SETTINGS, capi-system-system-settings) +fi + +# Using EFL api's for WAYLAND AND X11 to run on ecore mainloop +if test "x$enable_efl" = "xyes"; then +if test "x$enable_wayland" = "xyes"; then +PKG_CHECK_MODULES(WAYLAND, [ecore-wayland egl wayland-egl wayland-client >= 1.2.0 xkbcommon], + [DALI_USE_ECORE_WAYLAND=1], + [DALI_USE_ECORE_WAYLAND=0]) + +else +PKG_CHECK_MODULES(ECORE_X, [ecore-x], + [DALI_USE_ECORE_X11=1], + [DALI_USE_ECORE_X11=0]) +PKG_CHECK_MODULES(X11, [x11], + [DALI_USE_X11=1], + [DALI_USE_X11=0]) +fi +fi +# Using Wayland API directly ( main loop agnostic, typically for running on libuv) +# wayland-extension-client include xdg-shell-client +if test "x$enable_efl" = "xno"; then +if test "x$enable_wayland" = "xyes"; then +PKG_CHECK_MODULES(WAYLAND, [ egl wayland-egl wayland-client >= 1.2.0 xkbcommon], + [DALI_USE_WAYLAND=1], + [DALI_USE_WAYLAND=0]) +fi +fi + +# remove this when we update common repos +# common profile currently does not have wayland extensions like xdg-shell +if test "x$enable_wayland" = "xyes"; then +if test "x$enable_profile" != "xCOMMON"; then +PKG_CHECK_MODULES(WAYLAND_EXTENSION, xdg-shell-client) +fi +fi +AM_CONDITIONAL([USE_ECORE_WAYLAND], [test "$DALI_USE_ECORE_WAYLAND" -eq 1]) + +if test x$DALI_DATA_RW_DIR != x; then + dataReadWriteDir=$DALI_DATA_RW_DIR +else + dataReadWriteDir=${prefix}/share/dali/ +fi + +if test x$DALI_DATA_RO_DIR != x; then + dataReadOnlyDir=$DALI_DATA_RO_DIR +else + dataReadOnlyDir=${prefix}/share/dali/ +fi + +if test x$FONT_CONFIGURATION_FILE != x; then + fontConfigurationFile=$FONT_CONFIGURATION_FILE +fi + +AC_SUBST(dataReadWriteDir) +AC_SUBST(dataReadOnlyDir) +AC_SUBST(DALI_ADAPTOR_CFLAGS) +AC_SUBST(DALI_PROFILE_CFLAGS) +AC_SUBST(fontConfigurationFile) + +# Specify the include directory for development headers +#devincludepath=${includedir}/dali/internal +devincludepath=${includedir} +AC_SUBST(devincludepath) + +AC_CONFIG_FILES([ + Makefile + dali-adaptor.pc + dali-adaptor-integration.pc +]) + +if test "x$freetype_bitmap_support" = "xyes"; then +DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DFREETYPE_BITMAP_SUPPORT" +fi + +AC_OUTPUT + + +echo " +Configuration +------------- + Prefix: $prefix + Debug Build: $enable_debug + Compile flags $DALI_ADAPTOR_CFLAGS + Freetype bitmap support (Emoji): $freetype_bitmap_support + Profile: $enable_profile + Data Dir (Read/Write): $dataReadWriteDir + Data Dir (Read Only): $dataReadOnlyDir + Tizen SDK 2.2 compatibility: $with_tizen_2_2_compatibility + EldBus: $eldbus_available + Shader Binary Cache: $enable_shaderbincache + Using LibUV mainloop (Node.JS) $build_for_libuv + Ecore Version At Least 1.13.0 $ecore_imf_1_13 + Network logging enabled: $enable_networklogging + Font config file: $fontConfigurationFile + Building with EFL Libraries $enable_efl + Using Tizen APP FW libraries $enable_appfw +" +# optional output of node.js source path if we're building with libuv +if test "x$build_for_libuv" != "xno"; then +echo " LibUV header path $with_libuv" +fi diff --git a/build/tizen/adaptor/dali-adaptor-integration.pc.in b/build/tizen/adaptor/dali-adaptor-integration.pc.in index 95a89a6..6a861fb 100644 --- a/build/tizen/adaptor/dali-adaptor-integration.pc.in +++ b/build/tizen/adaptor/dali-adaptor-integration.pc.in @@ -4,9 +4,9 @@ apiversion=@DALI_ADAPTOR_VERSION@ libdir=@libdir@ includedir=@devincludepath@ -Name: Samsung OpenGLES Adaptor Integration -Description: Adaptor integration layer for 3D Canvas using OpenGLES +Name: dali-adaptor-integration +Description: Integration APIs for dali-adaptor Version: ${apiversion} -Requires: dali +Requires: dali-adaptor Libs: -L${libdir} Cflags: -I${includedir}/dali/public-api/adaptor-framework/ -I${includedir}/dali/devel-api/adaptor-framework/ -I${includedir}/dali/integration-api/adaptors/ diff --git a/build/tizen/dali.pc.in b/build/tizen/adaptor/dali-adaptor.pc.in similarity index 68% rename from build/tizen/dali.pc.in rename to build/tizen/adaptor/dali-adaptor.pc.in index 94a095e..8b94022 100644 --- a/build/tizen/dali.pc.in +++ b/build/tizen/adaptor/dali-adaptor.pc.in @@ -4,8 +4,8 @@ apiversion=@DALI_ADAPTOR_VERSION@ libdir=@libdir@ includedir=@devincludepath@ -Name: Samsung OpenGLES Toolkit Adaptor -Description: 3D Canvas Toolkit using OpenGLES (with the adaptor) +Name: dali-adaptor +Description: DALi adaptor using ecore Version: ${apiversion} Requires: dali-core Libs: -L${libdir} -ldali-adaptor diff --git a/build/tizen/configure.ac b/build/tizen/configure.ac index c4b9daf..76b59f1 100644 --- a/build/tizen/configure.ac +++ b/build/tizen/configure.ac @@ -18,140 +18,6 @@ m4_define([dali_version],[0.1.0]) AC_INIT([dali], [dali_version]) AM_INIT_AUTOMAKE([-Wall foreign]) -AC_CONFIG_MACRO_DIR([m4]) - -AC_PROG_CXX -AC_PROG_LIBTOOL -AC_PROG_MKDIR_P - -m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) - -LT_INIT - -DALI_ADAPTOR_VERSION=dali_version -AC_SUBST(DALI_ADAPTOR_VERSION) - -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 ] ) -PKG_CHECK_MODULES(FONTCONFIG, fontconfig) -PKG_CHECK_MODULES(PNG, libpng) -PKG_CHECK_MODULES(LIBEXIF, libexif) -PKG_CHECK_MODULES(LIBDRM, libdrm) -PKG_CHECK_MODULES(LIBCURL, libcurl) -PKG_CHECK_MODULES(HARFBUZZ, harfbuzz) -PKG_CHECK_MODULES(FRIBIDI, fribidi) -PKG_CHECK_MODULES(TTRACE, ttrace, AC_DEFINE(ENABLE_TTRACE, 1, [ttrace available]), - [ AC_MSG_NOTICE([Tizen Trace not avaiable]) ] - ) - - -AC_ARG_ENABLE([efl], - [AC_HELP_STRING([--enable-efl], - [Builds with EFL libraries, On by default])], - [enable_efl=$enableval], - [enable_efl=yes]) - - - -# Check if we need EFL Libraries ( on by default, disabled with --use-efl=no ) -# When running on Node.JS with Wayland no EFL libraries are required. -if test "x$enable_efl" = "xyes"; then -PKG_CHECK_MODULES(ECORE, ecore) -PKG_CHECK_MODULES(ECORE_IPC, ecore-ipc) -PKG_CHECK_MODULES(ECORE_IMF, [ecore-imf >= 1.13], [ecore_imf_1_13=yes], [ecore_imf_1_13=no]) -PKG_CHECK_MODULES(ELEMENTARY, elementary) -# Check for EldBus.h in ECore -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 - DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DDALI_ELDBUS_AVAILABLE " -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 - -AC_ARG_ENABLE([feedback], - [AC_HELP_STRING([ --enable-feedback], - [Enable feedback plugin])], - [enable_feedback=yes], - [enable_feedback=no]) - -AM_CONDITIONAL([USE_FEEDBACK], [test x$enable_feedback = xyes]) - -DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DPLATFORM_TIZEN" - -AC_ARG_ENABLE(exportall, - [AC_HELP_STRING([--enable-exportall], - [enables the exporting of all the symbols in the library])], - [enable_exportall=yes], - [enable_exportall=no]) - -AC_ARG_ENABLE([debug], - [AC_HELP_STRING([--enable-debug], - [Turns on debugging])], - [enable_debug=$enableval], - [enable_debug=no]) - -AC_ARG_ENABLE(shaderbincache, - [AC_HELP_STRING([--enable-shaderbincache], - [enables shader binary cache])], - [enable_shaderbincache=$enableval], - [enable_shaderbincache=DISABLE]) - -AC_ARG_ENABLE(networklogging, - [AC_HELP_STRING([--enable-networklogging], - [enables network for debug tool])], - [enable_networklogging=$enableval], - [enable_networklogging=no]) - - -if test "x$enable_debug" = "xyes"; then - DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DDEBUG_ENABLED" -fi - -if test "x$enable_debug" = "xno" -a "x$enable_exportall" = "xno"; then - DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -fvisibility=hidden -DHIDE_DALI_INTERNALS" -fi - -if test "x$enable_shaderbincache" = "xENABLE"; then - DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DSHADERBIN_CACHE_ENABLED" -fi - -if test "x$enable_networklogging" = "xyes"; then - DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DNETWORK_LOGGING_ENABLED" -fi - -# If Ecore IMF version is greater than 1.13, then some structures are different -if test "x$ecore_imf_1_13" = "xyes"; then - DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DECORE_IMF_1_13" -fi - -AC_ARG_ENABLE([gles], - [AC_HELP_STRING([--enable-gles], - [Specify the OpenGL ES version for backwards compatibility])], - [enable_gles=$enableval], - [enable_gles=30]) - -DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DDALI_GLES_VERSION=${enable_gles}" - -# node.js by default statically links against libuv, so it doesn't need to install -# a libuv headers/ shared library. So we can't use pkg-config to access any headers. -# As a work around we pass the node deps path so we can access the libuv headers inside nodes -# directory AC_ARG_WITH([libuv], [AC_HELP_STRING([--with-libuv], [Path that contains libuv headers. Setting this configures DALi to work with LibUV mainloop used in Node.JS. @@ -159,231 +25,24 @@ AC_ARG_WITH([libuv], [with_libuv=$withval], [with_libuv=no]) -# Node.JS already has a libuv main loop running,so we have to integrate with it -AM_CONDITIONAL(LIB_UV_EVENT_LOOP, test x$with_libuv != xno) - +AC_ARG_ENABLE([feedback], + [AC_HELP_STRING([ --enable-feedback], + [Enable feedback plugin])], + [enable_feedback=yes], + [enable_feedback=no]) -build_for_libuv=no +AC_CONFIG_SUBDIRS(adaptor) if test "x$with_libuv" != "xno"; then - AC_MSG_NOTICE("build with libuv mainloop (Node.JS support) == yes"); - [build_for_libuv=yes] - DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DNODE_JS_SUPPORT -I${with_libuv}" -else - #not using libuv build - AC_MSG_NOTICE("build with libuv mainloop == no (Node.JS not supported)"); + # build dali-adaptor & dali-adaptor-uv + AC_CONFIG_SUBDIRS(adaptor-uv) fi - -AC_ARG_ENABLE([appfw], - [AC_HELP_STRING([--enable-appfw], - [Builds with Tizen App framework libraries, off by default])], - [enable_appfw=$enableval], - [enable_appfw=no]) - -# Option to allow building with Tizen SDK 2.2 -AC_ARG_WITH([tizen-2-2-compatibility], - [AC_HELP_STRING([--with-tizen-2-2-compatibility], - [Use Tizen SDK 2.2 compatibility])], - [with_tizen_2_2_compatibility=$withval], - [with_tizen_2_2_compatibility=no]) - -# Tizen Profile options -AC_ARG_ENABLE([profile], - [AC_HELP_STRING([--enable-profile=COMMON,MOBILE,WEARABLE,TV,UBUNTU], - [Select the variant of tizen])], - [enable_profile=$enableval], - [enable_profile=COMMON]) - -# Ensure valid profile selected -if test "x$enable_profile" != "xCOMMON" -a "x$enable_profile" != "xMOBILE" -a "x$enable_profile" != "xWEARABLE" -a "x$enable_profile" != "xTV" -a "x$enable_profile" != "xUBUNTU"; then - AC_MSG_ERROR([$enable_profile is an invalid profile]) -fi - -AC_ARG_ENABLE(wayland, - [ --enable-wayland Build on Wayland], - enable_wayland=yes, - enable_wayland=no) - -DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DDALI_PROFILE_${enable_profile}" -DALI_PROFILE_CFLAGS=" -DDALI_PROFILE_${enable_profile}" -AM_CONDITIONAL([COMMON_PROFILE], [test x$enable_profile = xCOMMON]) -AM_CONDITIONAL([MOBILE_PROFILE], [test x$enable_profile = xMOBILE]) -AM_CONDITIONAL([WEARABLE_PROFILE], [test x$enable_profile = xWEARABLE]) -AM_CONDITIONAL([TV_PROFILE], [test x$enable_profile = xTV]) -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_NETWORK_LOGGING], [test x$enable_networklogging = xyes]) - -# Platforms should either enable features or remove them, they -# should not disable features. This allows the developer to override -# features through the command line. - -if test "x$enable_profile" = "xCOMMON"; then -PKG_CHECK_MODULES(OPENGLES20, glesv2 egl) -fi - -if test "x$enable_profile" = "xMOBILE"; then -PKG_CHECK_MODULES(OPENGLES20, gles20) -enable_assimp=no -fi - -if test "x$enable_profile" = "xLITE"; then -PKG_CHECK_MODULES(OPENGLES20, gles20) -fi - -if test "x$enable_profile" = "xWEARABLE"; then -PKG_CHECK_MODULES(OPENGLES20, glesv2) -fi - -if test "x$enable_profile" = "xTV"; then -PKG_CHECK_MODULES(OPENGLES20, glesv2) -fi - -if test "x$enable_profile" = "xUBUNTU"; then -PKG_CHECK_MODULES(OPENGLES20, glesv2 egl) -else - - - -PKG_CHECK_MODULES(DLOG, dlog) -PKG_CHECK_MODULES(SENSOR, sensor) -PKG_CHECK_MODULES(TTS, tts) -PKG_CHECK_MODULES(VCONF, vconf) -if test "x$enable_efl" = "xyes"; then -if test "x$with_tizen_2_2_compatibility" = "xno"; then -PKG_CHECK_MODULES(CAPI_SYSTEM_INFO, capi-system-info) -fi -fi - -fi # ubuntu profile test - -if test "x$enable_appfw" = "xyes"; then -PKG_CHECK_MODULES(CAPI_APPFW_APPLICATION, capi-appfw-application) -PKG_CHECK_MODULES(CAPI_SYSTEM_SYSTEM_SETTINGS, capi-system-system-settings) -fi - -# Using EFL api's for WAYLAND AND X11 to run on ecore mainloop -if test "x$enable_efl" = "xyes"; then -if test "x$enable_wayland" = "xyes"; then -PKG_CHECK_MODULES(WAYLAND, [ecore-wayland egl wayland-egl wayland-client >= 1.2.0 xkbcommon], - [DALI_USE_ECORE_WAYLAND=1], - [DALI_USE_ECORE_WAYLAND=0]) - -else -PKG_CHECK_MODULES(ECORE_X, [ecore-x], - [DALI_USE_ECORE_X11=1], - [DALI_USE_ECORE_X11=0]) -PKG_CHECK_MODULES(X11, [x11], - [DALI_USE_X11=1], - [DALI_USE_X11=0]) -fi -fi -# Using Wayland API directly ( main loop agnostic, typically for running on libuv) -# wayland-extension-client include xdg-shell-client -if test "x$enable_efl" = "xno"; then -if test "x$enable_wayland" = "xyes"; then -PKG_CHECK_MODULES(WAYLAND, [ egl wayland-egl wayland-client >= 1.2.0 xkbcommon], - [DALI_USE_WAYLAND=1], - [DALI_USE_WAYLAND=0]) -fi -fi - -# remove this when we update common repos -# common profile currently does not have wayland extensions like xdg-shell -if test "x$enable_wayland" = "xyes"; then -if test "x$enable_profile" != "xCOMMON"; then -PKG_CHECK_MODULES(WAYLAND_EXTENSION, xdg-shell-client) -fi -fi -AM_CONDITIONAL([USE_ECORE_WAYLAND], [test "$DALI_USE_ECORE_WAYLAND" -eq 1]) - if test "x$enable_feedback" = "xyes"; then - -if test "x$enable_profile" = "xCOMMON" || test "x$enable_profile" = "xTV"; then -PKG_CHECK_MODULES(HAPTIC, haptic) -fi - -if test "x$enable_profile" = "xMOBILE"; then -PKG_CHECK_MODULES(DEVICED, deviced) + # build dali-adaptor & dali-adaptor-uv & plugins + AC_CONFIG_SUBDIRS(plugins) fi +#else + # build dali-adaptor only -PKG_CHECK_MODULES(FEEDBACK, feedback) -PKG_CHECK_MODULES(MMFSOUND, mm-sound) -fi - -if test x$DALI_DATA_RW_DIR != x; then - dataReadWriteDir=$DALI_DATA_RW_DIR -else - dataReadWriteDir=${prefix}/share/dali/ -fi - -if test x$DALI_DATA_RO_DIR != x; then - dataReadOnlyDir=$DALI_DATA_RO_DIR -else - dataReadOnlyDir=${prefix}/share/dali/ -fi - -if test x$FONT_CONFIGURATION_FILE != x; then - fontConfigurationFile=$FONT_CONFIGURATION_FILE -fi - -AC_SUBST(dataReadWriteDir) -AC_SUBST(dataReadOnlyDir) -AC_SUBST(DALI_ADAPTOR_CFLAGS) -AC_SUBST(DALI_PROFILE_CFLAGS) -AC_SUBST(fontConfigurationFile) - - -# Specify the include directory for development headers -#devincludepath=${includedir}/dali/internal -devincludepath=${includedir} -AC_SUBST(devincludepath) - -AC_CONFIG_FILES([ - Makefile - adaptor/Makefile - dali.pc - adaptor/dali-adaptor-integration.pc -]) - -AM_CONDITIONAL([USE_PLUGIN], [test x$enable_feedback = xyes]) - -if test "x$enable_feedback" = "xyes"; then -AC_CONFIG_FILES([ - plugins/Makefile -]) -fi - -if test "x$freetype_bitmap_support" = "xyes"; then -DALI_ADAPTOR_CFLAGS="$DALI_ADAPTOR_CFLAGS -DFREETYPE_BITMAP_SUPPORT" -fi +AC_CONFIG_FILES(Makefile) AC_OUTPUT - - -echo " -Configuration -------------- - Prefix: $prefix - Debug Build: $enable_debug - Compile flags $DALI_ADAPTOR_CFLAGS - Freetype bitmap support (Emoji): $freetype_bitmap_support - Profile: $enable_profile - Data Dir (Read/Write): $dataReadWriteDir - Data Dir (Read Only): $dataReadOnlyDir - Tizen SDK 2.2 compatibility: $with_tizen_2_2_compatibility - EldBus: $eldbus_available - Shader Binary Cache: $enable_shaderbincache - Using LibUV mainloop (Node.JS) $build_for_libuv - Ecore Version At Least 1.13.0 $ecore_imf_1_13 - Network logging enabled: $enable_networklogging - Font config file: $fontConfigurationFile - Building with EFL Libraries $enable_efl - Using Tizen APP FW libraries $enable_appfw -" -# optional output of node.js source path if we're building with libuv -if test "x$build_for_libuv" != "xno"; then -echo " LibUV header path $with_libuv" -fi diff --git a/build/tizen/plugins/.gitignore b/build/tizen/plugins/.gitignore new file mode 100644 index 0000000..0d1f029 --- /dev/null +++ b/build/tizen/plugins/.gitignore @@ -0,0 +1,20 @@ +/doc +/.cov +/aclocal.m4 +/autom4te.cache +/ar-lib +/compile +/config.guess +/config.log +/config.status +/config.sub +/configure +/depcomp +/documentation.list +/install-sh +/libtool +/ltmain.sh +/m4 +/missing +*.pc +/documentation.list diff --git a/build/tizen/plugins/configure.ac b/build/tizen/plugins/configure.ac new file mode 100644 index 0000000..30909a9 --- /dev/null +++ b/build/tizen/plugins/configure.ac @@ -0,0 +1,36 @@ +m4_define([dali_version],[0.1.0]) +AC_INIT([dali], [dali_version]) +AM_INIT_AUTOMAKE([-Wall foreign]) + +AC_CONFIG_MACRO_DIR([m4]) + +AC_PROG_CXX +AC_PROG_LIBTOOL +AC_PROG_MKDIR_P + +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + +LT_INIT + +AM_CONDITIONAL([COMMON_PROFILE], [test x$enable_profile = xCOMMON]) +AM_CONDITIONAL([MOBILE_PROFILE], [test x$enable_profile = xMOBILE]) +AM_CONDITIONAL([WEARABLE_PROFILE], [test x$enable_profile = xWEARABLE]) +AM_CONDITIONAL([TV_PROFILE], [test x$enable_profile = xTV]) +AM_CONDITIONAL([UBUNTU_PROFILE], [test x$enable_profile = xUBUNTU]) + +AM_CONDITIONAL([USE_FEEDBACK], [test x$enable_feedback = xyes]) + +if test "x$enable_profile" = "xCOMMON" || test "x$enable_profile" = "xTV"; then +PKG_CHECK_MODULES(HAPTIC, haptic) +fi + +if test "x$enable_profile" = "xMOBILE"; then +PKG_CHECK_MODULES(DEVICED, deviced) +fi + +PKG_CHECK_MODULES(FEEDBACK, feedback) +PKG_CHECK_MODULES(MMFSOUND, mm-sound) + +AC_CONFIG_FILES(Makefile) + +AC_OUTPUT diff --git a/packaging/dali-adaptor.spec b/packaging/dali-adaptor.spec index 04b38d2..cd677ec 100644 --- a/packaging/dali-adaptor.spec +++ b/packaging/dali-adaptor.spec @@ -66,9 +66,6 @@ BuildRequires: pkgconfig(glesv2) # If we have not set a BuildRequires for the gles version, default it here. %{!?gles_requirement_setup: BuildRequires: pkgconfig(glesv2)} -# macro is enabled by passing gbs build --define "with_libuv 1" -%define build_with_libuv 0%{?with_libuv:1} - BuildRequires: pkgconfig BuildRequires: gawk BuildRequires: pkgconfig(sensor) @@ -93,15 +90,11 @@ BuildRequires: fribidi-devel BuildRequires: pkgconfig(capi-system-info) %endif -%if 0%{?build_with_libuv} # Tizen currently does not have libuv as a separate libuv package # So we have to look into the uv headers bundled inside node-js BuildRequires: nodejs-devel -%endif -%define dali_needs_efl_libraries 1 -%define dali_needs_appfw_libraries 1 %if %{with wayland} ####### BUILDING FOR WAYLAND ####### @@ -112,18 +105,12 @@ BuildRequires: wayland-devel %if "%{profile}" != "common" BuildRequires: wayland-extension-client-devel %endif -%if %{build_with_libuv} -####### BUILDING FOR PURE WAYLAND ####### -# if we're building with wayland and runnning under node.js then we are using libuv mainloop -# and DALis own wayland client (it needs wayland-client headers). -# EFL libraries and APP Framework libraries are not required in this case -%define dali_needs_efl_libraries 0 -%define dali_needs_appfw_libraries 0 + +# dali-adaptor-uv uses libuv mainloop and has its own wayland client (it needs wayland-client headers). BuildRequires: libxkbcommon-devel -%else -####### BUILDING FOR ECORE WAYLAND ####### + +# dali-adaptor uses ecore mainloop BuildRequires: pkgconfig(ecore-wayland) -%endif # tpkp-curl (certificate pinning for libcurl functions) is only available in Tizen 3.0 BuildRequires: pkgconfig(tpkp-curl) @@ -138,17 +125,11 @@ BuildRequires: pkgconfig(xdamage) BuildRequires: pkgconfig(utilX) %endif -###### Building with EFL libraries -%if 0%{?dali_needs_efl_libraries} +# for dali-adaptor BuildRequires: pkgconfig(evas) BuildRequires: pkgconfig(elementary) -%endif - -###### Build with APP Framework -%if 0%{?dali_needs_appfw_libraries} BuildRequires: pkgconfig(capi-appfw-application) BuildRequires: pkgconfig(capi-system-system-settings) -%endif %if 0%{?over_tizen_2_2} BuildRequires: pkgconfig(capi-system-info) @@ -252,6 +233,10 @@ FONT_CONFIGURATION_FILE="%{font_configuration_file}" ; export FONT_CONFIGURATION # Default to GLES 2.0 if not specified. %{!?target_gles_version: %define target_gles_version 20} +#--enable-efl=no \ # only affects dali-adaptor-uv +#--enable-appfw=yes \ # affects both dali-adaptor & dali-adaptor-uv +#--with-libuv=/usr/include/node/ \ # only affects dali-adaptor-uv + # Set up the build via configure. %configure --prefix=$PREFIX --with-jpeg-turbo --enable-gles=%{target_gles_version} --enable-shaderbincache=%{shaderbincache_flag} --enable-profile=%{dali_profile} \ %if 0%{?dali_feedback_plugin} @@ -260,19 +245,13 @@ FONT_CONFIGURATION_FILE="%{font_configuration_file}" ; export FONT_CONFIGURATION %if 0%{?tizen_2_2_compatibility} --with-tizen-2-2-compatibility \ %endif -%if 0%{?dali_needs_efl_libraries} - --enable-efl=yes \ -%else - --enable-efl=no \ -%endif -%if 0%{?dali_needs_appfw_libraries} - --enable-appfw=yes \ +%if %{with wayland} + --enable-efl=no \ %else - --enable-appfw=no \ + --enable-efl=yes \ %endif -%if %{?build_with_libuv} + --enable-appfw=yes \ --with-libuv=/usr/include/node/ \ -%endif $configure_flags --libdir=%{_libdir} # Build. @@ -354,7 +333,8 @@ exit 0 %{dev_include_path}/dali/public-api/* %{dev_include_path}/dali/devel-api/* %{dev_include_path}/dali/doc/* -%{_libdir}/pkgconfig/dali.pc +%{_libdir}/pkgconfig/dali-adaptor.pc +%{_libdir}/pkgconfig/dali-adaptor-uv.pc %files integration-devel %defattr(-,root,root,-) -- 2.7.4