move ecrire to meson ... just so we have a more consistent build story

This commit is contained in:
Carsten Haitzler 2020-02-17 14:29:22 +00:00
parent a2980856b7
commit 261e4cb7b7
30 changed files with 156 additions and 879 deletions

View File

@ -1,84 +0,0 @@
cmake_minimum_required(VERSION 2.6)
project(ecrire)
set(VMAJ 0)
set(VMIN 1)
set(VMIC 0)
set(PACKAGE_VERSION ${VMAJ}.${VMIN}.${VMIC})
set(PACKAGE ${CMAKE_PROJECT_NAME})
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
include_directories ("${PROJECT_BINARY_DIR}")
# FIXME: add version checking!
find_package(Eina REQUIRED)
find_package(Eet REQUIRED)
find_package(Evas REQUIRED)
find_package(Ecore REQUIRED)
find_package(Ecore COMPONENTS X)
find_package(Edje REQUIRED)
find_package(Efreet REQUIRED)
find_package(Elementary REQUIRED)
if(DEFINED ECORE_X_FOUND)
set(HAVE_ECORE_X 1)
endif(DEFINED ECORE_X_FOUND)
INCLUDE(CheckIncludeFiles)
CHECK_INCLUDE_FILES(unistd.h HAVE_UNISTD_H)
# likely put this into an FindCompilerAttribute.cmake:
INCLUDE(CheckCSourceCompiles)
SET(HAVE___ATTRIBUTE__)
CHECK_C_SOURCE_COMPILES(
"void foo (int bar __attribute__((unused)) ) { }
static void baz (void) __attribute__((unused));
static void baz (void) { }
int main(){}
" HAVE___ATTRIBUTE__
)
ADD_DEFINITIONS(-DPACKAGE_BIN_DIR="${CMAKE_INSTALL_PREFIX}/bin"
-DPACKAGE_DATA_DIR="${CMAKE_INSTALL_PREFIX}/share/${CMAKE_PROJECT_NAME}"
-DPACKAGE_LIB_DIR="${CMAKE_INSTALL_PREFIX}/lib")
set(LOCALEDIR "${CMAKE_INSTALL_PREFIX}/share/locale")
ADD_DEFINITIONS(
-DLOCALE_DIR="${LOCALEDIR}"
)
ADD_DEFINITIONS(-DHAVE_CONFIG_H)
find_package(Gettext)
if (GETTEXT_FOUND)
set(GettextTranslate_ALL true)
set(GettextTranslate_GMO_BINARY true)
include(GettextTranslate)
set(ENABLE_NLS 1)
endif (GETTEXT_FOUND)
configure_file (
"${PROJECT_SOURCE_DIR}/cmakeconfig.h.in"
"${PROJECT_BINARY_DIR}/config.h"
)
add_subdirectory(src/bin)
add_subdirectory(data)
add_subdirectory(po)
# Make dist
set(CPACK_PACKAGE_VERSION_MAJOR ${VMAJ})
set(CPACK_PACKAGE_VERSION_MINOR ${VMIN})
set(CPACK_PACKAGE_VERSION_PATCH ${VMIC})
set(CPACK_SOURCE_GENERATOR "TGZ;TBZ2")
set(CPACK_SOURCE_PACKAGE_FILE_NAME
"${CMAKE_PROJECT_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}")
set(CPACK_SOURCE_IGNORE_FILES
"${CMAKE_BINARY_DIR};/.git/;.svn/;.swp$;~$;${CPACK_SOURCE_IGNORE_FILES}")
include(CPack)
add_custom_target(dist COMMAND ${CMAKE_MAKE_PROGRAM} package_source)
include(MakeDistcheck)
add_distcheck()

View File

