SUBDIRS = dali-toolkit
if ENABLE_JAVASCRIPT_PLUGIN
-SUBDIRS +=plugins
+SUBDIRS +=plugins/javascript
+endif
+
+if ENABLE_CSHARP_PLUGIN
+SUBDIRS +=plugins/csharp
endif
# perform documentation last, so it doesn't prevent code from building if there's an error
# no setting // enable_javascript = automatic ( enable if v8 present)
AC_ARG_ENABLE([javascript],
[AC_HELP_STRING([--enable-javascript],
- [Enable JavaScript plugin])] ,
- [enable_javascript=$enableval],
- [enable_javascript=automatic])
+ [Enable JavaScript plugin])],
+ [enable_javascript=$enableval],
+ [enable_javascript=automatic])
+# option to build C# plugin
+# configure settings and output
+# --enable-csharp // enable_csharp = yes
+# --enable-csharp=yes // enable_csharp = yes
+# --enable-csharp=no // enable_csharp = no
+# no setting // enable_csharp = no
+AC_ARG_ENABLE([csharp],
+ [AC_HELP_STRING([--enable-csharp],
+ [Enable csharp plugin])],
+ [enable_csharp=$enableval],
+ [enable_csharp=automatic])
if test "x$enable_debug" = "xyes"; then
DALI_TOOLKIT_CFLAGS="$DALI_TOOLKIT_CFLAGS -DDEBUG_ENABLED"
AC_SUBST(DOXYGEN_DOCS_DIR)
AC_SUBST(DOXYGEN_ROOT_DIR)
+# Enable csharp plugin
+build_csharp_plugin=no
+build_ruby_flag=no
+if test x$enable_csharp = xyes; then
+ [build_csharp_plugin=yes]
+ AC_MSG_NOTICE(Building DALi csharp plugin ...)
+
+ PKG_CHECK_MODULES(DALIADAPTOR, dali-adaptor)
+ AC_PATH_PROG([SWIG], [swig])
+
+ # if gbs enable, then only use swig, without ruby or mcs
+ if test "x$dali_profile" = "xUBUNTU"; then
+ [build_ruby_flag=yes]
+ AC_PATH_PROG([RUBY], [ruby])
+ AC_PATH_PROGS([MCS], [mcs gmcs gmcs2])
+ AC_MSG_NOTICE(swig ruby mcs working ...)
+ else
+ [build_ruby_flag=no]
+ AC_PATH_PROG([RUBY], [ruby])
+ #AC_PATH_PROGS([MCS], [mcs gmcs gmcs2])
+ #AC_MSG_NOTICE(swig only working ...)
+ fi
+
+ # Set varaibles for dali-toolkit
+ DALITOOLKIT_CFLAGS="-I${prefix}/include -I${prefix}/include/dali-toolkit"
+ DALITOOLKIT_LIBS="-L${prefix}/lib -ldali-toolkit -ldali-core"
+ AC_SUBST(DALITOOLKIT_CFLAGS)
+ AC_SUBST(DALITOOLKIT_LIBS)
+fi
+
+#set a variable for the makefile to force compile the csharp plugin
+AM_CONDITIONAL([ENABLE_CSHARP_PLUGIN], [test x$build_csharp_plugin = xyes])
+AM_CONDITIONAL([ENABLE_RUBY_FLAG], [test x$build_ruby_flag = xyes])
+
AC_CONFIG_FILES([
Makefile
dali-toolkit/Makefile
- plugins/Makefile
+ plugins/javascript/Makefile
+ plugins/csharp/Makefile
dali-toolkit.pc
docs/Makefile
docs/dali.doxy
Prefix: $prefix
Debug Build: $enable_debug
JavaScript support (V8 required) $build_javascript_plugin
+ CSharp support $build_csharp_plugin
Profile: $dali_profile
Data Dir (Read/Write): $dataReadWriteDir
Data Dir (Read Only): $dataReadOnlyDir
--- /dev/null
+# Copyright (c) 2016 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.
+
+dali_swig_dir = ../../../../plugins/dali-swig
+
+CLEANFILES = $(dali_swig_dir)/automatic/cpp/dali_wrap.* $(dali_swig_dir)/automatic/csharp/*.cs $(dali_swig_dir)/*.so $(dali_swig_dir)/*.dll \
+ $(dali_swig_dir)/manual/cpp/*.o \
+ $(dali_swig_dir)/examples/*.so $(dali_swig_dir)/examples/*.dll $(dali_swig_dir)/examples/*.exe
+
+BUILT_SOURCES = $(dali_swig_dir)/automatic/cpp/dali_wrap.cpp
+
+all-local: libNDalic.so NDali.dll
+gbs-local: libNDalic.so
+
+libNDalic.so: $(dali_swig_dir)/automatic/cpp/dali_wrap.o $(dali_swig_dir)/manual/cpp/keyboard_focus_manager_wrap.o
+ $(CXX) -shared $(dali_swig_dir)/automatic/cpp/dali_wrap.o $(dali_swig_dir)/manual/cpp/keyboard_focus_manager_wrap.o -o $(dali_swig_dir)/libNDalic.so $(DALICORE_LIBS) $(DALIADAPTOR_LIBS) $(DALITOOLKIT_LIBS)
+
+$(dali_swig_dir)/automatic/cpp/dali_wrap.o: $(BUILT_SOURCES)
+ $(CXX) -c -fpic $(CXXFLAGS) $(DALICORE_CFLAGS) $(DALIADAPTOR_CFLAGS) $(DALITOOLKIT_CFLAGS) $(dali_swig_dir)/automatic/cpp/dali_wrap.cpp -o $(dali_swig_dir)/automatic/cpp/dali_wrap.o
+
+$(dali_swig_dir)/manual/cpp/keyboard_focus_manager_wrap.o: $(dali_swig_dir)/manual/cpp/keyboard_focus_manager_wrap.cpp
+ $(CXX) -c -fpic $(CXXFLAGS) $(DALICORE_CFLAGS) $(DALIADAPTOR_CFLAGS) $(DALITOOLKIT_CFLAGS) $(dali_swig_dir)/manual/cpp/keyboard_focus_manager_wrap.cpp -o $(dali_swig_dir)/manual/cpp/keyboard_focus_manager_wrap.o
+
+NDali.dll: $(BUILT_SOURCES)
+ $(MCS) -nologo -target:library -out:$(dali_swig_dir)/NDali.dll $(dali_swig_dir)/automatic/csharp/*.cs $(dali_swig_dir)/manual/csharp/*.cs
+
+
+# use swig to generate the CS wrapper code
+# then call our property-wrapper to inject DALi property getters / setters
+if ENABLE_RUBY_FLAG
+
+$(BUILT_SOURCES): $(dali_swig_dir)/SWIG/*.i
+ rm -f $(dali_swig_dir)/automatic/csharp/*.cs
+ rm -f $(dali_swig_dir)/automatic/cpp/dali-wrap.*
+ $(SWIG) -csharp -c++ -outdir $(dali_swig_dir)/automatic/csharp \
+ $(DALI_CFLAGS) $(DALICORE_CFLAGS) $(DALIADAPTOR_CFLAGS) $(DALITOOLKIT_CFLAGS) -namespace Dali -o $(dali_swig_dir)/automatic/cpp/dali_wrap.cpp $(dali_swig_dir)/SWIG/dali.i
+ cd $(dali_swig_dir) && ./property-wrapper.rb
+ cd $(dali_swig_dir) && ./constructor-generator.rb
+
+else
+
+$(BUILT_SOURCES): $(dali_swig_dir)/SWIG/*.i
+ rm -f $(dali_swig_dir)/automatic/csharp/*.cs
+ rm -f $(dali_swig_dir)/automatic/cpp/dali-wrap.*
+ $(SWIG) -version
+ $(SWIG) -csharp -c++ -outdir $(dali_swig_dir)/automatic/csharp \
+ $(DALI_CFLAGS) $(DALICORE_CFLAGS) $(DALIADAPTOR_CFLAGS) $(DALITOOLKIT_CFLAGS) -namespace Dali -o $(dali_swig_dir)/automatic/cpp/dali_wrap.cpp $(dali_swig_dir)/SWIG/dali.i
+endif
+
+
+dist-hook: $(BUILT_SOURCES)
+ mkdir -p $(distdir)/automatic/cpp
+ cp $(dali_swig_dir)/automatic/cpp/*.cpp $(distdir)/automatic/cpp
+ cp $(dali_swig_dir)/automatic/cpp/*.h $(distdir)/automatic/cpp
+ mkdir -p $(distdir)/manual/cpp
+ cp $(dali_swig_dir)/manual/cpp/*.cpp $(distdir)/manual/cpp
+ cp $(dali_swig_dir)/manual/cpp/*.h $(distdir)/manual/cpp
+ mkdir -p $(distdir)/automatic/csharp
+ cp $(dali_swig_dir)/automatic/csharp/*.cs $(distdir)/automatic/csharp
+ mkdir -p $(distdir)/manual/csharp
+ cp $(dali_swig_dir)/manual/csharp/*.cs $(distdir)/manual/csharp
+ mkdir -p $(distdir)/examples
+ cp $(dali_swig_dir)/examples/*.csproj $(distdir)/examples
+ cp $(dali_swig_dir)/examples/*.cs $(distdir)/examples
+
+gbs-install: gbs-local
+ -$(INSTALL) -d $(DESTDIR)
+ -$(INSTALL) $(dali_swig_dir)/libNDalic.so $(DESTDIR)
+
+EXTRA_DIST = \
+ swig.cmd
+
# Build the Dali Toolkit library
-plugin_src_dir = ../../../plugins
+plugin_src_dir = ../../../../plugins
-include ../../../plugins/dali-script-v8/file.list
+include ../../../../plugins/dali-script-v8/file.list
lib_LTLIBRARIES = libdali-script-plugin-v8.la
# install path for dali-toolkit.h, is dali-toolkit.h is not installed yet.
# It won't be installed until the rpm is installed, and unfortunately the
# plugin is part of the same rpm
-script_plugin_v8_includes = -I../../../plugins/dali-script-v8/src \
- -I../../../plugins/dali-script-v8/src/utils
+script_plugin_v8_includes = -I../../../../plugins/dali-script-v8/src \
+ -I../../../../plugins/dali-script-v8/src/utils
libdali_script_plugin_v8_la_SOURCES = \
libdali_script_plugin_v8_la_DEPENDENCIES =
libdali_script_plugin_v8_la_CXXFLAGS = -DDALI_COMPILATION \
- -I../../../ \
+ -I../../../../ \
$(V8_CFLAGS) \
$(DALI_TOOLKIT_CFLAGS) \
$(DALICORE_CFLAGS) \
--- /dev/null
+<manifest>
+ <request>
+ <domain name="_"/>
+ </request>
+</manifest>
--- /dev/null
+Name: NDalic
+Summary: dali wrapper
+Version: 1.2.9
+Release: 1
+Group: uifw/graphic
+License: TO_BE_FILLED_IN
+Source0: %{name}-%{version}.tar.gz
+BuildRequires: cmake
+BuildRequires: swig
+#BuildRequires: ruby
+#BuildRequires: ruby-devel
+
+#BuildRequires: mono-core
+#BuildRequires: mono-compat
+#BuildRequires: mono-data
+#BuildRequires: mono-compiler
+#BuildRequires: mono-wcf
+#BuildRequires: mono-web
+
+BuildRequires: pkgconfig
+
+BuildRequires: pkgconfig(glib-2.0)
+BuildRequires: pkgconfig(dali-core)
+BuildRequires: pkgconfig(dali-adaptor)
+BuildRequires: pkgconfig(dali-toolkit)
+
+BuildRequires: dali-devel
+BuildRequires: dali-integration-devel
+BuildRequires: dali-adaptor-devel
+BuildRequires: dali-adaptor-integration-devel
+BuildRequires: dali-toolkit-devel
+
+%description
+dali wrapper
+
+%package dali-wrapper
+
+Summary: Development dali-wrapper
+Group: Development/Libraries/Other
+Requires: %{name} = %{version}
+
+%description dali-wrapper
+Development .so for dali wrapper
+%define daliSwigDir %{_builddir}/%{name}-%{version}/build/tizen
+%define daliToolkitDir %{_builddir}/dali-toolkit-%{version}/build/tizen
+%define daliPluginsDir %{_builddir}/%{name}-%{version}/build/tizen/plugins/csharp
+
+#############################
+# profile setup
+#############################
+
+
+%define dali_toolkit_profile MOBILE
+
+%define dali_style_folder 720x1280
+# dali_style to be provided by build system as with dali_toolkit_profile or by passing --define 'dali_style 470x800' to the rpm build command
+
+%if "%{?dali_style}"
+ %define dali_style_folder %{dali_style}
+%endif
+
+# Further resource locations profiles can be provided here otherwise MOBILE will be used
+%if "%{tizen_profile_name}" == "mobile"
+ %define dali_toolkit_profile MOBILE
+%endif
+
+%description
+The OpenGLES Canvas Core Library Toolkit - a set of controls that provide
+user interface functionality.
+
+##############################
+# Preparation
+##############################
+%prep
+%setup -q
+
+#Use TZ_PATH when tizen version is 3.x
+
+%if "%{tizen_version_major}" == "2"
+%define ndali_data_rw_dir /opt/usr/share/dali/
+%define ndali_data_ro_dir /usr/share/dali/
+%else
+%define ndali_data_rw_dir %TZ_SYS_SHARE/dali/
+%define ndali_data_ro_dir %TZ_SYS_RO_SHARE/dali/
+%endif
+##############################
+# Build
+##############################
+%build
+echo "----------------" %{_builddir}
+echo "----------------" %{daliSwigDir}
+echo "----------------" %{_libdir}
+echo "----------------" %{daliPluginsDir}
+
+PREFIX="/usr"
+CXXFLAGS+=" -Wall -g -Os -fPIC -fvisibility-inlines-hidden -fdata-sections -ffunction-sections "
+LDFLAGS+=" -Wl,--rpath=$PREFIX/lib -Wl,--as-needed -Wl,--gc-sections -Wl,-Bsymbolic-functions "
+
+%if 0%{?enable_coverage}
+CXXFLAGS+=" --coverage "
+LDFLAGS+=" --coverage "
+%endif
+
+
+##############################
+# Build dali-wrap
+##############################
+
+libtoolize --force
+cd %{daliSwigDir}
+autoreconf --install
+NDALI_DATA_RW_DIR="%{ndali_data_rw_dir}" ; export NDALI_DATA_RW_DIR
+NDALI_DATA_RO_DIR="%{ndali_data_ro_dir}" ; export NDALI_DATA_RO_DIR
+%configure --enable-profile=%{dali_toolkit_profile} \
+ --with-style=%{dali_style_folder} \
+ --enable-csharp=yes \
+%if 0%{?enable_debug}
+ --enable-debug \
+%endif
+ --enable-i18n=yes
+cd %{daliPluginsDir}
+make gbs-local
+
+##############################
+# Installation
+##############################
+echo "----------------" %{_buildrootdir}
+%install
+cd "%{daliPluginsDir}"
+make DESTDIR=%{_buildrootdir}/%{name}-%{version}-%{release}.arm/usr/lib/ gbs-install
+
+##############################
+# Post Install
+##############################
+%post
+
+
+##############################
+# Files in Binary Packages
+##############################
+%files
+%manifest dali-csharp-wrapper.manifest
+%defattr(-,root,root,-)
+%{_libdir}/lib*
+
+