efl_project: Move from autotools to meson.

edi-0.8
Alastair Poole 3 years ago
parent 9f834e35bb
commit 210f43a736
  1. 91
      data/extra/templates/skeletons/eflproject/Makefile.am
  2. 9
      data/extra/templates/skeletons/eflproject/Makefile_Edje_Helper.am
  3. 15
      data/extra/templates/skeletons/eflproject/autogen.sh
  4. 95
      data/extra/templates/skeletons/eflproject/configure.ac
  5. 3
      data/extra/templates/skeletons/eflproject/data/Makefile.am
  6. 12
      data/extra/templates/skeletons/eflproject/data/desktop/${edi_name}.desktop.in
  7. 9
      data/extra/templates/skeletons/eflproject/data/desktop/Makefile.am
  8. 5
      data/extra/templates/skeletons/eflproject/data/desktop/meson.build
  9. 2
      data/extra/templates/skeletons/eflproject/data/meson.build
  10. 4
      data/extra/templates/skeletons/eflproject/data/themes/Makefile.am
  11. 22
      data/extra/templates/skeletons/eflproject/data/themes/default/Makefile.am
  12. 15
      data/extra/templates/skeletons/eflproject/data/themes/default/meson.build
  13. 1
      data/extra/templates/skeletons/eflproject/data/themes/meson.build
  14. 1
      data/extra/templates/skeletons/eflproject/description
  15. 50
      data/extra/templates/skeletons/eflproject/doc/${edi_name}.1.in
  16. 38
      data/extra/templates/skeletons/eflproject/doc/Makefile.am
  17. 123
      data/extra/templates/skeletons/eflproject/m4/efl.m4
  18. 56
      data/extra/templates/skeletons/eflproject/m4/efl_attribute.m4
  19. 79
      data/extra/templates/skeletons/eflproject/m4/efl_binary.m4
  20. 57
      data/extra/templates/skeletons/eflproject/m4/efl_compiler_flag.m4
  21. 98
      data/extra/templates/skeletons/eflproject/m4/efl_doxygen.m4
  22. 36
      data/extra/templates/skeletons/eflproject/m4/efl_path_max.m4
  23. 65
      data/extra/templates/skeletons/eflproject/m4/efl_tests.m4
  24. 36
      data/extra/templates/skeletons/eflproject/meson.build
  25. 6
      data/extra/templates/skeletons/eflproject/po/meson.build
  26. 4
      data/extra/templates/skeletons/eflproject/src/Makefile.am
  27. 13
      data/extra/templates/skeletons/eflproject/src/bin/${edi_name}_main.c
  28. 19
      data/extra/templates/skeletons/eflproject/src/bin/Makefile.am
  29. 11
      data/extra/templates/skeletons/eflproject/src/bin/meson.build
  30. 111
      data/extra/templates/skeletons/eflproject/src/lib/${Edi_Name}.h
  31. 64
      data/extra/templates/skeletons/eflproject/src/lib/${edi_name}.c
  32. 27
      data/extra/templates/skeletons/eflproject/src/lib/${edi_name}_private.h
  33. 20
      data/extra/templates/skeletons/eflproject/src/lib/Makefile.am
  34. 1
      data/extra/templates/skeletons/eflproject/src/meson.build
  35. 20
      data/extra/templates/skeletons/eflproject/src/tests/Makefile.am
  36. 124
      data/extra/templates/skeletons/eflproject/src/tests/test_${edi_name}.c

@ -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
)

@ -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@

@ -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…
Cancel
Save