@ -1,271 +0,0 @@
# Copyright (c) 2012, Jarryd Beck
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.
# Redistributions in binary form must reproduce the above copyright notice,
# this list of conditions and the following disclaimer in the documentation
# and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
# This module creates build rules for updating translation files made
# with gettext
# In your top level CMakeLists.txt, do
# include(GettextTranslate)
# then in any po directory where you want things to be translated, write
# GettextTranslate()
#
# This module also finds the gettext binaries. If these are in a non-standard
# location, you can define the following variables to provide paths to search
# in
# GettextTranslate_BINARIES --- a path in which to look for every program
# GettextTranslate_XGETTEXT --- the xgettext program
# GettextTranslate_MSGINIT --- the msginit program
# GettextTranslate_MSGFILTER --- the msgfilter program
# GettextTranslate_MSGCONV --- the msgconv program
# GettextTranslate_MSGMERGE --- the msgmerge program
# GettextTranslate_MSGFMT --- the msgfmt program
# these are searched first before $PATH, so set this if you have your own
# version that overrides the system version
#
# it reads variables from Makevars, one of the most important being DOMAIN
# it reads the languages to generate from LINGUAS
#
# it adds the following targets
# update-po
# update-gmo
# ${DOMAIN}-pot.update
# generate-${DOMAIN}-${lang}-po
# generate-${DOMAIN}-${lang}-gmo
#
# where ${DOMAIN} is the DOMAIN variable read from Makevars
# and ${lang} is each language mentioned in LINGUAS
#
# if you want update-gmo to be added to the "all" target, then define the
# variable GettextTranslate_ALL before including this file
#
# by default, the gmo files are built in the source directory. If you want
# them to be built in the binary directory, then define the variable
# GettextTranslate_GMO_BINARY
# add the update-po and update-gmo targets, the actual files that need to
# depend on this will be added as we go
if (DEFINED GettextTranslate_ALL)
set(_addToALL "ALL")
endif()
add_custom_target(update-po)
add_custom_target(update-gmo ${_addToALL})
#look for all the programs
#xgettext, msginit, msgfilter, msgconv, msgmerge, msgfmt
function(REQUIRE_BINARY binname varname)
if (defined ${${varname}-NOTFOUND})
message(FATAL_ERROR "Could not find " binname)
endif()
endfunction()
find_program(GettextTranslate_XGETTEXT_EXECUTABLE xgettext
HINTS ${GettextTranslate_XGETTEXT} ${GettextTranslate_BINARIES}
)
REQUIRE_BINARY(xgettext GettextTranslate_XGETTEXT_EXECUTABLE)
find_program(GettextTranslate_MSGINIT_EXECUTABLE msginit
HINTS ${GettextTranslate_MSGINIT} ${GettextTranslate_BINARIES}
)
REQUIRE_BINARY(msginit GettextTranslate_MSGINIT_EXECUTABLE)
find_program(GettextTranslate_MSGFILTER_EXECUTABLE msgfilter
HINTS ${GettextTranslate_MSGFILTER} ${GettextTranslate_BINARIES}
)
REQUIRE_BINARY(msgfilter GettextTranslate_MSGFILTER_EXECUTABLE)
find_program(GettextTranslate_MSGCONV_EXECUTABLE msgconv
HINTS ${GettextTranslate_MSGCONV} ${GettextTranslate_BINARIES}
)
REQUIRE_BINARY(msgconv GettextTranslate_MSGCONV_EXECUTABLE)
find_program(GettextTranslate_MSGMERGE_EXECUTABLE msgmerge
HINTS ${GettextTranslate_MSGMERGE} ${GettextTranslate_BINARIES}
)
REQUIRE_BINARY(msgmerge GettextTranslate_MSGMERGE_EXECUTABLE)
find_program(GettextTranslate_MSGFMT_EXECUTABLE msgfmt
HINTS ${GettextTranslate_MSGFMT} ${GettextTranslate_BINARIES}
)
REQUIRE_BINARY(msgfmt GettextTranslate_MSGFMT_EXECUTABLE)
mark_as_advanced(
GettextTranslate_MSGCONV_EXECUTABLE
GettextTranslate_MSGFILTER_EXECUTABLE
GettextTranslate_MSGFMT_EXECUTABLE
GettextTranslate_MSGINIT_EXECUTABLE
GettextTranslate_MSGMERGE_EXECUTABLE
GettextTranslate_XGETTEXT_EXECUTABLE
)
macro(GettextTranslate)
if(GettextTranslate_GMO_BINARY)
set (GMO_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR})
else()
set (GMO_BUILD_DIR ${CMAKE_CURRENT_SOURCE_DIR})
endif()
if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/POTFILES.in)
message(FATAL_ERROR "There is no POTFILES.in in
${CMAKE_CURRENT_SOURCE_DIR}")
endif()
if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/Makevars)
message(FATAL_ERROR "There is no Makevars in ${CMAKE_CURRENT_SOURCE_DIR}")
endif()
file(STRINGS ${CMAKE_CURRENT_SOURCE_DIR}/Makevars makevars
REGEX "^[^=]+=(.*)$"
)
foreach(makevar ${makevars})
string(REGEX REPLACE "^([^= ]+) =[ ]?(.*)$" "\\1" MAKEVAR_KEY ${makevar})
string(REGEX REPLACE "^([^= ]+) =[ ]?(.*)$" "\\2"
MAKEVAR_${MAKEVAR_KEY} ${makevar})
endforeach()
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/POTFILES.in
${CMAKE_CURRENT_BINARY_DIR}/POTFILES
COPYONLY
)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/LINGUAS
${CMAKE_CURRENT_BINARY_DIR}/LINGUAS
COPYONLY
)
#set the directory to not clean
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
PROPERTY CLEAN_NO_CUSTOM true)
file(STRINGS ${CMAKE_CURRENT_SOURCE_DIR}/POTFILES.in potfiles
REGEX "^[^#].*"
)
foreach(potfile ${potfiles})
list(APPEND source_translatable
${CMAKE_CURRENT_SOURCE_DIR}/${MAKEVAR_top_builddir}/${potfile})
endforeach()
set(TEMPLATE_FILE ${MAKEVAR_DOMAIN}.pot)
set(TEMPLATE_FILE_ABS ${CMAKE_CURRENT_SOURCE_DIR}/${TEMPLATE_FILE})
add_custom_target(${MAKEVAR_DOMAIN}.pot-update DEPENDS
${TEMPLATE_FILE_ABS}
)
string(REGEX MATCHALL "[^ ]+" XGETTEXT_OPTS ${MAKEVAR_XGETTEXT_OPTIONS})
add_custom_command(OUTPUT ${TEMPLATE_FILE_ABS}
COMMAND ${GettextTranslate_XGETTEXT_EXECUTABLE} ${XGETTEXT_OPTS}
-o ${TEMPLATE_FILE_ABS}
--default-domain=${MAKEVAR_DOMAIN}
--add-comments=TRANSLATORS:
--copyright-holder=${MAKEVAR_COPYRIGHT_HOLDER}
--msgid-bugs-address="${MAKEVAR_MSGID_BUGS_ADDRESS}"
--directory=${MAKEVAR_top_builddir}
--files-from=${CMAKE_CURRENT_BINARY_DIR}/POTFILES
--package-version=${VERSION}
--package-name=${CMAKE_PROJECT_NAME}
DEPENDS ${source_translatable}
${CMAKE_CURRENT_SOURCE_DIR}/POTFILES.in
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
add_dependencies(update-po ${MAKEVAR_DOMAIN}.pot-update)
file(STRINGS ${CMAKE_CURRENT_SOURCE_DIR}/LINGUAS LINGUAS
REGEX "^[^#].*")
string(REGEX MATCHALL "[^ ]+" languages ${LINGUAS})
foreach(lang ${languages})
set(PO_FILE_NAME "${CMAKE_CURRENT_SOURCE_DIR}/${lang}.po")
set(GMO_FILE_NAME "${GMO_BUILD_DIR}/${lang}.gmo")
set(PO_TARGET "generate-${MAKEVAR_DOMAIN}-${lang}-po")
set(GMO_TARGET "generate-${MAKEVAR_DOMAIN}-${lang}-gmo")
list(APPEND po_files ${PO_TARGET})
list(APPEND gmo_files ${GMO_TARGET})
if(${lang} MATCHES "en@(.*)quot")
add_custom_command(OUTPUT ${lang}.insert-header
COMMAND
sed -e "'/^#/d'" -e 's/HEADER/${lang}.header/g'
${CMAKE_CURRENT_SOURCE_DIR}/insert-header.sin > ${lang}.insert-header
)
#generate the en@quot files
add_custom_command(OUTPUT ${PO_FILE_NAME}
COMMAND
${GettextTranslate_MSGINIT_EXECUTABLE} -i ${TEMPLATE_FILE_ABS}
--no-translator -l ${lang}
-o - 2>/dev/null
| sed -f ${CMAKE_CURRENT_BINARY_DIR}/${lang}.insert-header
| ${GettextTranslate_MSGCONV_EXECUTABLE} -t UTF-8
| ${GettextTranslate_MSGFILTER_EXECUTABLE} sed -f
${CMAKE_CURRENT_SOURCE_DIR}/`echo ${lang}
| sed -e 's/.*@//'`.sed 2>/dev/null >
${PO_FILE_NAME}
DEPENDS ${lang}.insert-header ${TEMPLATE_FILE_ABS}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
else()
add_custom_command(OUTPUT ${PO_FILE_NAME}
COMMAND ${GettextTranslate_MSGMERGE_EXECUTABLE} --lang=${lang}
${PO_FILE_NAME} ${TEMPLATE_FILE_ABS}
-o ${PO_FILE_NAME}.new
COMMAND mv ${PO_FILE_NAME}.new ${PO_FILE_NAME}
DEPENDS ${TEMPLATE_FILE_ABS}
)
endif()
add_custom_command(OUTPUT ${GMO_FILE_NAME}
COMMAND ${GettextTranslate_MSGFMT_EXECUTABLE} -c --statistics --verbose
-o ${GMO_FILE_NAME} ${PO_FILE_NAME}
DEPENDS ${PO_TARGET}
)
add_custom_target(${GMO_TARGET} DEPENDS ${GMO_FILE_NAME})
add_custom_target(${PO_TARGET} DEPENDS ${PO_FILE_NAME})
add_dependencies(${PO_TARGET} ${MAKEVAR_DOMAIN}.pot-update)
install(FILES ${GMO_FILE_NAME} DESTINATION
${LOCALEDIR}/${lang}/LC_MESSAGES
RENAME ${MAKEVAR_DOMAIN}.mo
)
endforeach()
add_dependencies(update-po ${po_files})
add_dependencies(update-gmo ${gmo_files})
#string(REGEX MATCH "^[^=]+=(.*)$" parsed_variables ${makevars})
endmacro()

View File

@ -1,122 +0,0 @@
# - adds support for the 'make distcheck' command -*- cmake -*-
# Dependencies:
# 1. CPack generating ${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.gz.
# 2. Having a "dist" target, e.g:
# add_custom_target(dist COMMAND ${CMAKE_MAKE_PROGRAM} package_source)
# Usage:
# add_distcheck() ... called exactly once per project in the top-level
# CMakeLists.txt; it adds the 'dist' and 'distcheck'
# targets
#
# This module implements the 'make dist' and 'make distcheck'
# commands.
# It supports the following variables:
#
# DISTCHECK_TMPDIR ... directory for temporary files
# DISTCHECK_FILENAME ... basename of existing tar.gz.; defaults to
# ${CPACK_SOURCE_PACKAGE_FILE_NAME}
# DISTCHECK_CMAKEFLAGS
# ... flags which are given to 'cmake' by 'make distcheck'
# DISTCHECK_BUILDTARGETS
# ... the build-targets tried by 'make distcheck';
# defaults to nothing (--> all)
# DISTCHECK_INSTALLTARGETS
# ... the install-targets tried by 'make distcheck';
# defaults to 'install'
#
# Example:
# --- top-level CMakeLists.txt ---
# add_subdirectory(foo)
# ...
# ...
# set(CPACK_PACKAGE_VERSION_MAJOR ${ECRIRE_VERSION_MAJOR})
# set(CPACK_PACKAGE_VERSION_MINOR ${ECRIRE_VERSION_MINOR})
# set(CPACK_PACKAGE_VERSION_PATCH ${ECRIRE_VERSION_MICRO})
# set(CPACK_SOURCE_GENERATOR "TGZ")
# set(CPACK_SOURCE_IGNORE_FILES
# "${CMAKE_BINARY_DIR};/.git/;~$;${CPACK_SOURCE_IGNORE_FILES}")
# include(CPack)
# add_custom_target(dist COMMAND ${CMAKE_MAKE_PROGRAM} package_source)
#
# find_package(Distcheck)
# add_distcheck()
#
#
# Copyright (C) 2012 Tom Hacohen <tom@stosb.com>
# Based on the work done by:
# Copyright (C) 2006 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
#
# Redistribution and use, with or without modification, are permitted
# provided that the following conditions are met:
#
# 1. Redistributions must retain the above copyright notice, this
# list of conditions and the following disclaimer.
# 2. The name of the author may not be used to endorse or promote
# products derived from this software without specific prior
# written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
# IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
macro(add_distcheck)
set(MakeDist_FOUND 1)
set(DISTCHECK_TMPDIR "${CMAKE_BINARY_DIR}/.make-dist" CACHE PATH "directory for temporary files created by'make dist*'")
set(DISTCHECK_FILENAME ${CPACK_SOURCE_PACKAGE_FILE_NAME} CACHE PATH "basename of the tarball created by 'make dist'")
set(DISTCHECK_CMAKEFLAGS CACHE STRING "flags which are given to 'cmake' by 'make distcheck'")
set(DISTCHECK_BUILDTARGETS "" CACHE STRING "build-target(s) tried by 'make distcheck'")
set(DISTCHECK_INSTALLTARGETS install CACHE STRING "install-target(s) tried by 'make distcheck'")
mark_as_advanced(DISTCHECK_TMPDIR DISTCHECK_FILENAME DISTCHECK_CMAKEFLAGS DISTCHECK_BUILDTARGETS DISTCHECK_INSTALLTARGETS)
set(DISTCHECK_BASESOURCEDIR "${DISTCHECK_TMPDIR}/source")
set(DISTCHECK_SOURCEDIR "${DISTCHECK_BASESOURCEDIR}/${DISTCHECK_FILENAME}")
set(DISTCHECK_BUILDDIR "${DISTCHECK_TMPDIR}/build")
set(DISTCHECK_INSTALLTARGETS "install")
add_custom_target(distcheck
# Create the tarball
COMMAND ${CMAKE_MAKE_PROGRAM} dist
# Create the temp dir.
COMMAND chmod -Rf a+w "${DISTCHECK_TMPDIR}" 2>/dev/null || :
COMMAND rm -rf "${DISTCHECK_TMPDIR}"
COMMAND mkdir -p "${DISTCHECK_SOURCEDIR}" "${DISTCHECK_BUILDDIR}"
# extract tarball
COMMAND tar xzf ${CPACK_SOURCE_PACKAGE_FILE_NAME}.tar.gz -C "${DISTCHECK_BASESOURCEDIR}"
# write-protect sources to detect modifies-sourcetree bugs
COMMAND chmod -R a-w "${DISTCHECK_SOURCEDIR}"
COMMAND cd "${DISTCHECK_BUILDDIR}" && ${CMAKE_COMMAND} -DCMAKE_INSTALL_PREFIX:PATH="${DISTCHECK_TMPDIR}/install" ${DISTCHECK_CMAKEFLAGS} "${DISTCHECK_SOURCEDIR}"
COMMAND cd "${DISTCHECK_BUILDDIR}" && ${CMAKE_MAKE_PROGRAM} ${DISTCHECK_BUILDTARGETS}
# execute 'make install' without DESTDIR
COMMAND cd "${DISTCHECK_BUILDDIR}" && ${CMAKE_MAKE_PROGRAM} ${DISTCHECK_INSTALLTARGETS} DESTDIR=
# write protect installation path to detect writing outside of DESTDIR
COMMAND chmod -R a-w "${DISTCHECK_TMPDIR}/install"
# execute 'make install' with DESTDIR and move the files to a better location
COMMAND cd "${DISTCHECK_BUILDDIR}" && ${CMAKE_MAKE_PROGRAM} ${DISTCHECK_INSTALLTARGETS} DESTDIR="${DISTCHECK_TMPDIR}/install-tmp"
COMMAND mv "${DISTCHECK_TMPDIR}/install-tmp/${DISTCHECK_TMPDIR}/install" "${DISTCHECK_TMPDIR}/install-destdir"
# generate list of files which were installed by the both 'make
# install' commands above and compare them
COMMAND cd "${DISTCHECK_TMPDIR}/install" && find -type f | sort > ../files.install
COMMAND cd "${DISTCHECK_TMPDIR}/install-destdir" && find -type f | sort > ../files.destdir
COMMAND cd "${DISTCHECK_TMPDIR}" && diff files.install files.destdir
# cleanup tmpdir
COMMAND chmod -R u+Xw "${DISTCHECK_TMPDIR}" 2>/dev/null || :
COMMAND rm -rf "${DISTCHECK_TMPDIR}"
)
endmacro(add_distcheck)

View File

@ -1,63 +0,0 @@
# - Try to find ecore
# Once done this will define
# ECORE_FOUND - System has ecore
# ECORE_INCLUDE_DIRS - The ecore include directories
# ECORE_LIBRARIES - The libraries needed to use ecore
# ECORE_DEFINITIONS - Compiler switches required for using ecore
# Use FIND_PACKAGE( Ecore COMPONENTS ... ) to enable modules
IF( Ecore_FIND_COMPONENTS )
FOREACH( component ${Ecore_FIND_COMPONENTS} )
STRING( TOUPPER ${component} _COMPONENT )
SET( ECORE_USE_${_COMPONENT} 1 )
ENDFOREACH( component )
ENDIF( Ecore_FIND_COMPONENTS )
find_package(PkgConfig)
if ("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}" VERSION_GREATER "2.8.1")
# "QUIET" was introduced in 2.8.2
set(_QUIET QUIET)
endif ()
pkg_check_modules(PC_LIBECORE ${_QUIET} ecore)
set(ECORE_DEFINITIONS ${PC_LIBECORE_CFLAGS_OTHER})
find_path(ECORE_INCLUDE_DIR Ecore.h
HINTS ${PC_LIBECORE_INCLUDEDIR} ${PC_LIBECORE_INCLUDE_DIRS}
PATH_SUFFIXES ecore )
find_library(ECORE_LIBRARY NAMES ecore
HINTS ${PC_LIBECORE_LIBDIR} ${PC_LIBECORE_LIBRARY_DIRS} )
set(ECORE_LIBRARIES ${ECORE_LIBRARY} )
set(ECORE_INCLUDE_DIRS ${ECORE_INCLUDE_DIR} )
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set ECORE_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(ecore DEFAULT_MSG
ECORE_LIBRARY ECORE_INCLUDE_DIR)
mark_as_advanced( ECORE_INCLUDE_DIR ECORE_LIBRARY )
if (ECORE_USE_ECORE-X)
pkg_check_modules(PC_LIBECORE_X ${_QUIET} ecore-x)
set(ECORE_X_DEFINITIONS ${PC_LIBECORE_X_CFLAGS_OTHER})
find_path(ECORE_X_INCLUDE_DIR Ecore_X.h
HINTS ${PC_LIBECORE_X_INCLUDEDIR} ${PC_LIBECORE_X_INCLUDE_DIRS}
PATH_SUFFIXES ecore )
find_library(ECORE_X_LIBRARY NAMES ecore_x
HINTS ${PC_LIBECORE_X_LIBDIR} ${PC_LIBECORE_X_LIBRARY_DIRS} )
set(ECORE_X_LIBRARIES ${ECORE_X_LIBRARY} )
set(ECORE_X_INCLUDE_DIRS ${ECORE_X_INCLUDE_DIR} )
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set ECORE_X_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(ecore_x DEFAULT_MSG
ECORE_X_LIBRARY ECORE_X_INCLUDE_DIR)
mark_as_advanced( ECORE_X_INCLUDE_DIR ECORE_X_LIBRARY )
endif (ECORE_USE_ECORE-X)

View File

@ -1,32 +0,0 @@
# - Try to find edje
# Once done this will define
# EDJE_FOUND - System has edje
# EDJE_INCLUDE_DIRS - The edje include directories
# EDJE_LIBRARIES - The libraries needed to use edje
# EDJE_DEFINITIONS - Compiler switches required for using edje
find_package(PkgConfig)
if ("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}" VERSION_GREATER "2.8.1")
# "QUIET" was introduced in 2.8.2
set(_QUIET QUIET)
endif ()
pkg_check_modules(PC_LIBEDJE ${_QUIET} edje)
set(EDJE_DEFINITIONS ${PC_LIBEDJE_CFLAGS_OTHER})
find_path(EDJE_INCLUDE_DIR Edje.h
HINTS ${PC_LIBEDJE_INCLUDEDIR} ${PC_LIBEDJE_INCLUDE_DIRS}
PATH_SUFFIXES edje )
find_library(EDJE_LIBRARY NAMES edje
HINTS ${PC_LIBEDJE_LIBDIR} ${PC_LIBEDJE_LIBRARY_DIRS} )
set(EDJE_LIBRARIES ${EDJE_LIBRARY} )
set(EDJE_INCLUDE_DIRS ${EDJE_INCLUDE_DIR} )
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set EDJE_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(edje DEFAULT_MSG
EDJE_LIBRARY EDJE_INCLUDE_DIR)
mark_as_advanced(EDJE_INCLUDE_DIR EDJE_LIBRARY )

View File

@ -1,32 +0,0 @@
# - Try to find eet
# Once done this will define
# EET_FOUND - System has eet
# EET_INCLUDE_DIRS - The eet include directories
# EET_LIBRARIES - The libraries needed to use eet
# EET_DEFINITIONS - Compiler switches required for using eet
find_package(PkgConfig)
if ("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}" VERSION_GREATER "2.8.1")
# "QUIET" was introduced in 2.8.2
set(_QUIET QUIET)
endif ()
pkg_check_modules(PC_LIBEET ${_QUIET} eet)
set(EET_DEFINITIONS ${PC_LIBEET_CFLAGS_OTHER})
find_path(EET_INCLUDE_DIR Eet.h
HINTS ${PC_LIBEET_INCLUDEDIR} ${PC_LIBEET_INCLUDE_DIRS}
PATH_SUFFIXES eet )
find_library(EET_LIBRARY NAMES eet
HINTS ${PC_LIBEET_LIBDIR} ${PC_LIBEET_LIBRARY_DIRS} )
set(EET_LIBRARIES ${EET_LIBRARY} )
set(EET_INCLUDE_DIRS ${EET_INCLUDE_DIR} )
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set EET_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(eet DEFAULT_MSG
EET_LIBRARY EET_INCLUDE_DIR)
mark_as_advanced( EET_INCLUDE_DIR EET_LIBRARY )

View File

@ -1,32 +0,0 @@
# - Try to find efreet
# Once done this will define
# EFREET_FOUND - System has efreet
# EFREET_INCLUDE_DIRS - The efreet include directories
# EFREET_LIBRARIES - The libraries needed to use efreet
# EFREET_DEFINITIONS - Compiler switches required for using efreet
find_package(PkgConfig)
if ("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}" VERSION_GREATER "2.8.1")
# "QUIET" was introduced in 2.8.2
set(_QUIET QUIET)
endif ()
pkg_check_modules(PC_LIBEFREET ${_QUIET} efreet)
set(EFREET_DEFINITIONS ${PC_LIBEFREET_CFLAGS_OTHER})
find_path(EFREET_INCLUDE_DIR Efreet.h
HINTS ${PC_LIBEFREET_INCLUDEDIR} ${PC_LIBEFREET_INCLUDE_DIRS}
PATH_SUFFIXES efreet )
find_library(EFREET_LIBRARY NAMES efreet
HINTS ${PC_LIBEFREET_LIBDIR} ${PC_LIBEFREET_LIBRARY_DIRS} )
set(EFREET_LIBRARIES ${EFREET_LIBRARY} )
set(EFREET_INCLUDE_DIRS ${EFREET_INCLUDE_DIR} )
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set EFREET_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(efreet DEFAULT_MSG
EFREET_LIBRARY EFREET_INCLUDE_DIR)
mark_as_advanced(EFREET_INCLUDE_DIR EFREET_LIBRARY )

View File

@ -1,32 +0,0 @@
# - Try to find eina
# Once done this will define
# EINA_FOUND - System has eina
# EINA_INCLUDE_DIRS - The eina include directories
# EINA_LIBRARIES - The libraries needed to use eina
# EINA_DEFINITIONS - Compiler switches required for using eina
find_package(PkgConfig)
if ("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}" VERSION_GREATER "2.8.1")
# "QUIET" was introduced in 2.8.2
set(_QUIET QUIET)
endif ()
pkg_check_modules(PC_LIBEINA ${_QUIET} eina)
set(EINA_DEFINITIONS ${PC_LIBEINA_CFLAGS_OTHER})
find_path(EINA_INCLUDE_DIR Eina.h
HINTS ${PC_LIBEINA_INCLUDEDIR} ${PC_LIBEINA_INCLUDE_DIRS}
PATH_SUFFIXES eina )
find_library(EINA_LIBRARY NAMES eina
HINTS ${PC_LIBEINA_LIBDIR} ${PC_LIBEINA_LIBRARY_DIRS} )
set(EINA_LIBRARIES ${EINA_LIBRARY} )
set(EINA_INCLUDE_DIRS ${EINA_INCLUDE_DIR} "${EINA_INCLUDE_DIR}/eina" )
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set EINA_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(eina DEFAULT_MSG
EINA_LIBRARY EINA_INCLUDE_DIR)
mark_as_advanced(EINA_INCLUDE_DIR EINA_LIBRARY )

View File

@ -1,32 +0,0 @@
# - Try to find elementary
# Once done this will define
# ELEMENTARY_FOUND - System has elementary
# ELEMENTARY_INCLUDE_DIRS - The elementary include directories
# ELEMENTARY_LIBRARIES - The libraries needed to use elementary
# ELEMENTARY_DEFINITIONS - Compiler switches required for using elementary
find_package(PkgConfig)
if ("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}" VERSION_GREATER "2.8.1")
# "QUIET" was introduced in 2.8.2
set(_QUIET QUIET)
endif ()
pkg_check_modules(PC_LIBELEMENTARY ${_QUIET} elementary)
set(ELEMENTARY_DEFINITIONS ${PC_LIBELEMENTARY_CFLAGS_OTHER})
find_path(ELEMENTARY_INCLUDE_DIR Elementary.h
HINTS ${PC_LIBELEMENTARY_INCLUDEDIR} ${PC_LIBELEMENTARY_INCLUDE_DIRS}
PATH_SUFFIXES elementary )
find_library(ELEMENTARY_LIBRARY NAMES elementary
HINTS ${PC_LIBELEMENTARY_LIBDIR} ${PC_LIBELEMENTARY_LIBRARY_DIRS} )
set(ELEMENTARY_LIBRARIES ${ELEMENTARY_LIBRARY} )
set(ELEMENTARY_INCLUDE_DIRS ${PC_LIBELEMENTARY_INCLUDEDIR} ${PC_LIBELEMENTARY_INCLUDE_DIRS} )
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set ELEMENTARY_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(elementary DEFAULT_MSG
ELEMENTARY_LIBRARY ELEMENTARY_INCLUDE_DIR)
mark_as_advanced(ELEMENTARY_INCLUDE_DIR ELEMENTARY_LIBRARY )

View File

@ -1,32 +0,0 @@
# - Try to find evas
# Once done this will define
# EVAS_FOUND - System has evas
# EVAS_INCLUDE_DIRS - The evas include directories
# EVAS_LIBRARIES - The libraries needed to use evas
# EVAS_DEFINITIONS - Compiler switches required for using evas
find_package(PkgConfig)
if ("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION}" VERSION_GREATER "2.8.1")
# "QUIET" was introduced in 2.8.2
set(_QUIET QUIET)
endif ()
pkg_check_modules(PC_LIBEVAS ${_QUIET} evas)
set(EVAS_DEFINITIONS ${PC_LIBEVAS_CFLAGS_OTHER})
find_path(EVAS_INCLUDE_DIR Evas.h
HINTS ${PC_LIBEVAS_INCLUDEDIR} ${PC_LIBEVAS_INCLUDE_DIRS}
PATH_SUFFIXES evas )
find_library(EVAS_LIBRARY NAMES evas
HINTS ${PC_LIBEVAS_LIBDIR} ${PC_LIBEVAS_LIBRARY_DIRS} )
set(EVAS_LIBRARIES ${EVAS_LIBRARY} )
set(EVAS_INCLUDE_DIRS ${EVAS_INCLUDE_DIR} )
include(FindPackageHandleStandardArgs)
# handle the QUIETLY and REQUIRED arguments and set EVAS_FOUND to TRUE
# if all listed variables are TRUE
find_package_handle_standard_args(evas DEFAULT_MSG
EVAS_LIBRARY EVAS_INCLUDE_DIR)
mark_as_advanced(EVAS_INCLUDE_DIR EVAS_LIBRARY )

View File

@ -1,22 +0,0 @@
#define PACKAGE "@PACKAGE@"
#define PACKAGE_NAME PACKAGE
#define VERSION "@PACKAGE_VERSION@"
#define VMAJ @VMAJ@
#define VMIN @VMIN@
#define VMIC @VMIC@
#cmakedefine HAVE___ATTRIBUTE__
#ifdef HAVE___ATTRIBUTE__
#define __UNUSED__ __attribute__((unused))
#else
#define __UNUSED__
#endif
#cmakedefine HAVE_PATH_MAX
#ifndef HAVE_PATH_MAX
#define PATH_MAX 4096
#endif
#cmakedefine HAVE_ECORE_X
#cmakedefine ENABLE_NLS

View File

@ -1,5 +0,0 @@
install(FILES "${PROJECT_SOURCE_DIR}/data/ecrire.png"
DESTINATION "share/icons")
install(FILES "${PROJECT_SOURCE_DIR}/data/ecrire.desktop"
DESTINATION "share/applications")

2
data/desktop/meson.build Normal file
View File

@ -0,0 +1,2 @@
install_data('ecrire.desktop',
install_dir: join_paths(dir_data, 'applications'))

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

2
data/icons/meson.build Normal file
View File

@ -0,0 +1,2 @@
install_data('ecrire.png',
install_dir: join_paths(dir_data, 'icons'))

2
data/meson.build Normal file
View File

@ -0,0 +1,2 @@
subdir('desktop')
subdir('icons')

54
meson.build Normal file
View File

@ -0,0 +1,54 @@
##### project
project('ecrire', 'c',
version : '0.1.1',
license : 'GPL',
default_options: [ 'buildtype=plain', 'c_std=gnu99' ],
meson_version : '>= 0.40.0')
base_url = 'https://www.enlightenment.org/about-'
##### convenience variables for later
proj = meson.project_name()
ver = meson.project_version()
##### dependencies
efl_version = '>= 1.22.3'
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'))
install_data([ 'AUTHORS',
'COPYING'
],
install_dir: join_paths(dir_data, 'ecrire'))
##### config.h
cfg = configuration_data()
cfg.set_quoted('PACKAGE' , proj)
cfg.set_quoted('PACKAGE_NAME' , proj)
cfg.set_quoted('PACKAGE_VERSION' , ver)
cfg.set_quoted('PACKAGE_STRING' , proj + ' ' + ver)
cfg.set_quoted('LOCALE_DIR' , join_paths([dir_prefix, 'share/locale']))
cfg.set_quoted('PACKAGE_URL' , base_url + proj)
cfg.set_quoted('PACKAGE_BIN_DIR' , dir_bin)
cfg.set_quoted('PACKAGE_LIB_DIR' , dir_lib)
cfg.set_quoted('PACKAGE_DATA_DIR' , join_paths(dir_data, proj))
cfg.set_quoted('LOCALEDIR' , dir_locale)
cfg.set ('_GNU_SOURCE' , 1)
cfg.set ('__EXTENSIONS__' , 1)
cfg.set ('_POSIX_PTHREAD_SEMANTICS', 1)
cfg.set ('_ALL_SOURCE' , 1)
cfg.set ('_POSIX_SOURCE' , 1)
cfg.set ('_POSIX_1_SOURCE' , 1)
subdir('po')
configure_file(output: 'config.h', configuration: cfg)
##### subdirs
subdir('src')
subdir('data')

4
meson_options.txt Normal file
View File

@ -0,0 +1,4 @@
option('nls',
type: 'boolean',
value: true,
description: 'enable localization: (default=true)')

View File

@ -1 +0,0 @@
GettextTranslate()

19
po/meson.build Normal file
View File

@ -0,0 +1,19 @@
dep_intl = []
if get_option('nls')
i18n = import('i18n')
i18n.gettext('ecrire',
args: [
'--keyword=_',
'--keyword=d_:1',
'--keyword=P_:1,2',
'--keyword=dP_:1,2',
'--keyword=N_',
'--keyword=NP_:1,2',
'--from-code=UTF-8',
'--foreign-user'
])
cfg.set('ENABLE_NLS', '1')
cc = meson.get_compiler('c')
dep_intl = cc.find_library('intl', required : false)
endif

View File

@ -1,35 +0,0 @@
LIST(APPEND ECRIRE_CC_SOURCES
main.c
file_utils.c
cfg.c
ui/file_related.c
ui/search_dialog.c
ui/goto_dialog.c
ui/font_dialog.c
ui/alerts.c
)
include_directories(
${EINA_INCLUDE_DIRS}
${ELEMENTARY_INCLUDE_DIRS}
${EDJE_INCLUDE_DIRS}
${ECORE_INCLUDE_DIRS}
${ECORE_X_INCLUDE_DIRS}
${EFREET_INCLUDE_DIRS}
${EVAS_INCLUDE_DIRS}
${EET_INCLUDE_DIRS}
)
add_executable(ecrire ${ECRIRE_CC_SOURCES})
target_link_libraries(ecrire
${EINA_LIBRARIES}
${ELEMENTARY_LIBRARIES}
${EDJE_LIBRARIES}
${ECORE_LIBRARIES}
${ECORE_X_LIBRARIES}
${EFREET_LIBRARIES}
${EVAS_LIBRARIES}
${EET_LIBRARIES}
)
install(TARGETS ecrire DESTINATION bin)

View File

@ -1,17 +1,5 @@
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#ifdef HAVE_UNISTD_H
# include <unistd.h>
#endif
/*
#ifdef HAVE_ECORE_X
# include <Ecore_X.h>
#endif
*/
#include "config.h"
#include <unistd.h>
#include <Elementary.h>
#include "mess_header.h"
@ -72,8 +60,8 @@ _alert_if_need_saving(void (*done)(void *data), Ecrire_Entry *ent)
}
static void
_sel_start(void *data, Evas_Object *obj __UNUSED__,
void *event_info __UNUSED__)
_sel_start(void *data, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
{
Ecrire_Entry *ent = data;
elm_object_item_disabled_set(ent->copy_item, EINA_FALSE);
@ -81,8 +69,8 @@ _sel_start(void *data, Evas_Object *obj __UNUSED__,
}
static void
_sel_clear(void *data __UNUSED__, Evas_Object *obj __UNUSED__,
void *event_info __UNUSED__)
_sel_clear(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
void *event_info EINA_UNUSED)
{
Ecrire_Entry *ent = data;
elm_object_item_disabled_set(ent->copy_item, EINA_TRUE);
@ -109,7 +97,7 @@ _update_cur_file(const char *file, Ecrire_Entry *ent)
}
static void
_cur_changed(void *data, Evas_Object *obj, void *event_info __UNUSED__)
_cur_changed(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
{
char buf[50];
int line;
@ -130,7 +118,7 @@ _cur_changed(void *data, Evas_Object *obj, void *event_info __UNUSED__)
}
static void
_cur_changed_manual(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
_cur_changed_manual(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Ecrire_Entry *ent = data;
ent->undo_stack_can_merge = EINA_FALSE;
@ -269,7 +257,7 @@ _undo_redo_do(Ecrire_Entry *ent, Elm_Entry_Change_Info *inf, Eina_Bool undo)
}
static void
_undo(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
_undo(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
/* In undo we care about the current item */
Ecrire_Entry *ent = data;
@ -298,7 +286,7 @@ _undo(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
}
static void
_redo(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
_redo(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Ecrire_Entry *ent = data;
Elm_Entry_Change_Info *inf = NULL;
@ -331,7 +319,7 @@ _redo(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
}
static void
_ent_changed(void *data, Evas_Object *obj __UNUSED__, void *event_info)
_ent_changed(void *data, Evas_Object *obj EINA_UNUSED, void *event_info)
{
Ecrire_Entry *ent = data;
elm_object_item_disabled_set(ent->save_item, EINA_FALSE);
@ -368,7 +356,7 @@ _load_to_entry(Ecrire_Entry *ent, const char *file)
}
static void
_fs_open_done(void *data __UNUSED__, Evas_Object *obj __UNUSED__,
_fs_open_done(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
void *event_info)
{
const char *selected = event_info;
@ -390,7 +378,7 @@ save_do(const char *file, Ecrire_Entry *ent)
}
static void
_fs_save_done(void *data __UNUSED__, Evas_Object *obj __UNUSED__,
_fs_save_done(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
void *event_info)
{
const char *selected = event_info;
@ -409,14 +397,14 @@ _open_do(void *data)
}
static void
_goto_line(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
_goto_line(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Ecrire_Entry *ent = data;
ui_goto_dialog_open(ent->win, ent);
}
static void
_open(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
_open(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Ecrire_Entry *ent = data;
_alert_if_need_saving(_open_do, ent);
@ -436,14 +424,14 @@ editor_save(Ecrire_Entry *ent, void *callback_func)
}
static void
_save(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
_save(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Ecrire_Entry *ent = data;
editor_save(ent, _fs_save_done);
}
static void
_save_as(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
_save_as(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Ecrire_Entry *ent = data;
ui_file_open_save_dialog_open(ent->win, _fs_save_done, EINA_TRUE);
@ -460,42 +448,42 @@ _new_do(void *data)
}
static void
_new(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
_new(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Ecrire_Entry *ent = data;
_alert_if_need_saving(_new_do, ent);
}
static void
_cut(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
_cut(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Ecrire_Entry *ent = data;
elm_entry_selection_cut(ent->entry);
}
static void
_copy(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
_copy(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Ecrire_Entry *ent = data;
elm_entry_selection_copy(ent->entry);
}
static void
_paste(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
_paste(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Ecrire_Entry *ent = data;
elm_entry_selection_paste(ent->entry);
}
static void
_find(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
_find(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Ecrire_Entry *ent = data;
ui_find_dialog_open(ent->win, ent);
}
static void
_font_settings(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
_font_settings(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Ecrire_Entry *ent = data;
ui_font_dialog_open(elm_object_top_widget_get(ent->win), ent, _ent_cfg->font.name, _ent_cfg->font.size);
@ -503,7 +491,7 @@ _font_settings(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSE
static void
_win_del_do(void *data __UNUSED__)
_win_del_do(void *data EINA_UNUSED)
{
elm_exit();
}
@ -572,7 +560,7 @@ editor_font_choose(Ecrire_Entry *ent, const char *font, int size)
/*
#ifdef HAVE_ECORE_X
static Eina_Bool
_selection_notify(void *data, int type __UNUSED__, void *_event)
_selection_notify(void *data, int type EINA_UNUSED, void *_event)
{
Ecrire_Entry *ent = data;
Ecore_X_Event_Fixes_Selection_Notify *event =
@ -593,7 +581,7 @@ _selection_notify(void *data, int type __UNUSED__, void *_event)
*/
static void
_key_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *event)
_key_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event)
{
Ecrire_Entry *ent = data;
Eina_Bool ctrl, alt, shift;
@ -617,8 +605,8 @@ _key_cb(void *data, Evas *e __UNUSED__, Evas_Object *obj, void *event)
_save(data, obj, event);
}
int
main(int argc, char *argv[])
EAPI_MAIN int
elm_main(int argc, char **argv)
{
Evas_Object *bg, *tbar, *bx, *cur_info;
Evas_Coord w = 600, h = 600;
@ -626,12 +614,6 @@ main(int argc, char *argv[])
opterr = 0;
if (!eina_init())
{
printf("Failed to initialize Eina_log module\n");
return EXIT_FAILURE;
}
_ecrire_log_dom = eina_log_domain_register("ecrire", ECRIRE_DEFAULT_LOG_COLOR);
if (_ecrire_log_dom < 0)
{
@ -661,12 +643,18 @@ main(int argc, char *argv[])
}
}
elm_app_compile_bin_dir_set(PACKAGE_BIN_DIR);
elm_app_compile_lib_dir_set(PACKAGE_LIB_DIR);
elm_app_compile_data_dir_set(PACKAGE_DATA_DIR);
#ifdef ENABLE_NLS
elm_app_compile_locale_set(LOCALEDIR);
#endif
elm_app_info_set(elm_main, "ecrire", "COPYING");
setlocale(LC_ALL, "");
bindtextdomain(PACKAGE, LOCALE_DIR);
textdomain(PACKAGE);
elm_init(argc, argv);
ecrire_cfg_init(PACKAGE_NAME);
ecrire_cfg_load();
@ -683,7 +671,7 @@ main(int argc, char *argv[])
DBG("Opening filename: '%s'", main_ec_ent->filename);
main_ec_ent->win = elm_win_add(NULL, "editor", ELM_WIN_BASIC);
main_ec_ent->win = elm_win_add(NULL, "Ecrire", ELM_WIN_BASIC);
elm_win_autodel_set(main_ec_ent->win, EINA_FALSE);
bg = elm_bg_add(main_ec_ent->win);
@ -793,13 +781,11 @@ main(int argc, char *argv[])
elm_run();
ecrire_cfg_shutdown();
elm_shutdown();
eina_log_domain_unregister(_ecrire_log_dom);
_ecrire_log_dom = -1;
eina_shutdown();
return 0;
}
ELM_MAIN()
static void
print_usage(const char *bin)

17
src/bin/meson.build Normal file
View File

@ -0,0 +1,17 @@
inc = include_directories('.', '../..')
executable('ecrire', [
'cfg.c', 'cfg.h',
'file_utils.c',
'main.c',
'mess_header.h',
'ui/alerts.c',
'ui/file_related.c',
'ui/font_dialog.c',
'ui/goto_dialog.c',
'ui/search_dialog.c',
'ui/ui.h'
],
include_directories: inc,
dependencies : [ deps, dep_intl ] ,
gui_app : true,
install : true)

View File

@ -1,7 +1,4 @@
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include "config.h"
#include <Elementary.h>
#include "../mess_header.h"
@ -10,7 +7,7 @@ static void *done_data;
static void (*done_cb)(void *data);
static void
_discard(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
_discard(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Ecrire_Entry *ent = done_data;
@ -19,7 +16,7 @@ _discard(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
}
static void
_fs_save_done(void *data __UNUSED__, Evas_Object *obj __UNUSED__,
_fs_save_done(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
void *event_info)
{
const char *selected = event_info;
@ -32,7 +29,7 @@ _fs_save_done(void *data __UNUSED__, Evas_Object *obj __UNUSED__,
}
static void
_save(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
_save(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Ecrire_Entry *ent = done_data;
@ -41,7 +38,7 @@ _save(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
}
static void
_cancel(void *data, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
_cancel(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
evas_object_del(data);
}

View File

@ -1,7 +1,4 @@
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include "config.h"
#include <Elementary.h>
Evas_Object *inwin;

View File

@ -1,7 +1,4 @@
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include "config.h"
#include <Elementary.h>
#include "../mess_header.h"
@ -49,7 +46,7 @@ _font_list_get(const Evas *e)
static void
_set_clicked(void *data,
Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
Ecrire_Entry *ent = data;
const char *selected = NULL;
@ -63,8 +60,8 @@ _set_clicked(void *data,
}
static void
_check_changed_cb(void *data __UNUSED__, Evas_Object *obj,
void *event_info __UNUSED__)
_check_changed_cb(void *data EINA_UNUSED, Evas_Object *obj,
void *event_info EINA_UNUSED)
{
elm_object_disabled_set(list, elm_check_state_get(obj));
elm_object_disabled_set(fsize, elm_check_state_get(obj));

View File

@ -1,7 +1,4 @@
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include "config.h"
#include <Elementary.h>
#include "../mess_header.h"
@ -29,13 +26,13 @@ _goto_do(Evas_Object *entry, const char *text)
static void
_goto_clicked(void *data,
Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
_goto_do(data, elm_object_text_get(sent));
}
static void
_my_win_del(void *data __UNUSED__, Evas_Object *obj, void *event_info)
_my_win_del(void *data EINA_UNUSED, Evas_Object *obj, void *event_info)
{
(void) obj;
(void) event_info;

View File

@ -1,7 +1,4 @@
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include "config.h"
#include <Elementary.h>
#include "../mess_header.h"
@ -97,14 +94,14 @@ _find_in_entry(Evas_Object *entry, const char *text, Eina_Bool jump_next)
static void
_find_clicked(void *data,
Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
_find_in_entry(data, elm_object_text_get(sent), EINA_TRUE);
}
static void
_replace_clicked(void *data,
Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
{
if (_find_in_entry(data, elm_object_text_get(sent), EINA_FALSE))
{
@ -118,7 +115,7 @@ _replace_clicked(void *data,
}
static void
my_win_del(void *data __UNUSED__, Evas_Object *obj, void *event_info)
my_win_del(void *data EINA_UNUSED, Evas_Object *obj, void *event_info)
{
(void) obj;
(void) event_info;

1
src/meson.build Normal file
View File

@ -0,0 +1 @@
subdir('bin')