efl_project: Move from autotools to meson.
This commit is contained in:
parent
9f834e35bb
commit
210f43a736
|
@ -1,91 +0,0 @@
|
|||
MAINTAINERCLEANFILES = \
|
||||
ABOUT-NLS \
|
||||
Makefile.in \
|
||||
aclocal.m4 \
|
||||
compile \
|
||||
config.guess \
|
||||
config.h.in \
|
||||
config.rpath \
|
||||
config.sub \
|
||||
configure \
|
||||
depcomp \
|
||||
install-sh \
|
||||
ltmain.sh \
|
||||
missing \
|
||||
m4/libtool.m4 \
|
||||
m4/ltoptions.m4 \
|
||||
m4/ltsugar.m4 \
|
||||
m4/ltversion.m4 \
|
||||
m4/lt~obsolete.m4 \
|
||||
po/boldquot.sed \
|
||||
po/en@boldquot.header \
|
||||
po/en@quot.header \
|
||||
po/insert-header.sin \
|
||||
po/Makefile.in.in \
|
||||
po/Makevars.template \
|
||||
po/quot.sed \
|
||||
po/remove-potcdate.sin \
|
||||
po/Rules-quot \
|
||||
$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.gz \
|
||||
$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.bz2
|
||||
|
||||
SUBDIRS = data doc po src
|
||||
|
||||
ACLOCAL_AMFLAGS = -I m4
|
||||
|
||||
filesdir = $(docdir)
|
||||
files_DATA = \
|
||||
AUTHORS \
|
||||
COPYING \
|
||||
ChangeLog \
|
||||
INSTALL \
|
||||
NEWS \
|
||||
README \
|
||||
TODO
|
||||
|
||||
EXTRA_DIST = \
|
||||
autogen.sh \
|
||||
config.rpath \
|
||||
configure \
|
||||
m4/efl_attribute.m4 \
|
||||
m4/efl_binary.m4 \
|
||||
m4/efl_compiler_flag.m4 \
|
||||
m4/efl_path_max.m4
|
||||
|
||||
if EFL_HAVE_LCOV
|
||||
|
||||
lcov-reset:
|
||||
@rm -rf $(top_builddir)/coverage
|
||||
@find $(top_builddir) -name "*.gcda" -delete
|
||||
@lcov --zerocounters --directory $(top_builddir)
|
||||
|
||||
lcov-report:
|
||||
@mkdir $(top_builddir)/coverage
|
||||
lcov --capture --compat-libtool --output-file $(top_builddir)/coverage/coverage.info --directory $(top_builddir)/src/lib --base-directory $(top_srcdir)/src/lib
|
||||
lcov --remove $(top_builddir)/coverage/coverage.info '*.h' --output-file $(top_builddir)/coverage/coverage.cleaned.info
|
||||
lcov --remove $(top_builddir)/coverage/coverage.cleaned.info '*/tests/*' --output-file $(top_builddir)/coverage/coverage.cleaned2.info
|
||||
genhtml --branch-coverage -t "$(PACKAGE_STRING)" -o $(top_builddir)/coverage/html $(top_builddir)/coverage/coverage.cleaned2.info
|
||||
@echo "Coverage Report at $(top_builddir)/coverage/html"
|
||||
|
||||
endif
|
||||
|
||||
if EFL_HAVE_TESTS
|
||||
|
||||
TESTS = src/tests/${edi_name}_tests
|
||||
|
||||
lcov-check:
|
||||
if EFL_HAVE_LCOV
|
||||
@$(MAKE) $(AM_MAKEFLAGS) lcov-reset
|
||||
endif
|
||||
@$(MAKE) $(AM_MAKEFLAGS) check
|
||||
if EFL_HAVE_LCOV
|
||||
@$(MAKE) $(AM_MAKEFLAGS) lcov-report
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
# cleaning
|
||||
|
||||
clean-local:
|
||||
rm -rf benchmark coverage
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
EDJE_CC = @edje_cc@
|
||||
EDJE_CC_FLAGS_VERBOSE = $(EDJE_CC_FLAGS_VERBOSE_@AM_V@)
|
||||
EDJE_CC_FLAGS_VERBOSE_ = $(EDJE_CC_FLAGS_VERBOSE_@AM_DEFAULT_V@)
|
||||
EDJE_CC_FLAGS_VERBOSE_1 = -v
|
||||
EDJE_CC_FLAGS = $(EDJE_CC_FLAGS_VERBOSE) -fastdecomp -id $(srcdir) -fd $(srcdir)
|
||||
|
||||
AM_V_EDJ = $(am__v_EDJ_@AM_V@)
|
||||
am__v_EDJ_ = $(am__v_EDJ_@AM_DEFAULT_V@)
|
||||
am__v_EDJ_0 = @echo " EDJ " $@;
|
|
@ -1,15 +0,0 @@
|
|||
#!/bin/sh
|
||||
|
||||
rm -rf autom4te.cache
|
||||
rm -f aclocal.m4 ltmain.sh
|
||||
|
||||
echo "Running autopoint..." ; autopoint -f || :
|
||||
echo "Running aclocal..." ; aclocal -I m4 $ACLOCAL_FLAGS || exit 1
|
||||
echo "Running autoconf..." ; autoconf || exit 1
|
||||
echo "Running autoheader..." ; autoheader || exit 1
|
||||
echo "Running libtoolize..." ; (libtoolize --copy --automake || glibtoolize --automake) || exit 1
|
||||
echo "Running automake..." ; automake --add-missing --copy --gnu || exit 1
|
||||
|
||||
if [ -z "$NOCONFIGURE" ]; then
|
||||
./configure "$@"
|
||||
fi
|
|
@ -1,95 +0,0 @@
|
|||
EFL_VERSION([0], [0], [1], [dev])
|
||||
AC_INIT([${edi_name}], [efl_version], [enlightenment-devel@lists.sourceforge.net])
|
||||
|
||||
AC_PREREQ([2.65])
|
||||
AC_CONFIG_SRCDIR([configure.ac])
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
|
||||
AC_CANONICAL_BUILD
|
||||
AC_CANONICAL_HOST
|
||||
|
||||
AM_INIT_AUTOMAKE([1.10 dist-bzip2 -Wall color-tests])
|
||||
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
||||
AM_PROG_AR
|
||||
|
||||
# this will speed up libtool checks
|
||||
LT_PREREQ([2.2])
|
||||
LT_INIT([win32-dll pic-only])
|
||||
EFL_INIT
|
||||
|
||||
AC_PROG_CC
|
||||
AM_PROG_CC_C_O
|
||||
EFL_ATTRIBUTE_UNUSED
|
||||
ELM_QUICKLAUNCH
|
||||
EFL_COMPILER_FLAG([-Wall])
|
||||
EFL_COMPILER_FLAG([-W])
|
||||
|
||||
# Checks for header files.
|
||||
EFL_CHECK_PATH_MAX
|
||||
|
||||
# Check for EFL
|
||||
PKG_CHECK_MODULES([EFL],
|
||||
[
|
||||
eina >= 1.8.0
|
||||
evas >= 1.8.0
|
||||
ecore >= 1.8.0
|
||||
edje >= 1.8.0
|
||||
elementary >= 1.8.0
|
||||
])
|
||||
|
||||
# Check for tests and coverage
|
||||
AC_ARG_WITH([tests],
|
||||
[AC_HELP_STRING([--with-tests=none|tests|coverage],
|
||||
[choose testing method: tests, coverage or none.
|
||||
@<:@default=auto@:>@])],
|
||||
[build_tests=${withval}],
|
||||
[build_tests=auto])
|
||||
|
||||
EFL_TESTS([${build_tests}])
|
||||
|
||||
# doxygen program for documentation building
|
||||
EFL_CHECK_DOXYGEN([build_doc="yes"], [build_doc="no"])
|
||||
|
||||
# Check edje_cc
|
||||
EFL_WITH_BIN([edje], [edje-cc], [edje_cc])
|
||||
|
||||
# Checks for library functions.
|
||||
AC_CHECK_FUNCS([setlocale])
|
||||
|
||||
AM_GNU_GETTEXT_VERSION([0.17])
|
||||
AM_GNU_GETTEXT([external])
|
||||
|
||||
AC_CONFIG_FILES([
|
||||
Makefile
|
||||
data/Makefile
|
||||
data/desktop/Makefile
|
||||
data/desktop/${edi_name}.desktop
|
||||
data/themes/Makefile
|
||||
data/themes/default/Makefile
|
||||
doc/Makefile
|
||||
po/Makefile.in
|
||||
src/Makefile
|
||||
src/bin/Makefile
|
||||
src/lib/Makefile
|
||||
src/tests/Makefile
|
||||
doc/${edi_name}.1
|
||||
])
|
||||
AC_OUTPUT
|
||||
|
||||
echo
|
||||
echo
|
||||
echo "------------------------------------------------------------------------"
|
||||
echo "$PACKAGE_NAME $PACKAGE_VERSION"
|
||||
echo "------------------------------------------------------------------------"
|
||||
echo
|
||||
echo "Compilation..............: make (or gmake)"
|
||||
echo " CFLAGS.................: $CFLAGS"
|
||||
echo " edje_cc................: ${edje_cc}"
|
||||
echo
|
||||
echo "Building documentation...: ${build_doc}"
|
||||
echo "Building tests...........: ${have_tests}"
|
||||
echo "Generate coverage .......: ${have_lcov}"
|
||||
echo
|
||||
echo "Installation.............: make install (as root if needed, with 'su' or 'sudo')"
|
||||
echo " prefix.................: $prefix"
|
||||
echo
|
|
@ -1,3 +0,0 @@
|
|||
MAINTAINERCLEANFILES = Makefile.in
|
||||
|
||||
SUBDIRS = themes desktop
|
|
@ -1,12 +0,0 @@
|
|||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
Version=@VERSION@
|
||||
Type=Application
|
||||
Name=@PACKAGE_NAME@
|
||||
Name[fr]=@PACKAGE_NAME@
|
||||
GenericName=${Edi_Name}
|
||||
Comment=Efl Application ${Edi_Name}
|
||||
Icon=@PACKAGE_NAME@
|
||||
TryExec=@PACKAGE_NAME@
|
||||
Exec=@PACKAGE_NAME@
|
||||
Categories=Development;Utility;
|
|
@ -1,9 +0,0 @@
|
|||
MAINTAINERCLEANFILES = Makefile.in
|
||||
|
||||
desktopdir = $(datadir)/applications
|
||||
desktop_DATA = ${edi_name}.desktop
|
||||
|
||||
icondir = $(datadir)/icons/hicolor/256x256/apps
|
||||
icon_DATA = ${edi_name}.png
|
||||
|
||||
EXTRA_DIST = $(desktop_DATA) $(icon_DATA)
|
|
@ -0,0 +1,5 @@
|
|||
install_data('${edi_name}.desktop',
|
||||
install_dir: join_paths(dir_data, 'applications'))
|
||||
|
||||
install_data('${edi_name}.png',
|
||||
install_dir: join_paths(dir_data, 'icons'))
|
|
@ -0,0 +1,2 @@
|
|||
subdir('desktop')
|
||||
subdir('themes')
|
|
@ -1,4 +0,0 @@
|
|||
MAINTAINERCLEANFILES = Makefile.in
|
||||
|
||||
SUBDIRS = default
|
||||
|
|
@ -1,22 +0,0 @@
|
|||
AUTOMAKE_OPTIONS = subdir-objects
|
||||
MAINTAINERCLEANFILES = Makefile.in
|
||||
|
||||
EXTRA_DIST = \
|
||||
default.edc \
|
||||
images/enlightenment.png \
|
||||
sounds/bell.wav
|
||||
|
||||
include ../../../Makefile_Edje_Helper.am
|
||||
|
||||
filesdir = $(datadir)/$(PACKAGE)/themes
|
||||
files_DATA = default.edj
|
||||
|
||||
default.edj: Makefile $(EXTRA_DIST)
|
||||
$(AM_V_EDJ)$(EDJE_CC) $(EDJE_CC_FLAGS) \
|
||||
-id ${top_srcdir}/data/themes/default/images \
|
||||
-sd ${top_srcdir}/data/themes/default/sounds \
|
||||
$(top_srcdir)/data/themes/default/default.edc \
|
||||
$(top_builddir)/data/themes/default/default.edj
|
||||
|
||||
clean-local:
|
||||
rm -f *.edj
|
|
@ -0,0 +1,15 @@
|
|||
edje_cc = find_program('edje_cc')
|
||||
|
||||
cmd = [ edje_cc,
|
||||
'-id', join_paths(meson.source_root(), 'data', 'themes', 'default', 'images'),
|
||||
'-sd', join_paths(meson.source_root(), 'data', 'themes', 'default', 'sounds'),
|
||||
'@INPUT@', '@OUTPUT@'
|
||||
]
|
||||
|
||||
custom_target('default.edj',
|
||||
input : 'default.edc',
|
||||
output : 'default.edj',
|
||||
command: cmd,
|
||||
install_dir: join_paths(get_option('prefix'), get_option('datadir'), '${edi_name}', 'themes'),
|
||||
install: true
|
||||
)
|
|
@ -0,0 +1 @@
|
|||
subdir('default')
|
|
@ -1 +0,0 @@
|
|||
|
|
@ -1,50 +0,0 @@
|
|||
.TH ${EDI_NAME} 1 "01 01 ${Edi_Year} FIXME" "@PACKAGE_NAME@ @PACKAGE_VERSION@"
|
||||
|
||||
.SH NAME
|
||||
${edi_name} \- a demo application
|
||||
|
||||
.SH SYNOPSIS
|
||||
.B ${edi_name}
|
||||
[-L] [-C] [-V] [-h]
|
||||
|
||||
.SH DESCRIPTION
|
||||
|
||||
${Edi_Name} is a demo application to show how to integrate EFL and autotools into a
|
||||
cross platform build. You should be able to generate an executable easily for all
|
||||
target supported by EFL with this ${edi_name}.
|
||||
|
||||
With no option, the program starts and display an Hello World.
|
||||
|
||||
|
||||
.SH OPTIONS
|
||||
|
||||
.TP
|
||||
.B -L, --license
|
||||
Show license.
|
||||
|
||||
.TP
|
||||
.B -C, --copyright
|
||||
Show copyright.
|
||||
|
||||
.TP
|
||||
.B -V, --version
|
||||
Show program version.
|
||||
|
||||
.TP
|
||||
.B -h, --help
|
||||
Print list of options with short description.
|
||||
|
||||
|
||||
.SH BUGS
|
||||
|
||||
Reports are welcome. Send them at @PACKAGE_BUGREPORT@.
|
||||
|
||||
|
||||
.SH HOMEPAGE
|
||||
|
||||
http://enlightenment.org
|
||||
|
||||
|
||||
.SH AUTHORS
|
||||
|
||||
${Edi_User} <${Edi_Email}> and various contributors.
|
|
@ -1,38 +0,0 @@
|
|||
MAINTAINERCLEANFILES = Makefile.in
|
||||
EXTRA_DIST = ${edi_name}.1.in
|
||||
|
||||
man_MANS = ${edi_name}.1
|
||||
|
||||
|
||||
.PHONY: doc
|
||||
|
||||
PACKAGE_DOCNAME = $(PACKAGE_TARNAME)-$(PACKAGE_VERSION)-doc
|
||||
|
||||
if EFL_BUILD_DOC
|
||||
|
||||
doc-clean:
|
||||
rm -rf html/ latex/ man/ xml/ $(top_builddir)/$(PACKAGE_DOCNAME).tar*
|
||||
|
||||
doc: all
|
||||
$(efl_doxygen)
|
||||
cp $(srcdir)/img/* html/
|
||||
cp $(srcdir)/img/*.eps latex/
|
||||
rm -rf $(PACKAGE_DOCNAME).tar*
|
||||
mkdir -p $(PACKAGE_DOCNAME)/doc
|
||||
cp -R html/ latex/ man/ $(PACKAGE_DOCNAME)/doc
|
||||
tar cf $(PACKAGE_DOCNAME).tar $(PACKAGE_DOCNAME)/
|
||||
bzip2 -9 $(PACKAGE_DOCNAME).tar
|
||||
rm -rf $(PACKAGE_DOCNAME)/
|
||||
mv $(PACKAGE_DOCNAME).tar.bz2 $(top_builddir)
|
||||
@echo "Documentation Package: doc/$(PACKAGE_DOCNAME).tar.bz2"
|
||||
@echo "Documentation HTML: doc/html"
|
||||
|
||||
clean-local: doc-clean
|
||||
|
||||
else
|
||||
|
||||
doc:
|
||||
@echo "Documentation not built. Run ./configure --help"
|
||||
|
||||
endif
|
||||
|
|
@ -1,123 +0,0 @@
|
|||
dnl file to manage modules in efl
|
||||
|
||||
dnl EFL_VERSION(major, minor, micro, release)
|
||||
dnl This setup EFL version information and should be called BEFORE AC_INIT().
|
||||
dnl
|
||||
dnl release parameter is 'dev' to use from SVN or libtool -release field.
|
||||
dnl It may be empty if not dev (svn/live build) and no -release is to be used.
|
||||
dnl
|
||||
dnl Examples:
|
||||
dnl EFL_VERSION(1, 7, 99, dev)
|
||||
dnl EFL_VERSION(1, 7, 99, ver-1234)
|
||||
dnl This will define couple of m4 symbols:
|
||||
dnl v_maj = given major number (first parameter)
|
||||
dnl v_min = given minor number (second parameter)
|
||||
dnl v_mic = given micro number (third parameter)
|
||||
dnl v_rev = if release, it's 0, otherwise it's dev_version.
|
||||
dnl v_rel = if release, it's -release followed by fourth parameter,
|
||||
dnl otherwise it's empty. (mostly for libtool)
|
||||
dnl efl_version = if release, it's major.minor.micro, otherwise it's
|
||||
dnl major.minor.micro.dev_version
|
||||
dnl dev_version = development version (svn revision).
|
||||
dnl def_build_profile = dev or release based on 'dev' release parameter.
|
||||
AC_DEFUN([EFL_VERSION],
|
||||
[dnl
|
||||
m4_define([v_maj], [$1])dnl
|
||||
m4_define([v_min], [$2])dnl
|
||||
m4_define([v_mic], [$3])dnl
|
||||
m4_define([dev_version], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n']))dnl
|
||||
m4_define([v_rev], m4_if($4, dev, [dev_version], [0]))dnl
|
||||
m4_define([v_rel], [])dnl
|
||||
m4_define([def_build_profile], m4_if($4, dev, [dev], [release]))dnl
|
||||
m4_define([efl_version], m4_if($4, dev, [v_maj.v_min.v_mic.v_rev], [v_maj.v_min.v_mic]))dnl
|
||||
m4_define([efl_version], [v_maj.v_min.v_mic])dnl
|
||||
])
|
||||
|
||||
dnl EFL_COLOR
|
||||
dnl will check if terminal supports color and if color is wanted by user.
|
||||
dnl
|
||||
dnl Used Variables:
|
||||
dnl WANT_COLOR: if no, forces no color output.
|
||||
dnl TERM: used to check if color should be enabled.
|
||||
dnl
|
||||
dnl Defined Variables:
|
||||
dnl COLOR_YES: to be used in positive/yes conditions
|
||||
dnl COLOR_NO: to be used in negative/no conditions
|
||||
dnl COLOR_OTHER: to be used to highlight some other condition
|
||||
dnl COLOR_RESET: to reset color
|
||||
dnl want_color: yes or no
|
||||
AC_DEFUN([EFL_COLOR],
|
||||
[dnl
|
||||
case "$TERM" in
|
||||
xterm|xterm-color|xterm-256color|Eterm|aterm|kterm|rxvt*|screen|gnome|interix)
|
||||
want_color="${WANT_COLOR:-yes}"
|
||||
;;
|
||||
*)
|
||||
want_color="no"
|
||||
;;
|
||||
esac
|
||||
|
||||
if test "${want_color}" = "yes"; then
|
||||
if test `echo -e x` = x; then
|
||||
echoopt=-e
|
||||
else
|
||||
echoopt=
|
||||
fi
|
||||
|
||||
COLOR_YES=`echo $echoopt "\033@<:@1;32m"`
|
||||
COLOR_NO=`echo $echoopt "\033@<:@1;31m"`
|
||||
COLOR_OTHER=`echo $echoopt "\033@<:@1;36m"`
|
||||
COLOR_RESET=`echo $echoopt "\033@<:@0m"`
|
||||
|
||||
else
|
||||
COLOR_YES=""
|
||||
COLOR_NO=""
|
||||
COLOR_OTHER=""
|
||||
COLOR_RESET=""
|
||||
fi
|
||||
])
|
||||
|
||||
dnl EFL_INIT()
|
||||
dnl Will AC_DEFINE() the following:
|
||||
dnl VMAJ = v_maj
|
||||
dnl VMIN = v_min
|
||||
dnl VMIC = v_mic
|
||||
dnl VREV = v_rev
|
||||
dnl Will AC_SUBST() the following:
|
||||
dnl VMAJ = v_maj
|
||||
dnl VMIN = v_min
|
||||
dnl VMIC = v_mic
|
||||
dnl EFL_LTLIBRARY_FLAGS="-no-undefined -version-info ..."
|
||||
dnl EFL_LTMODULE_FLAGS="-no-undefined -avoid-version"
|
||||
dnl Will define the following m4:
|
||||
dnl lt_cur = libtool 'current' field of libtool's -version-info
|
||||
dnl lt_rev = libtool 'revision' field of libtool's -version-info
|
||||
dnl lt_age = libtool 'age' field of libtool's -version-info
|
||||
AC_DEFUN([EFL_INIT],
|
||||
[dnl
|
||||
AC_REQUIRE([EFL_COLOR])dnl
|
||||
AC_DEFINE_UNQUOTED([VMAJ], [v_maj], [Major version])dnl
|
||||
AC_DEFINE_UNQUOTED([VMIN], [v_min], [Minor version])dnl
|
||||
AC_DEFINE_UNQUOTED([VMIC], [v_mic], [Micro version])dnl
|
||||
AC_DEFINE_UNQUOTED([VREV], [v_rev], [Revison])dnl
|
||||
VMAJ=v_maj
|
||||
VMIN=v_min
|
||||
VMIC=v_mic
|
||||
AC_SUBST([VMAJ])dnl
|
||||
AC_SUBST([VMIN])dnl
|
||||
AC_SUBST([VMIC])dnl
|
||||
dnl
|
||||
dnl TODO: warning - lt_cur:
|
||||
dnl the previous code assumed v_maj + v_min, but this will be a problem when
|
||||
dnl we bump v_maj and reset v_min. 1 + 7 == 7 + 1, so if v_maj is bumped
|
||||
dnl we multiply it by 100.
|
||||
m4_define([lt_cur], m4_if(m4_cmp(v_maj, 1), 0, m4_eval(v_maj + v_min), m4_eval(v_maj * 100 + v_min)))dnl
|
||||
m4_define([lt_rev], v_mic)dnl
|
||||
m4_define([lt_age], v_min)dnl
|
||||
dnl
|
||||
EFL_LTLIBRARY_FLAGS="-no-undefined -version-info lt_cur:lt_rev:lt_age v_rel"
|
||||
AC_SUBST(EFL_LTLIBRARY_FLAGS)dnl
|
||||
EFL_LTMODULE_FLAGS="-no-undefined -avoid-version"
|
||||
AC_SUBST([EFL_LTMODULE_FLAGS])dnl
|
||||
AC_MSG_NOTICE([Initialized AC_PACKAGE_NAME (AC_PACKAGE_VERSION) development=dev_version v_rel])
|
||||
])
|
|
@ -1,56 +0,0 @@
|
|||
dnl Copyright (C) 2011 Vincent Torri <vtorri at univ-evry dot fr>
|
||||
dnl That code is public domain and can be freely used or copied.
|
||||
|
||||
dnl Macros for checking if the compiler supports some __attribute__ uses
|
||||
|
||||
dnl Usage: EFL_ATTRIBUTE_UNUSED
|
||||
dnl call AC_DEFINE for __UNUSED__ if __attribute__((unused)) is available
|
||||
|
||||
AC_DEFUN([EFL_ATTRIBUTE_UNUSED],
|
||||
[
|
||||
AC_MSG_CHECKING([for __attribute__ ((unused))])
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[
|
||||
void foo(int x __attribute__ ((unused))) {}
|
||||
]],
|
||||
[[
|
||||
]])],
|
||||
[have_attribute_unused="yes"],
|
||||
[have_attribute_unused="no"])
|
||||
AC_MSG_RESULT([${have_attribute_unused}])
|
||||
|
||||
if test "x${have_attribute_unused}" = "xyes" ; then
|
||||
AC_DEFINE([__UNUSED__], [__attribute__ ((unused))], [Macro declaring a function argument to be unused.])
|
||||
else
|
||||
AC_DEFINE([__UNUSED__], [], [__attribute__ ((unused)) is not supported.])
|
||||
fi
|
||||
])
|
||||
|
||||
dnl Usage: EFL_ATTRIBUTE_VECTOR
|
||||
dnl call AC_DEFINE for HAVE_GCC_ATTRIBUTE_VECTOR if __attribute__((vector)) is available
|
||||
|
||||
AC_DEFUN([EFL_ATTRIBUTE_VECTOR],
|
||||
[
|
||||
AC_MSG_CHECKING([for __attribute__ ((vector))])
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[
|
||||
typedef int v4si __attribute__ ((vector_size (16)));
|
||||
]],
|
||||
[[
|
||||
if (sizeof(v4si) == 16)
|
||||
return 0;
|
||||
else
|
||||
return -1;
|
||||
]])],
|
||||
[have_attribute_vector="yes"],
|
||||
[have_attribute_vector="no"])
|
||||
AC_MSG_RESULT([${have_attribute_vector}])
|
||||
|
||||
if test "x${have_attribute_vector}" = "xyes" ; then
|
||||
AC_DEFINE([HAVE_GCC_ATTRIBUTE_VECTOR], [1], [Define to 1 if your compiler supports __attribute__ ((vector)).])
|
||||
fi
|
||||
])
|
||||
|
||||
dnl End of efl_attribute.m4
|
|
@ -1,79 +0,0 @@
|
|||
dnl Copyright (C) 2010 Vincent Torri <vtorri at univ-evry dot fr>
|
||||
dnl That code is public domain and can be freely used or copied.
|
||||
|
||||
dnl Macro that check if a binary is built or not
|
||||
|
||||
dnl Usage: EFL_ENABLE_BIN(binary)
|
||||
dnl Call AC_SUBST(BINARY_PRG) (BINARY is the uppercase of binary, - being transformed into _)
|
||||
dnl Define have_binary (- is transformed into _)
|
||||
dnl Define conditional BUILD_BINARY (BINARY is the uppercase of binary, - being transformed into _)
|
||||
|
||||
AC_DEFUN([EFL_ENABLE_BIN],
|
||||
[
|
||||
|
||||
m4_pushdef([UP], m4_translit([[$1]], [-a-z], [_A-Z]))dnl
|
||||
m4_pushdef([DOWN], m4_translit([[$1]], [-A-Z], [_a-z]))dnl
|
||||
|
||||
have_[]m4_defn([DOWN])="yes"
|
||||
|
||||
dnl configure option
|
||||
|
||||
AC_ARG_ENABLE([$1],
|
||||
[AC_HELP_STRING([--disable-$1], [disable building of ]DOWN)],
|
||||
[
|
||||
if test "x${enableval}" = "xyes" ; then
|
||||
have_[]m4_defn([DOWN])="yes"
|
||||
else
|
||||
have_[]m4_defn([DOWN])="no"
|
||||
fi
|
||||
])
|
||||
|
||||
AC_MSG_CHECKING([whether to build ]DOWN[ binary])
|
||||
AC_MSG_RESULT([$have_[]m4_defn([DOWN])])
|
||||
|
||||
if test "x$have_[]m4_defn([DOWN])" = "xyes"; then
|
||||
UP[]_PRG=DOWN[${EXEEXT}]
|
||||
fi
|
||||
|
||||
AC_SUBST(UP[]_PRG)
|
||||
|
||||
AM_CONDITIONAL(BUILD_[]UP, test "x$have_[]m4_defn([DOWN])" = "xyes")
|
||||
|
||||
AS_IF([test "x$have_[]m4_defn([DOWN])" = "xyes"], [$2], [$3])
|
||||
|
||||
])
|
||||
|
||||
|
||||
dnl Macro that check if a binary is built or not
|
||||
|
||||
dnl Usage: EFL_WITH_BIN(package, binary, default_value)
|
||||
dnl Call AC_SUBST(_binary) (_binary is the lowercase of binary, - being transformed into _ by default, or the value set by the user)
|
||||
|
||||
AC_DEFUN([EFL_WITH_BIN],
|
||||
[
|
||||
|
||||
m4_pushdef([DOWN], m4_translit([[$2]], [-A-Z], [_a-z]))dnl
|
||||
m4_pushdef([UP], m4_translit([[$2]], [-a-z], [_A-Z]))dnl
|
||||
|
||||
dnl configure option
|
||||
|
||||
AC_ARG_WITH([$2],
|
||||
[AC_HELP_STRING([--with-$2=PATH], [specify a specific path to ]DOWN[ @<:@default=$3@:>@])],
|
||||
[
|
||||
_efl_with_binary=${withval}
|
||||
_efl_binary_define="yes"
|
||||
],
|
||||
[
|
||||
_efl_with_binary=$(pkg-config --variable=prefix $1)/bin/$3
|
||||
_efl_binary_define="no"
|
||||
])
|
||||
|
||||
DOWN=${_efl_with_binary}
|
||||
AC_MSG_NOTICE(DOWN[ set to ${_efl_with_binary}])
|
||||
|
||||
with_binary_[]m4_defn([DOWN])=${_efl_with_binary}
|
||||
|
||||
AM_CONDITIONAL(HAVE_[]UP, [test "x${_efl_binary_define}" = "xyes"])
|
||||
AC_SUBST(DOWN)
|
||||
|
||||
])
|
|
@ -1,57 +0,0 @@
|
|||
dnl Copyright (C) 2010 Vincent Torri <vtorri at univ-evry dot fr>
|
||||
dnl and Albin Tonnerre <albin dot tonnerre at gmail dot com>
|
||||
dnl That code is public domain and can be freely used or copied.
|
||||
|
||||
dnl Macro that checks if a compiler flag is supported by the compiler.
|
||||
|
||||
dnl Usage: EFL_COMPILER_FLAG(flag)
|
||||
dnl flag is added to CFLAGS if supported.
|
||||
|
||||
AC_DEFUN([EFL_COMPILER_FLAG],
|
||||
[
|
||||
|
||||
CFLAGS_save="${CFLAGS}"
|
||||
CFLAGS="${CFLAGS} $1"
|
||||
|
||||
AC_LANG_PUSH([C])
|
||||
AC_MSG_CHECKING([whether the compiler supports $1])
|
||||
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM([[]])],
|
||||
[have_flag="yes"],
|
||||
[have_flag="no"])
|
||||
AC_MSG_RESULT([${have_flag}])
|
||||
|
||||
if test "x${have_flag}" = "xno" ; then
|
||||
CFLAGS="${CFLAGS_save}"
|
||||
fi
|
||||
AC_LANG_POP([C])
|
||||
|
||||
])
|
||||
|
||||
dnl Macro that checks if a linker flag is supported by the compiler.
|
||||
|
||||
dnl Usage: EFL_LINKER_FLAG(flag)
|
||||
dnl flag is added to LDFLAGS if supported (will be passed to ld anyway).
|
||||
|
||||
AC_DEFUN([EFL_LINKER_FLAG],
|
||||
[
|
||||
|
||||
LDFLAGS_save="${LDFLAGS}"
|
||||
LDFLAGS="${LDFLAGS} $1"
|
||||
|
||||
AC_LANG_PUSH([C])
|
||||
AC_MSG_CHECKING([whether the compiler supports $1])
|
||||
|
||||
AC_LINK_IFELSE(
|
||||
[AC_LANG_PROGRAM([[]])],
|
||||
[have_flag="yes"],
|
||||
[have_flag="no"])
|
||||
AC_MSG_RESULT([${have_flag}])
|
||||
|
||||
if test "x${have_flag}" = "xno" ; then
|
||||
LDFLAGS="${LDFLAGS_save}"
|
||||
fi
|
||||
AC_LANG_POP([C])
|
||||
|
||||
])
|
|
@ -1,98 +0,0 @@
|
|||
dnl Copyright (C) 2008 Vincent Torri <vtorri at univ-evry dot fr>
|
||||
dnl That code is public domain and can be freely used or copied.
|
||||
|
||||
dnl Macro that check if doxygen is available or not.
|
||||
|
||||
dnl EFL_CHECK_DOXYGEN([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
|
||||
dnl Test for the doxygen program
|
||||
dnl Defines efl_doxygen
|
||||
dnl Defines the automake conditionnal EFL_BUILD_DOC
|
||||
dnl
|
||||
AC_DEFUN([EFL_CHECK_DOXYGEN],
|
||||
[
|
||||
|
||||
dnl
|
||||
dnl Disable the build of the documentation
|
||||
dnl
|
||||
AC_ARG_ENABLE([doc],
|
||||
[AC_HELP_STRING(
|
||||
[--disable-doc],
|
||||
[Disable documentation build @<:@default=enabled@:>@])],
|
||||
[
|
||||
if test "x${enableval}" = "xyes" ; then
|
||||
efl_enable_doc="yes"
|
||||
else
|
||||
efl_enable_doc="no"
|
||||
fi
|
||||
],
|
||||
[efl_enable_doc="yes"]
|
||||
)
|
||||
|
||||
if test "x${efl_enable_doc}" = "xyes" ; then
|
||||
|
||||
dnl
|
||||
dnl Specify the full file name, with path
|
||||
dnl
|
||||
|
||||
efl_doxygen="doxygen"
|
||||
|
||||
AC_ARG_WITH([doxygen],
|
||||
[AC_HELP_STRING(
|
||||
[--with-doxygen=FILE],
|
||||
[doxygen program to use @<:@default=doxygen@:>@])],
|
||||
dnl
|
||||
dnl Check the given doxygen program.
|
||||
dnl
|
||||
[efl_doxygen=${withval}
|
||||
AC_CHECK_PROG([efl_have_doxygen],
|
||||
[${efl_doxygen}],
|
||||
[yes],
|
||||
[no])
|
||||
if test "x${efl_have_doxygen}" = "xno" ; then
|
||||
echo "WARNING:"
|
||||
echo "The doxygen program you specified:"
|
||||
echo "$efl_doxygen"
|
||||
echo "was not found. Please check the path and make sure "
|
||||
echo "the program exists and is executable."
|
||||
AC_MSG_WARN([Warning: no doxygen detected. Documentation will not be built])
|
||||
fi
|
||||
],
|
||||
[AC_CHECK_PROG([efl_have_doxygen],
|
||||
[${efl_doxygen}],
|
||||
[yes],
|
||||
[no])
|
||||
if test "x${efl_have_doxygen}" = "xno" ; then
|
||||
echo "WARNING:"
|
||||
echo "The doxygen program was not found in your execute"
|
||||
echo "You may have doxygen installed somewhere not covered by your path."
|
||||
echo ""
|
||||
echo "If this is the case make sure you have the packages installed, AND"
|
||||
echo "that the doxygen program is in your execute path (see your"
|
||||
echo "shell manual page on setting the \$PATH environment variable), OR"
|
||||
echo "alternatively, specify the program to use with --with-doxygen."
|
||||
AC_MSG_WARN([Warning: no doxygen detected. Documentation will not be built])
|
||||
fi
|
||||
]
|
||||
)
|
||||
fi
|
||||
|
||||
dnl
|
||||
dnl Substitution
|
||||
dnl
|
||||
AC_SUBST([efl_doxygen])
|
||||
|
||||
if ! test "x${efl_have_doxygen}" = "xyes" ; then
|
||||
efl_enable_doc="no"
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL(EFL_BUILD_DOC, test "x${efl_enable_doc}" = "xyes")
|
||||
|
||||
if test "x${efl_enable_doc}" = "xyes" ; then
|
||||
ifelse([$1], , :, [$1])
|
||||
else
|
||||
ifelse([$2], , :, [$2])
|
||||
fi
|
||||
|
||||
])
|
||||
|
||||
dnl End of doxygen.m4
|
|
@ -1,36 +0,0 @@
|
|||
dnl Check for PATH_MAX in limits.h, and define a default value if not found
|
||||
dnl This is a workaround for systems not providing PATH_MAX, like GNU/Hurd
|
||||
|
||||
dnl EFL_CHECK_PATH_MAX([DEFAULT_VALUE_IF_NOT_FOUND])
|
||||
dnl
|
||||
dnl If PATH_MAX is not defined in <limits.h>, defines it
|
||||
dnl to DEFAULT_VALUE_IF_NOT_FOUND if it exists, or fallback
|
||||
dnl to using 4096
|
||||
|
||||
AC_DEFUN([EFL_CHECK_PATH_MAX],
|
||||
[
|
||||
|
||||
default_max=m4_default([$1], "4096")
|
||||
AC_LANG_PUSH([C])
|
||||
|
||||
AC_MSG_CHECKING([for PATH_MAX in limits.h])
|
||||
AC_COMPILE_IFELSE(
|
||||
[AC_LANG_PROGRAM(
|
||||
[[
|
||||
#include <limits.h>
|
||||
]],
|
||||
[[
|
||||
int i = PATH_MAX;
|
||||
]])],
|
||||
[AC_MSG_RESULT([yes])],
|
||||
[
|
||||
AC_DEFINE_UNQUOTED([PATH_MAX],
|
||||
[${default_max}],
|
||||
[default value since PATH_MAX is not defined])
|
||||
AC_MSG_RESULT([no: using ${default_max}])
|
||||
])
|
||||
|
||||
AC_LANG_POP([C])
|
||||
|
||||
])
|
||||
dnl end of efl_path_max.m4
|
|
@ -1,65 +0,0 @@
|
|||
dnl Copyright (C) 2013 Cedric BAIL <cedric.bail at free dot fr>
|
||||
dnl That code is public domain and can be freely used or copied.
|
||||
|
||||
dnl Macro for checking availability of tests and coverage infra structure
|
||||
|
||||
dnl Usage: EFL_TESTS(profile)
|
||||
dnl Valid profile are auto, tests, coverage, no
|
||||
dnl Call PKG_CHECK_MODULES, AC_CHECK_PROG, define CHECK_CFLAGS/CHECK_LIBS and modify CFLAGS/LIBS
|
||||
dnl It define EFL_HAVE_TESTS/EFL_HAVE_LCOV for use in Makefile.am
|
||||
dnl It set have_test and have_coverage to yes/no depending if found
|
||||
|
||||
AC_DEFUN([EFL_TESTS],
|
||||
[
|
||||
build_tests=$1
|
||||
|
||||
case "${build_tests}" in
|
||||
auto)
|
||||
check_tests="auto"
|
||||
check_coverage="auto"
|
||||
;;
|
||||
tests)
|
||||
check_tests="yes"
|
||||
check_coverage="auto"
|
||||
;;
|
||||
coverage)
|
||||
check_tests="yes"
|
||||
check_coverage="yes"
|
||||
;;
|
||||
no)
|
||||
check_tests="no"
|
||||
check_coverage="no"
|
||||
;;
|
||||
*)
|
||||
AC_MSG_ERROR([Unknow tests profile])
|
||||
esac
|
||||
|
||||
have_tests="no"
|
||||
if test "x${check_tests}" = "xyes" -o "x${check_tests}" = "xauto"; then
|
||||
PKG_CHECK_MODULES([CHECK], [check >= 0.9.5], [have_tests="yes"], [have_tests="no"])
|
||||
if test "${check_tests}" = "xyes" -a "x${have_tests}" = "xno"; then
|
||||
AC_MSG_ERROR([Impossible to find check package to build tests])
|
||||
fi
|
||||
fi
|
||||
|
||||
if test "x${have_tests}" = "xyes"; then
|
||||
if test "x${check_coverage}" = "xyes" -o "x${check_coverage}" = "xauto"; then
|
||||
AC_CHECK_PROG([have_lcov], [lcov], [yes], [no])
|
||||
if test "x${have_lcov}" = "xyes" ; then
|
||||
CFLAGS="${CFLAGS} -fprofile-arcs -ftest-coverage"
|
||||
LIBS="${LIBS} -lgcov"
|
||||
fi
|
||||
if test "x${have_lcov}" = "xno" -a "x${check_coverage}" = "xyes"; then
|
||||
AC_MSG_ERROR([Impossible to find lcov package to build with coverage support])
|
||||
fi
|
||||
else
|
||||
have_coverage="no"
|
||||
fi
|
||||
else
|
||||
have_coverage="no"
|
||||
fi
|
||||
|
||||
AM_CONDITIONAL([EFL_HAVE_TESTS], [test "x${have_tests}" = "xyes"])
|
||||
AM_CONDITIONAL([EFL_HAVE_LCOV], [test "x${have_lcov}" = "xyes"])
|
||||
|
||||
])
|
|
@ -0,0 +1,36 @@
|
|||
##### Project
|
||||
project('asdas', 'c',
|
||||
version : '0.0.1',
|
||||
meson_version : '>= 0.40.0')
|
||||
|
||||
efl_version = '>= 1.22.0'
|
||||
|
||||
cfg = configuration_data()
|
||||
|
||||
host_os = host_machine.system()
|
||||
|
||||
deps_os = declare_dependency(link_args : [] )
|
||||
if host_os == 'freebsd'
|
||||
deps_os = declare_dependency(link_args : ['-I/usr/local/include', '-lintl'])
|
||||
endif
|
||||
|
||||
deps = dependency('elementary', version: efl_version)
|
||||
|
||||
##### dir locations
|
||||
dir_prefix = get_option('prefix')
|
||||
dir_bin = join_paths(dir_prefix, get_option('bindir'))
|
||||
dir_lib = join_paths(dir_prefix, get_option('libdir'))
|
||||
dir_data = join_paths(dir_prefix, get_option('datadir'))
|
||||
dir_locale = join_paths(dir_prefix, get_option('localedir'))
|
||||
|
||||
subdir('data')
|
||||
subdir('po')
|
||||
subdir('src')
|
||||
|
||||
##### config.h
|
||||
cfg.set('HAVE_CONFIG_H', 1)
|
||||
cfg.set_quoted('PACKAGE', 'asdas')
|
||||
cfg.set_quoted('PACKAGE_VERSION', meson.project_version())
|
||||
cfg.set_quoted('PACKAGE_DATA_DIR', join_paths(dir_data, 'asdas'))
|
||||
configure_file(output: 'config.h', configuration: cfg)
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
i18n = import('i18n')
|
||||
i18n.gettext('${edi_name}')
|
||||
|
||||
cfg.set('ENABLE_NLS', 1)
|
||||
cfg.set_quoted('LOCALEDIR', join_paths(get_option('prefix'), get_option('localedir')))
|
||||
|
|
@ -1,4 +0,0 @@
|
|||
MAINTAINERCLEANFILES = Makefile.in
|
||||
|
||||
SUBDIRS = lib bin tests
|
||||
|
|
@ -1,10 +1,4 @@
|
|||
#ifdef HAVE_CONFIG_H
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
/* NOTE: Respecting header order is important for portability.
|
||||
* Always put system first, then EFL, then your public header,
|
||||
* and finally your private one. */
|
||||
|
||||
#if ENABLE_NLS
|
||||
# include <libintl.h>
|
||||
|
@ -13,8 +7,6 @@
|
|||
#include <Ecore_Getopt.h>
|
||||
#include <Elementary.h>
|
||||
|
||||
#include "${Edi_Name}.h"
|
||||
|
||||
#include "${edi_name}_private.h"
|
||||
|
||||
#define COPYRIGHT "Copyright © ${Edi_Year} ${Edi_User} <${Edi_Email}> and various contributors (see AUTHORS)."
|
||||
|
@ -91,8 +83,6 @@ elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
|
|||
textdomain(PACKAGE);
|
||||
#endif
|
||||
|
||||
${edi_name}_init();
|
||||
|
||||
args = ecore_getopt_parse(&optdesc, values, argc, argv);
|
||||
if (args < 0)
|
||||
{
|
||||
|
@ -109,12 +99,9 @@ elm_main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
|
|||
if (!(win = ${edi_name}_win_setup()))
|
||||
goto end;
|
||||
|
||||
${edi_name}_library_call();
|
||||
|
||||
elm_run();
|
||||
|
||||
end:
|
||||
${edi_name}_shutdown();
|
||||
elm_shutdown();
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -1,19 +0,0 @@
|
|||
MAINTAINERCLEANFILES = Makefile.in
|
||||
|
||||
bin_PROGRAMS = ${edi_name}
|
||||
|
||||
AM_CPPFLAGS = -DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \
|
||||
-I$(top_builddir)/src/bin/ \
|
||||
-I$(top_srcdir)/src/bin/ \
|
||||
-I$(top_builddir)/src/lib/ \
|
||||
-I$(top_srcdir)/src/lib/ \
|
||||
@EFL_CFLAGS@
|
||||
|
||||
${edi_name}_SOURCES = ${edi_name}_main.c
|
||||
${edi_name}_LDADD = @EFL_LIBS@ $(top_builddir)/src/lib/lib${edi_name}.la
|
||||
|
||||
localedir = $(datadir)/locale
|
||||
DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@
|
||||
|
||||
EXTRA_DIST = ${edi_name}_private.h
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
inc = include_directories('.', '../..')
|
||||
|
||||
executable('${edi_name}', [
|
||||
'${edi_name}_main.c',
|
||||
'${edi_name}_private.h',
|
||||
'gettext.h'
|
||||
],
|
||||
include_directories: inc,
|
||||
dependencies: [ deps, deps_os ],
|
||||
gui_app : true,
|
||||
install : true)
|
|
@ -1,111 +0,0 @@
|
|||
#ifndef ${EDI_NAME}_H_
|
||||
# define ${EDI_NAME}_H_
|
||||
|
||||
#include <Elementary.h>
|
||||
|
||||
#ifdef EAPI
|
||||
# undef EAPI
|
||||
#endif
|
||||
|
||||
#ifdef _WIN32
|
||||
# ifdef EFL_${EDI_NAME}_BUILD
|
||||
# ifdef DLL_EXPORT
|
||||
# define EAPI __declspec(dllexport)
|
||||
# else
|
||||
# define EAPI
|
||||
# endif /* ! DLL_EXPORT */
|
||||
# else
|
||||
# define EAPI __declspec(dllimport)
|
||||
# endif /* ! EFL_${EDI_NAME}_BUILD */
|
||||
#else
|
||||
# ifdef __GNUC__
|
||||
# if __GNUC__ >= 4
|
||||
# define EAPI __attribute__ ((visibility("default")))
|
||||
# else
|
||||
# define EAPI
|
||||
# endif
|
||||
# else
|
||||
# define EAPI
|
||||
# endif
|
||||
#endif /* ! _WIN32 */
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @file
|
||||
* @brief These routines are used for ${Edi_Name} library interaction.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief Init / shutdown functions.
|
||||
* @defgroup Init Init / Shutdown
|
||||
*
|
||||
* @{
|
||||
*
|
||||
* Functions of obligatory usage, handling proper initialization
|
||||
* and shutdown routines.
|
||||
*
|
||||
* Before the usage of any other function, ${Edi_Name} should be properly
|
||||
* initialized with @ref ${edi_name}_init() and the last call to ${Edi_Name}'s
|
||||
* functions should be @ref ${edi_name}_shutdown(), so everything will
|
||||
* be correctly freed.
|
||||
*
|
||||
* ${Edi_Name} logs everything with Eina Log, using the "${edi_name}" log domain.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* Initialize ${Edi_Name}.
|
||||
*
|
||||
* Initializes ${Edi_Name}, its dependencies and modules. Should be the first
|
||||
* function of ${Edi_Name} to be called.
|
||||
*
|
||||
* @return The init counter value.
|
||||
*
|
||||
* @see ${edi_name}_shutdown().
|
||||
*
|
||||
* @ingroup Init
|
||||
*/
|
||||
EAPI int ${edi_name}_init(void);
|
||||
|
||||
/**
|
||||
* Shutdown ${Edi_Name}
|
||||
*
|
||||
* Shutdown ${Edi_Name}. If init count reaches 0, all the internal structures will
|
||||
* be freed. Any ${Edi_Name} library call after this point will leads to an error.
|
||||
*
|
||||
* @return ${Edi_Name}'s init counter value.
|
||||
*
|
||||
* @see ${edi_name}_init().
|
||||
*
|
||||
* @ingroup Init
|
||||
*/
|
||||
EAPI int ${edi_name}_shutdown(void);
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief Main group API that wont do anything
|
||||
* @defgroup Main Main
|
||||
*
|
||||
* @{
|
||||
*
|
||||
* @brief A function that doesn't do any good nor any bad
|
||||
*
|
||||
* @ingroup Main
|
||||
*/
|
||||
EAPI void ${edi_name}_library_call(void);
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* ${EDI_NAME}_H_ */
|
|
@ -1,64 +0,0 @@
|
|||
#ifdef HAVE_CONFIG_H
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
#include "${Edi_Name}.h"
|
||||
|
||||
#include "${edi_name}_private.h"
|
||||
|
||||
static int _${edi_name}_init = 0;
|
||||
int _${edi_name}_lib_log_dom = -1;
|
||||
|
||||
EAPI int
|
||||
${edi_name}_init(void)
|
||||
{
|
||||
_${edi_name}_init++;
|
||||
if (_${edi_name}_init > 1) return _${edi_name}_init;
|
||||
|
||||
eina_init();
|
||||
|
||||
_${edi_name}_lib_log_dom = eina_log_domain_register("${edi_name}", EINA_COLOR_CYAN);
|
||||
if (_${edi_name}_lib_log_dom < 0)
|
||||
{
|
||||
EINA_LOG_ERR("${Edi_Name} can not create its log domain.");
|
||||
goto shutdown_eina;
|
||||
}
|
||||
|
||||
// Put here your initialization logic of your library
|
||||
|
||||
eina_log_timing(_${edi_name}_lib_log_dom, EINA_LOG_STATE_STOP, EINA_LOG_STATE_INIT);
|
||||
|
||||
return _${edi_name}_init;
|
||||
|
||||
shutdown_eina:
|
||||
eina_shutdown();
|
||||
_${edi_name}_init--;
|
||||
|
||||
return _${edi_name}_init;
|
||||
}
|
||||
|
||||
EAPI int
|
||||
${edi_name}_shutdown(void)
|
||||
{
|
||||
_${edi_name}_init--;
|
||||
if (_${edi_name}_init != 0) return _${edi_name}_init;
|
||||
|
||||
eina_log_timing(_${edi_name}_lib_log_dom,
|
||||
EINA_LOG_STATE_START,
|
||||
EINA_LOG_STATE_SHUTDOWN);
|
||||
|
||||
// Put here your shutdown logic
|
||||
|
||||
eina_log_domain_unregister(_${edi_name}_lib_log_dom);
|
||||
_${edi_name}_lib_log_dom = -1;
|
||||
|
||||
eina_shutdown();
|
||||
|
||||
return _${edi_name}_init;
|
||||
}
|
||||
|
||||
EAPI void
|
||||
${edi_name}_library_call(void)
|
||||
{
|
||||
INF("Not really doing anything useful.");
|
||||
}
|
|
@ -1,27 +0,0 @@
|
|||
#ifndef ${EDI_NAME}_PRIVATE_H
|
||||
# define ${EDI_NAME}_PRIVATE_H
|
||||
|
||||
extern int _${edi_name}_lib_log_dom;
|
||||
|
||||
#ifdef ERR
|
||||
# undef ERR
|
||||
#endif
|
||||
#define ERR(...) EINA_LOG_DOM_ERR(_${edi_name}_lib_log_dom, __VA_ARGS__)
|
||||
#ifdef INF
|
||||
# undef INF
|
||||
#endif
|
||||
#define INF(...) EINA_LOG_DOM_INFO(_${edi_name}_lib_log_dom, __VA_ARGS__)
|
||||
#ifdef WRN
|
||||
# undef WRN
|
||||
#endif
|
||||
#define WRN(...) EINA_LOG_DOM_WARN(_${edi_name}_lib_log_dom, __VA_ARGS__)
|
||||
#ifdef CRIT
|
||||
# undef CRIT
|
||||
#endif
|
||||
#define CRIT(...) EINA_LOG_DOM_CRIT(_${edi_name}_lib_log_dom, __VA_ARGS__)
|
||||
#ifdef DBG
|
||||
# undef DBG
|
||||
#endif
|
||||
#define DBG(...) EINA_LOG_DOM_DBG(_${edi_name}_lib_log_dom, __VA_ARGS__)
|
||||
|
||||
#endif
|
|
@ -1,20 +0,0 @@
|
|||
MAINTAINERCLEANFILES = Makefile.in
|
||||
|
||||
AM_CPPFLAGS = \
|
||||
-I$(top_srcdir)/src/lib \
|
||||
-I$(top_builddir)/src/lib \
|
||||
-DPACKAGE_LIB_DIR=\"$(libdir)\" \
|
||||
-DPACKAGE_DATA_DIR=\"$(datadir)/$(PACKAGE)\" \
|
||||
@EFL_CFLAGS@ \
|
||||
-DEFL_${EDI_NAME}_BUILD
|
||||
|
||||
lib_LTLIBRARIES = lib${edi_name}.la
|
||||
|
||||
includes_HEADERS = ${Edi_Name}.h
|
||||
includesdir = $(includedir)/${edi_name}-@VMAJ@
|
||||
|
||||
lib${edi_name}_la_SOURCES = \
|
||||
${efl_name}_private.h \
|
||||
${edi_name}.c
|
||||
lib${edi_name}_la_LIBADD = @EFL_LIBS@ -lm
|
||||
lib${edi_name}_la_LDFLAGS = -no-undefined @EFL_LTLIBRARY_FLAGS@
|
|
@ -0,0 +1 @@
|
|||
subdir('bin')
|
|
@ -1,20 +0,0 @@
|
|||
MAINTAINERCLEANFILES = Makefile.in
|
||||
CLEANFILES = check-results.xml
|
||||
|
||||
if EFL_HAVE_TESTS
|
||||
|
||||
check_PROGRAMS = ${edi_name}_tests
|
||||
|
||||
${edi_name}_tests_SOURCES = test_${edi_name}.c
|
||||
${edi_name}_tests_CPPFLAGS = -I$(top_builddir)/src/lib/ \
|
||||
-I$(top_srcdir)/src/lib \
|
||||
-DPACKAGE_TESTS_DIR=\"$(top_srcdir)/src/tests/\" \
|
||||
-DPACKAGE_BUILD_DIR=\"`pwd`/$(top_builddir)/src/tests/\" \
|
||||
@EFL_CFLAGS@ \
|
||||
@CHECK_CFLAGS@
|
||||
${edi_name}_tests_LDADD = @CHECK_LIBS@ $(top_builddir)/src/lib/lib${edi_name}.la
|
||||
${edi_name}_tests_DEPENDENCIES = $(top_builddir)/src/lib/lib${edi_name}.la
|
||||
|
||||
endif
|
||||
|
||||
EXTRA_DIST = test_${edi_name}.c
|
|
@ -1,124 +0,0 @@
|
|||
#ifdef HAVE_CONFIG_H
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
#include <Ecore_Getopt.h>
|
||||
#include <check.h>
|
||||
|
||||
#include "${Edi_Name}.h"
|
||||
|
||||
#define COPYRIGHT "Copyright © ${Edi_Year} ${Edi_User} <${Edi_Email}> and various contributors (see AUTHORS)."
|
||||
|
||||
static void ${edi_name}_test_basic(TCase *tc);
|
||||
|
||||
static const struct {
|
||||
const char *name;
|
||||
void (*build)(TCase *tc);
|
||||
} tests[] = {
|
||||
{ "basic", ${edi_name}_test_basic }
|
||||
};
|
||||
|
||||
START_TEST(${edi_name}_initialization)
|
||||
{
|
||||
fail_if(${edi_name}_init() != 1);
|
||||
|
||||
${edi_name}_library_call();
|
||||
|
||||
fail_if(${edi_name}_shutdown() != 0);
|
||||
}
|
||||
END_TEST
|
||||
|
||||
static void
|
||||
${edi_name}_test_basic(TCase *tc)
|
||||
{
|
||||
tcase_add_test(tc, ${edi_name}_initialization);
|
||||
}
|
||||
|
||||
static const Ecore_Getopt optdesc = {
|
||||
"${edi_name}",
|
||||
"%prog [options]",
|
||||
PACKAGE_VERSION,
|
||||
COPYRIGHT,
|
||||
"BSD with advertisement clause",
|
||||
"An EFL ${edi_name} program",
|
||||
0,
|
||||
{
|
||||
ECORE_GETOPT_STORE_TRUE('l', "list", "list available tests"),
|
||||
ECORE_GETOPT_STORE_STR('t', "test", "test to run"),
|
||||
ECORE_GETOPT_LICENSE('L', "license"),
|
||||
ECORE_GETOPT_COPYRIGHT('C', "copyright"),
|
||||
ECORE_GETOPT_VERSION('V', "version"),
|
||||
ECORE_GETOPT_HELP('h', "help"),
|
||||
ECORE_GETOPT_SENTINEL
|
||||
}
|
||||
};
|
||||
|
||||
int
|
||||
main(int argc EINA_UNUSED, char **argv EINA_UNUSED)
|
||||
{
|
||||
Suite *s;
|
||||
SRunner *sr;
|
||||
TCase *tc = NULL;
|
||||
char *test = NULL;
|
||||
unsigned int i;
|
||||
int failed_count = -1;
|
||||
int args;
|
||||
Eina_Bool quit_option = EINA_FALSE;
|
||||
Eina_Bool list_option = EINA_FALSE;
|
||||
|
||||
Ecore_Getopt_Value values[] = {
|
||||
ECORE_GETOPT_VALUE_BOOL(list_option),
|
||||
ECORE_GETOPT_VALUE_STR(test),
|
||||
ECORE_GETOPT_VALUE_BOOL(quit_option),
|
||||
ECORE_GETOPT_VALUE_BOOL(quit_option),
|
||||
ECORE_GETOPT_VALUE_BOOL(quit_option),
|
||||
ECORE_GETOPT_VALUE_BOOL(quit_option),
|
||||
ECORE_GETOPT_VALUE_NONE
|
||||
};
|
||||
|
||||
eina_init();
|
||||
|
||||
args = ecore_getopt_parse(&optdesc, values, argc, argv);
|
||||
if (args < 0)
|
||||
{
|
||||
EINA_LOG_CRIT("Could not parse arguments.");
|
||||
goto end;
|
||||
}
|
||||
else if (quit_option)
|
||||
{
|
||||
goto end;
|
||||
}
|
||||
else if (list_option)
|
||||
{
|
||||
fprintf(stdout, "Available tests :\n");
|
||||
for (i = 0; i < sizeof (tests) / sizeof (tests[0]); i++)
|
||||
fprintf(stdout, "\t%s\n", tests[i].name);
|
||||
goto end;
|
||||
}
|
||||
|
||||
s = suite_create("${Edi_Name}");
|
||||
|
||||
for (i = 0; i < sizeof (tests) / sizeof (tests[0]); i++)
|
||||
{
|
||||
if (test && strcmp(tests[i].name, test))
|
||||
continue ;
|
||||
|
||||
tc = tcase_create(tests[i].name);
|
||||
tcase_set_timeout(tc, 0);
|
||||
|
||||
tests[i].build(tc);
|
||||
suite_add_tcase(s, tc);
|
||||
}
|
||||
|
||||
sr = srunner_create(s);
|
||||
srunner_set_xml(sr, PACKAGE_BUILD_DIR "/check-results.xml");
|
||||
|
||||
srunner_run_all(sr, CK_ENV);
|
||||
failed_count = srunner_ntests_failed(sr);
|
||||
srunner_free(sr);
|
||||
|
||||
end:
|
||||
eina_shutdown();
|
||||
|
||||
return (failed_count == 0) ? 0 : 255;
|
||||
}
|
Loading…
Reference in New Issue