This commit is contained in:
parent
3b1c6d8122
commit
9e3bab47f0
21 changed files with 1175 additions and 483 deletions
42
CMakeLists.txt
Normal file
42
CMakeLists.txt
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
# Geary build script
|
||||||
|
# Copyright 2011-2012 Yorba Foundation
|
||||||
|
#
|
||||||
|
# Check http://webdev.elementaryos.org/docs/developer-guide/cmake for documentation
|
||||||
|
|
||||||
|
cmake_minimum_required(VERSION 2.8)
|
||||||
|
cmake_policy(VERSION 2.6)
|
||||||
|
|
||||||
|
project(geary)
|
||||||
|
|
||||||
|
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake )
|
||||||
|
|
||||||
|
#
|
||||||
|
# Base bits
|
||||||
|
#
|
||||||
|
set(GETTEXT_PACKAGE "geary")
|
||||||
|
set(RELEASE_NAME "Lightweight email client for Gnome.")
|
||||||
|
set(VERSION "0.0.0+trunk")
|
||||||
|
set(VERSION_INFO "Release")
|
||||||
|
|
||||||
|
add_subdirectory(src)
|
||||||
|
add_subdirectory(icons)
|
||||||
|
add_subdirectory(sql)
|
||||||
|
add_subdirectory(ui)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Uninstall target
|
||||||
|
#
|
||||||
|
configure_file(
|
||||||
|
"${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in"
|
||||||
|
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
|
||||||
|
IMMEDIATE @ONLY
|
||||||
|
)
|
||||||
|
|
||||||
|
add_custom_target(
|
||||||
|
uninstall
|
||||||
|
COMMAND
|
||||||
|
${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake
|
||||||
|
COMMAND
|
||||||
|
${glib_schema_compiler} ${GSETTINGS_DIR}
|
||||||
|
)
|
||||||
|
|
||||||
65
cmake/FindVala.cmake
Normal file
65
cmake/FindVala.cmake
Normal file
|
|
@ -0,0 +1,65 @@
|
||||||
|
##
|
||||||
|
# Copyright 2009-2010 Jakob Westhoff. All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are met:
|
||||||
|
#
|
||||||
|
# 1. Redistributions of source code must retain the above copyright notice,
|
||||||
|
# this list of conditions and the following disclaimer.
|
||||||
|
#
|
||||||
|
# 2. 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 JAKOB WESTHOFF ``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 JAKOB WESTHOFF 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.
|
||||||
|
#
|
||||||
|
# The views and conclusions contained in the software and documentation are those
|
||||||
|
# of the authors and should not be interpreted as representing official policies,
|
||||||
|
# either expressed or implied, of Jakob Westhoff
|
||||||
|
##
|
||||||
|
|
||||||
|
##
|
||||||
|
# Find module for the Vala compiler (valac)
|
||||||
|
#
|
||||||
|
# This module determines wheter a Vala compiler is installed on the current
|
||||||
|
# system and where its executable is.
|
||||||
|
#
|
||||||
|
# Call the module using "find_package(Vala) from within your CMakeLists.txt.
|
||||||
|
#
|
||||||
|
# The following variables will be set after an invocation:
|
||||||
|
#
|
||||||
|
# VALA_FOUND Whether the vala compiler has been found or not
|
||||||
|
# VALA_EXECUTABLE Full path to the valac executable if it has been found
|
||||||
|
# VALA_VERSION Version number of the available valac
|
||||||
|
##
|
||||||
|
|
||||||
|
|
||||||
|
# Search for the valac executable in the usual system paths.
|
||||||
|
find_program(VALA_EXECUTABLE
|
||||||
|
NAMES valac)
|
||||||
|
|
||||||
|
# Handle the QUIETLY and REQUIRED arguments, which may be given to the find call.
|
||||||
|
# Furthermore set VALA_FOUND to TRUE if Vala has been found (aka.
|
||||||
|
# VALA_EXECUTABLE is set)
|
||||||
|
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
find_package_handle_standard_args(Vala DEFAULT_MSG VALA_EXECUTABLE)
|
||||||
|
|
||||||
|
mark_as_advanced(VALA_EXECUTABLE)
|
||||||
|
|
||||||
|
# Determine the valac version
|
||||||
|
if(VALA_FOUND)
|
||||||
|
execute_process(COMMAND ${VALA_EXECUTABLE} "--version"
|
||||||
|
OUTPUT_VARIABLE "VALA_VERSION")
|
||||||
|
string(REPLACE "Vala" "" "VALA_VERSION" ${VALA_VERSION})
|
||||||
|
string(STRIP ${VALA_VERSION} "VALA_VERSION")
|
||||||
|
endif(VALA_FOUND)
|
||||||
108
cmake/GSettings.cmake
Normal file
108
cmake/GSettings.cmake
Normal file
|
|
@ -0,0 +1,108 @@
|
||||||
|
# GSettings.cmake
|
||||||
|
# Originally based on CMake macros written for Marlin
|
||||||
|
# Updated by Yorba for newer versions of GLib.
|
||||||
|
#
|
||||||
|
# NOTE: This module does an in-place compilation of GSettings; the
|
||||||
|
# resulting gschemas.compiled file will end up in the same
|
||||||
|
# source folder as the original schema(s).
|
||||||
|
|
||||||
|
option(GSETTINGS_COMPILE "Compile GSettings schemas. Can be disabled for packaging reasons." ON)
|
||||||
|
option(GSETTINGS_COMPILE_IN_PLACE "Compile GSettings schemas in the build folder. This is used for running an appliction without installing the GSettings systemwide. The application will need to set GSETTINGS_SCHEMA_DIR" ON)
|
||||||
|
|
||||||
|
if (GSETTINGS_COMPILE)
|
||||||
|
message(STATUS "GSettings schemas will be compiled.")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (GSETTINGS_COMPILE_IN_PLACE)
|
||||||
|
message(STATUS "GSettings schemas will be compiled in-place.")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
macro(add_schemas GSETTINGS_TARGET SCHEMA_DIRECTORY)
|
||||||
|
set(PKG_CONFIG_EXECUTABLE pkg-config)
|
||||||
|
|
||||||
|
# Locate all schema files.
|
||||||
|
file(GLOB all_schema_files
|
||||||
|
"${SCHEMA_DIRECTORY}/*.gschema.xml"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Find the GLib path for schema installation
|
||||||
|
execute_process(
|
||||||
|
COMMAND
|
||||||
|
${PKG_CONFIG_EXECUTABLE}
|
||||||
|
glib-2.0
|
||||||
|
--variable prefix
|
||||||
|
OUTPUT_VARIABLE
|
||||||
|
_glib_prefix
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
)
|
||||||
|
|
||||||
|
set(GSETTINGS_DIR "${_glib_prefix}/share/glib-2.0/schemas/" CACHE INTERNAL "")
|
||||||
|
|
||||||
|
# Fetch path for schema compiler from pkg-config
|
||||||
|
execute_process(
|
||||||
|
COMMAND
|
||||||
|
${PKG_CONFIG_EXECUTABLE}
|
||||||
|
gio-2.0
|
||||||
|
--variable
|
||||||
|
glib_compile_schemas
|
||||||
|
OUTPUT_VARIABLE
|
||||||
|
_glib_compile_schemas
|
||||||
|
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||||
|
)
|
||||||
|
|
||||||
|
set(glib_schema_compiler ${_glib_compile_schemas} CACHE INTERNAL "")
|
||||||
|
|
||||||
|
if (GSETTINGS_COMPILE_IN_PLACE)
|
||||||
|
set(COMPILE_IN_PLACE_DIR ${CMAKE_BINARY_DIR}/gsettings)
|
||||||
|
add_custom_command(
|
||||||
|
TARGET
|
||||||
|
${GSETTINGS_TARGET}
|
||||||
|
COMMAND
|
||||||
|
${CMAKE_COMMAND} -E make_directory "${COMPILE_IN_PLACE_DIR}"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Copy all schemas to the build folder.
|
||||||
|
foreach(schema_file ${all_schema_files})
|
||||||
|
add_custom_command(
|
||||||
|
TARGET
|
||||||
|
${GSETTINGS_TARGET}
|
||||||
|
COMMAND
|
||||||
|
${CMAKE_COMMAND} -E copy "${schema_file}" "${COMPILE_IN_PLACE_DIR}"
|
||||||
|
COMMENT "Copying schema ${schema_file} to ${COMPILE_IN_PLACE_DIR}"
|
||||||
|
)
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
# Compile schema in-place.
|
||||||
|
add_custom_command(
|
||||||
|
TARGET
|
||||||
|
${GSETTINGS_TARGET}
|
||||||
|
COMMAND
|
||||||
|
${glib_schema_compiler} ${COMPILE_IN_PLACE_DIR}
|
||||||
|
COMMENT "Compiling schemas in folder: ${COMPILE_IN_PLACE_DIR}"
|
||||||
|
)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
# Install and recompile schemas
|
||||||
|
message(STATUS "GSettings schemas will be installed into ${GSETTINGS_DIR}")
|
||||||
|
|
||||||
|
install(
|
||||||
|
FILES
|
||||||
|
${all_schema_files}
|
||||||
|
DESTINATION
|
||||||
|
${GSETTINGS_DIR}
|
||||||
|
OPTIONAL
|
||||||
|
)
|
||||||
|
|
||||||
|
if (GSETTINGS_COMPILE)
|
||||||
|
install(
|
||||||
|
CODE
|
||||||
|
"message (STATUS \"Compiling GSettings schemas\")"
|
||||||
|
)
|
||||||
|
|
||||||
|
install(
|
||||||
|
CODE
|
||||||
|
"execute_process (COMMAND ${glib_schema_compiler} ${GSETTINGS_DIR})"
|
||||||
|
)
|
||||||
|
endif ()
|
||||||
|
endmacro(add_schemas)
|
||||||
|
|
||||||
36
cmake/ParseArguments.cmake
Normal file
36
cmake/ParseArguments.cmake
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
##
|
||||||
|
# This is a helper Macro to parse optional arguments in Macros/Functions
|
||||||
|
# It has been taken from the public CMake wiki.
|
||||||
|
# See http://www.cmake.org/Wiki/CMakeMacroParseArguments for documentation and
|
||||||
|
# licensing.
|
||||||
|
##
|
||||||
|
macro(parse_arguments prefix arg_names option_names)
|
||||||
|
set(DEFAULT_ARGS)
|
||||||
|
foreach(arg_name ${arg_names})
|
||||||
|
set(${prefix}_${arg_name})
|
||||||
|
endforeach(arg_name)
|
||||||
|
foreach(option ${option_names})
|
||||||
|
set(${prefix}_${option} FALSE)
|
||||||
|
endforeach(option)
|
||||||
|
|
||||||
|
set(current_arg_name DEFAULT_ARGS)
|
||||||
|
set(current_arg_list)
|
||||||
|
foreach(arg ${ARGN})
|
||||||
|
set(larg_names ${arg_names})
|
||||||
|
list(FIND larg_names "${arg}" is_arg_name)
|
||||||
|
if(is_arg_name GREATER -1)
|
||||||
|
set(${prefix}_${current_arg_name} ${current_arg_list})
|
||||||
|
set(current_arg_name ${arg})
|
||||||
|
set(current_arg_list)
|
||||||
|
else(is_arg_name GREATER -1)
|
||||||
|
set(loption_names ${option_names})
|
||||||
|
list(FIND loption_names "${arg}" is_option)
|
||||||
|
if(is_option GREATER -1)
|
||||||
|
set(${prefix}_${arg} TRUE)
|
||||||
|
else(is_option GREATER -1)
|
||||||
|
set(current_arg_list ${current_arg_list} ${arg})
|
||||||
|
endif(is_option GREATER -1)
|
||||||
|
endif(is_arg_name GREATER -1)
|
||||||
|
endforeach(arg)
|
||||||
|
set(${prefix}_${current_arg_name} ${current_arg_list})
|
||||||
|
endmacro(parse_arguments)
|
||||||
173
cmake/README.rst
Normal file
173
cmake/README.rst
Normal file
|
|
@ -0,0 +1,173 @@
|
||||||
|
==========
|
||||||
|
Vala CMake
|
||||||
|
==========
|
||||||
|
:Author:
|
||||||
|
Jakob Westhoff
|
||||||
|
:Version:
|
||||||
|
Draft
|
||||||
|
|
||||||
|
|
||||||
|
Overview
|
||||||
|
========
|
||||||
|
|
||||||
|
Vala CMake is a collection of macros for the CMake_ build system to allow the
|
||||||
|
creation and management of projects developed using the Vala_ programming
|
||||||
|
language or its "Genie" flavor (less tested).
|
||||||
|
|
||||||
|
|
||||||
|
Installation
|
||||||
|
============
|
||||||
|
|
||||||
|
To use the Vala macros in your own project you need to copy the macro files to
|
||||||
|
an arbitrary folder in your projects directory and reference them in your
|
||||||
|
``CMakeLists.txt`` file.
|
||||||
|
|
||||||
|
Assuming the macros are stored under ``cmake/vala`` in your projects folder you
|
||||||
|
need to add the following information to your base ``CMakeLists.txt``::
|
||||||
|
|
||||||
|
list(APPEND CMAKE_MODULE_PATH
|
||||||
|
${CMAKE_SOURCE_DIR}/cmake/vala
|
||||||
|
)
|
||||||
|
|
||||||
|
After the new module path as been added you can simply include the provided
|
||||||
|
modules or use the provided find routines.
|
||||||
|
|
||||||
|
|
||||||
|
Finding Vala
|
||||||
|
============
|
||||||
|
|
||||||
|
The find module for vala works like any other Find module in CMake.
|
||||||
|
You can use it by simply calling the usual ``find_package`` function. Default
|
||||||
|
parameters like ``REQUIRED`` and ``QUIETLY`` are supported.
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
find_package(Vala REQUIRED)
|
||||||
|
|
||||||
|
After a successful call to the find_package function the following variables
|
||||||
|
will be set:
|
||||||
|
|
||||||
|
VALA_FOUND
|
||||||
|
Whether the vala compiler has been found or not
|
||||||
|
|
||||||
|
VALA_EXECUTABLE
|
||||||
|
Full path to the valac executable if it has been found
|
||||||
|
|
||||||
|
VALA_VERSION
|
||||||
|
Version number of the available valac
|
||||||
|
|
||||||
|
|
||||||
|
Precompiling Vala sources
|
||||||
|
=========================
|
||||||
|
|
||||||
|
CMake is mainly supposed to handle c or c++ based projects. Luckily every vala
|
||||||
|
program is translated into plain c code using the vala compiler, followed by
|
||||||
|
normal compilation of the generated c program using gcc.
|
||||||
|
|
||||||
|
The macro ``vala_precompile`` uses that fact to create c files from your .vala
|
||||||
|
sources for further CMake processing.
|
||||||
|
|
||||||
|
The first parameter provided is a variable, which will be filled with a list of
|
||||||
|
c files outputted by the vala compiler. This list can than be used in
|
||||||
|
conjunction with functions like ``add_executable`` or others to create the
|
||||||
|
necessary compile rules with CMake.
|
||||||
|
|
||||||
|
The initial variable is followed by a list of .vala files to be compiled.
|
||||||
|
Please take care to add every vala file belonging to the currently compiled
|
||||||
|
project or library as Vala will otherwise not be able to resolve all
|
||||||
|
dependencies.
|
||||||
|
|
||||||
|
The following sections may be specified afterwards to provide certain options
|
||||||
|
to the vala compiler:
|
||||||
|
|
||||||
|
PACKAGES
|
||||||
|
A list of vala packages/libraries to be used during the compile cycle. The
|
||||||
|
package names are exactly the same, as they would be passed to the valac
|
||||||
|
"--pkg=" option.
|
||||||
|
|
||||||
|
OPTIONS
|
||||||
|
A list of optional options to be passed to the valac executable. This can be
|
||||||
|
used to pass "--thread" for example to enable multi-threading support.
|
||||||
|
|
||||||
|
DIRECTORY
|
||||||
|
Specify the directory where the output source files will be stored. If
|
||||||
|
ommitted, the source files will be stored in CMAKE_CURRENT_BINARY_DIR.
|
||||||
|
|
||||||
|
CUSTOM_VAPIS
|
||||||
|
A list of custom vapi files to be included for compilation. This can be
|
||||||
|
useful to include freshly created vala libraries without having to install
|
||||||
|
them in the system.
|
||||||
|
|
||||||
|
GENERATE_VAPI
|
||||||
|
Pass all the needed flags to the compiler to create an internal vapi for
|
||||||
|
the compiled library. The provided name will be used for this and a
|
||||||
|
<provided_name>.vapi file will be created.
|
||||||
|
|
||||||
|
GENERATE_HEADER
|
||||||
|
Let the compiler generate a header file for the compiled code. There will
|
||||||
|
be a header file as well as an internal header file being generated called
|
||||||
|
<provided_name>.h and <provided_name>_internal.h
|
||||||
|
|
||||||
|
The following call is a simple example to the vala_precompile macro showing an
|
||||||
|
example to every of the optional sections::
|
||||||
|
|
||||||
|
vala_precompile(VALA_C
|
||||||
|
source1.vala
|
||||||
|
source2.vala
|
||||||
|
source3.vala
|
||||||
|
PACKAGES
|
||||||
|
gtk+-2.0
|
||||||
|
gio-1.0
|
||||||
|
posix
|
||||||
|
OPTIONS
|
||||||
|
--thread
|
||||||
|
CUSTOM_VAPIS
|
||||||
|
some_vapi.vapi
|
||||||
|
GENERATE_VAPI
|
||||||
|
myvapi
|
||||||
|
GENERATE_HEADER
|
||||||
|
myheader
|
||||||
|
)
|
||||||
|
|
||||||
|
Most important is the variable VALA_C which will contain all the generated c
|
||||||
|
file names after the call. The easiest way to use this information is to tell
|
||||||
|
CMake to create an executable out of it.
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
add_executable(myexecutable ${VALA_C})
|
||||||
|
|
||||||
|
|
||||||
|
Further reading
|
||||||
|
===============
|
||||||
|
|
||||||
|
The `Pdf Presenter Console`__ , which is a vala based project of mine, makes
|
||||||
|
heavy usage of the here described macros. To look at a real world example of
|
||||||
|
these macros the mentioned project is the right place to take a look. The svn
|
||||||
|
trunk of it can be found at::
|
||||||
|
|
||||||
|
svn://pureenergy.cc/pdf_presenter_console/trunk
|
||||||
|
|
||||||
|
|
||||||
|
__ http://westhoffswelt.de/projects/pdf_presenter_console.html
|
||||||
|
|
||||||
|
|
||||||
|
Acknowledgments
|
||||||
|
===============
|
||||||
|
|
||||||
|
Thanks go out to Florian Sowade, a fellow local PHP-Usergroupie, who helped me
|
||||||
|
a lot with the initial version of this macros and always answered my mostly
|
||||||
|
dumb CMake questions.
|
||||||
|
|
||||||
|
.. _CMake: http://cmake.org
|
||||||
|
.. _Vala: http://live.gnome.org/Vala
|
||||||
|
.. _Genie: http://live.gnome.org/Genie
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
..
|
||||||
|
Local Variables:
|
||||||
|
mode: rst
|
||||||
|
fill-column: 79
|
||||||
|
End:
|
||||||
|
vim: et syn=rst tw=79
|
||||||
187
cmake/ValaPrecompile.cmake
Normal file
187
cmake/ValaPrecompile.cmake
Normal file
|
|
@ -0,0 +1,187 @@
|
||||||
|
##
|
||||||
|
# Copyright 2009-2010 Jakob Westhoff. All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are met:
|
||||||
|
#
|
||||||
|
# 1. Redistributions of source code must retain the above copyright notice,
|
||||||
|
# this list of conditions and the following disclaimer.
|
||||||
|
#
|
||||||
|
# 2. 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 JAKOB WESTHOFF ``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 JAKOB WESTHOFF 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.
|
||||||
|
#
|
||||||
|
# The views and conclusions contained in the software and documentation are those
|
||||||
|
# of the authors and should not be interpreted as representing official policies,
|
||||||
|
# either expressed or implied, of Jakob Westhoff
|
||||||
|
##
|
||||||
|
|
||||||
|
include(ParseArguments)
|
||||||
|
find_package(Vala REQUIRED)
|
||||||
|
|
||||||
|
##
|
||||||
|
# Compile vala files to their c equivalents for further processing.
|
||||||
|
#
|
||||||
|
# The "vala_precompile" macro takes care of calling the valac executable on the
|
||||||
|
# given source to produce c files which can then be processed further using
|
||||||
|
# default cmake functions.
|
||||||
|
#
|
||||||
|
# The first parameter provided is a variable, which will be filled with a list
|
||||||
|
# of c files outputted by the vala compiler. This list can than be used in
|
||||||
|
# conjuction with functions like "add_executable" or others to create the
|
||||||
|
# neccessary compile rules with CMake.
|
||||||
|
#
|
||||||
|
# The initial variable is followed by a list of .vala files to be compiled.
|
||||||
|
# Please take care to add every vala file belonging to the currently compiled
|
||||||
|
# project or library as Vala will otherwise not be able to resolve all
|
||||||
|
# dependencies.
|
||||||
|
#
|
||||||
|
# The following sections may be specified afterwards to provide certain options
|
||||||
|
# to the vala compiler:
|
||||||
|
#
|
||||||
|
# PACKAGES
|
||||||
|
# A list of vala packages/libraries to be used during the compile cycle. The
|
||||||
|
# package names are exactly the same, as they would be passed to the valac
|
||||||
|
# "--pkg=" option.
|
||||||
|
#
|
||||||
|
# OPTIONS
|
||||||
|
# A list of optional options to be passed to the valac executable. This can be
|
||||||
|
# used to pass "--thread" for example to enable multi-threading support.
|
||||||
|
#
|
||||||
|
# CUSTOM_VAPIS
|
||||||
|
# A list of custom vapi files to be included for compilation. This can be
|
||||||
|
# useful to include freshly created vala libraries without having to install
|
||||||
|
# them in the system.
|
||||||
|
#
|
||||||
|
# GENERATE_VAPI
|
||||||
|
# Pass all the needed flags to the compiler to create an internal vapi for
|
||||||
|
# the compiled library. The provided name will be used for this and a
|
||||||
|
# <provided_name>.vapi file will be created.
|
||||||
|
#
|
||||||
|
# GENERATE_HEADER
|
||||||
|
# Let the compiler generate a header file for the compiled code. There will
|
||||||
|
# be a header file as well as an internal header file being generated called
|
||||||
|
# <provided_name>.h and <provided_name>_internal.h
|
||||||
|
#
|
||||||
|
# The following call is a simple example to the vala_precompile macro showing
|
||||||
|
# an example to every of the optional sections:
|
||||||
|
#
|
||||||
|
# vala_precompile(VALA_C
|
||||||
|
# source1.vala
|
||||||
|
# source2.vala
|
||||||
|
# source3.vala
|
||||||
|
# PACKAGES
|
||||||
|
# gtk+-2.0
|
||||||
|
# gio-1.0
|
||||||
|
# posix
|
||||||
|
# DIRECTORY
|
||||||
|
# gen
|
||||||
|
# OPTIONS
|
||||||
|
# --thread
|
||||||
|
# CUSTOM_VAPIS
|
||||||
|
# some_vapi.vapi
|
||||||
|
# GENERATE_VAPI
|
||||||
|
# myvapi
|
||||||
|
# GENERATE_HEADER
|
||||||
|
# myheader
|
||||||
|
# )
|
||||||
|
#
|
||||||
|
# Most important is the variable VALA_C which will contain all the generated c
|
||||||
|
# file names after the call.
|
||||||
|
##
|
||||||
|
|
||||||
|
macro(vala_precompile output)
|
||||||
|
parse_arguments(ARGS "PACKAGES;OPTIONS;DIRECTORY;GENERATE_HEADER;GENERATE_VAPI;CUSTOM_VAPIS" "" ${ARGN})
|
||||||
|
if(ARGS_DIRECTORY)
|
||||||
|
set(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${ARGS_DIRECTORY})
|
||||||
|
else(ARGS_DIRECTORY)
|
||||||
|
set(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||||
|
endif(ARGS_DIRECTORY)
|
||||||
|
include_directories(${DIRECTORY})
|
||||||
|
set(vala_pkg_opts "")
|
||||||
|
foreach(pkg ${ARGS_PACKAGES})
|
||||||
|
list(APPEND vala_pkg_opts "--pkg=${pkg}")
|
||||||
|
endforeach(pkg ${ARGS_PACKAGES})
|
||||||
|
set(in_files "")
|
||||||
|
set(out_files "")
|
||||||
|
set(${output} "")
|
||||||
|
foreach(src ${ARGS_DEFAULT_ARGS})
|
||||||
|
string(REPLACE ${CMAKE_CURRENT_SOURCE_DIR}/ "" src ${src})
|
||||||
|
string(REGEX MATCH "^/" IS_MATCHED ${src})
|
||||||
|
if(${IS_MATCHED} MATCHES "/")
|
||||||
|
list(APPEND in_files "${src}")
|
||||||
|
else()
|
||||||
|
list(APPEND in_files "${CMAKE_CURRENT_SOURCE_DIR}/${src}")
|
||||||
|
endif()
|
||||||
|
string(REPLACE ".vala" ".c" src ${src})
|
||||||
|
string(REPLACE ".gs" ".c" src ${src})
|
||||||
|
if(${IS_MATCHED} MATCHES "/")
|
||||||
|
get_filename_component(VALA_FILE_NAME ${src} NAME)
|
||||||
|
set(out_file "${CMAKE_CURRENT_BINARY_DIR}/${VALA_FILE_NAME}")
|
||||||
|
list(APPEND out_files "${CMAKE_CURRENT_BINARY_DIR}/${VALA_FILE_NAME}")
|
||||||
|
else()
|
||||||
|
set(out_file "${DIRECTORY}/${src}")
|
||||||
|
list(APPEND out_files "${DIRECTORY}/${src}")
|
||||||
|
endif()
|
||||||
|
list(APPEND ${output} ${out_file})
|
||||||
|
endforeach(src ${ARGS_DEFAULT_ARGS})
|
||||||
|
|
||||||
|
set(custom_vapi_arguments "")
|
||||||
|
if(ARGS_CUSTOM_VAPIS)
|
||||||
|
foreach(vapi ${ARGS_CUSTOM_VAPIS})
|
||||||
|
if(${vapi} MATCHES ${CMAKE_SOURCE_DIR} OR ${vapi} MATCHES ${CMAKE_BINARY_DIR})
|
||||||
|
list(APPEND custom_vapi_arguments ${vapi})
|
||||||
|
else (${vapi} MATCHES ${CMAKE_SOURCE_DIR} OR ${vapi} MATCHES ${CMAKE_BINARY_DIR})
|
||||||
|
list(APPEND custom_vapi_arguments ${CMAKE_CURRENT_SOURCE_DIR}/${vapi})
|
||||||
|
endif(${vapi} MATCHES ${CMAKE_SOURCE_DIR} OR ${vapi} MATCHES ${CMAKE_BINARY_DIR})
|
||||||
|
endforeach(vapi ${ARGS_CUSTOM_VAPIS})
|
||||||
|
endif(ARGS_CUSTOM_VAPIS)
|
||||||
|
|
||||||
|
set(vapi_arguments "")
|
||||||
|
if(ARGS_GENERATE_VAPI)
|
||||||
|
list(APPEND out_files "${DIRECTORY}/${ARGS_GENERATE_VAPI}.vapi")
|
||||||
|
set(vapi_arguments "--internal-vapi=${ARGS_GENERATE_VAPI}.vapi")
|
||||||
|
|
||||||
|
# Header and internal header is needed to generate internal vapi
|
||||||
|
if (NOT ARGS_GENERATE_HEADER)
|
||||||
|
set(ARGS_GENERATE_HEADER ${ARGS_GENERATE_VAPI})
|
||||||
|
endif(NOT ARGS_GENERATE_HEADER)
|
||||||
|
endif(ARGS_GENERATE_VAPI)
|
||||||
|
|
||||||
|
set(header_arguments "")
|
||||||
|
if(ARGS_GENERATE_HEADER)
|
||||||
|
list(APPEND out_files "${DIRECTORY}/${ARGS_GENERATE_HEADER}.h")
|
||||||
|
list(APPEND out_files "${DIRECTORY}/${ARGS_GENERATE_HEADER}_internal.h")
|
||||||
|
list(APPEND header_arguments "--header=${DIRECTORY}/${ARGS_GENERATE_HEADER}.h")
|
||||||
|
list(APPEND header_arguments "--internal-header=${DIRECTORY}/${ARGS_GENERATE_HEADER}_internal.h")
|
||||||
|
endif(ARGS_GENERATE_HEADER)
|
||||||
|
|
||||||
|
add_custom_command(OUTPUT ${out_files}
|
||||||
|
COMMAND
|
||||||
|
${VALA_EXECUTABLE}
|
||||||
|
ARGS
|
||||||
|
"-C"
|
||||||
|
${header_arguments}
|
||||||
|
${vapi_arguments}
|
||||||
|
"-b" ${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
"-d" ${DIRECTORY}
|
||||||
|
${vala_pkg_opts}
|
||||||
|
${ARGS_OPTIONS}
|
||||||
|
${in_files}
|
||||||
|
${custom_vapi_arguments}
|
||||||
|
DEPENDS
|
||||||
|
${in_files}
|
||||||
|
${ARGS_CUSTOM_VAPIS}
|
||||||
|
)
|
||||||
|
endmacro(vala_precompile)
|
||||||
96
cmake/ValaVersion.cmake
Normal file
96
cmake/ValaVersion.cmake
Normal file
|
|
@ -0,0 +1,96 @@
|
||||||
|
##
|
||||||
|
# Copyright 2009-2010 Jakob Westhoff. All rights reserved.
|
||||||
|
#
|
||||||
|
# Redistribution and use in source and binary forms, with or without
|
||||||
|
# modification, are permitted provided that the following conditions are met:
|
||||||
|
#
|
||||||
|
# 1. Redistributions of source code must retain the above copyright notice,
|
||||||
|
# this list of conditions and the following disclaimer.
|
||||||
|
#
|
||||||
|
# 2. 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 JAKOB WESTHOFF ``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 JAKOB WESTHOFF 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.
|
||||||
|
#
|
||||||
|
# The views and conclusions contained in the software and documentation are those
|
||||||
|
# of the authors and should not be interpreted as representing official policies,
|
||||||
|
# either expressed or implied, of Jakob Westhoff
|
||||||
|
##
|
||||||
|
|
||||||
|
include(ParseArguments)
|
||||||
|
find_package(Vala REQUIRED)
|
||||||
|
|
||||||
|
##
|
||||||
|
# Ensure a certain valac version is available
|
||||||
|
#
|
||||||
|
# The initial argument is the version to check for
|
||||||
|
#
|
||||||
|
# It may be followed by a optional parameter to specifiy a version range. The
|
||||||
|
# following options are valid:
|
||||||
|
#
|
||||||
|
# EXACT
|
||||||
|
# Vala needs to be available in the exact version given
|
||||||
|
#
|
||||||
|
# MINIMUM
|
||||||
|
# The provided version is the minimum version. Therefore Vala needs to be
|
||||||
|
# available in the given version or any higher version
|
||||||
|
#
|
||||||
|
# MAXIMUM
|
||||||
|
# The provided version is the maximum. Therefore Vala needs to be available
|
||||||
|
# in the given version or any version older than this
|
||||||
|
#
|
||||||
|
# If no option is specified the version will be treated as a minimal version.
|
||||||
|
##
|
||||||
|
macro(ensure_vala_version version)
|
||||||
|
parse_arguments(ARGS "" "MINIMUM;MAXIMUM;EXACT" ${ARGN})
|
||||||
|
set(compare_message "")
|
||||||
|
set(error_message "")
|
||||||
|
if(ARGS_MINIMUM)
|
||||||
|
set(compare_message "a minimum ")
|
||||||
|
set(error_message "or greater ")
|
||||||
|
elseif(ARGS_MAXIMUM)
|
||||||
|
set(compare_message "a maximum ")
|
||||||
|
set(error_message "or less ")
|
||||||
|
endif(ARGS_MINIMUM)
|
||||||
|
|
||||||
|
message(STATUS
|
||||||
|
"checking for ${compare_message}Vala version of ${version}"
|
||||||
|
)
|
||||||
|
|
||||||
|
unset(version_accepted)
|
||||||
|
|
||||||
|
# MINIMUM is the default if no option is specified
|
||||||
|
if(ARGS_EXACT)
|
||||||
|
if(${VALA_VERSION} VERSION_EQUAL ${version} )
|
||||||
|
set(version_accepted TRUE)
|
||||||
|
endif(${VALA_VERSION} VERSION_EQUAL ${version})
|
||||||
|
elseif(ARGS_MAXIMUM)
|
||||||
|
if(${VALA_VERSION} VERSION_LESS ${version} OR ${VALA_VERSION} VERSION_EQUAL ${version})
|
||||||
|
set(version_accepted TRUE)
|
||||||
|
endif(${VALA_VERSION} VERSION_LESS ${version} OR ${VALA_VERSION} VERSION_EQUAL ${version})
|
||||||
|
else(ARGS_MAXIMUM)
|
||||||
|
if(${VALA_VERSION} VERSION_GREATER ${version} OR ${VALA_VERSION} VERSION_EQUAL ${version})
|
||||||
|
set(version_accepted TRUE)
|
||||||
|
endif(${VALA_VERSION} VERSION_GREATER ${version} OR ${VALA_VERSION} VERSION_EQUAL ${version})
|
||||||
|
endif(ARGS_EXACT)
|
||||||
|
|
||||||
|
if (NOT version_accepted)
|
||||||
|
message(FATAL_ERROR
|
||||||
|
"Vala version ${version} ${error_message}is required."
|
||||||
|
)
|
||||||
|
endif(NOT version_accepted)
|
||||||
|
|
||||||
|
message(STATUS
|
||||||
|
" found Vala, version ${VALA_VERSION}"
|
||||||
|
)
|
||||||
|
endmacro(ensure_vala_version)
|
||||||
33
cmake_uninstall.cmake.in
Normal file
33
cmake_uninstall.cmake.in
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
# Generic uninstall script from the CMake manual
|
||||||
|
# Updated for CMake 2.8
|
||||||
|
|
||||||
|
cmake_policy(PUSH)
|
||||||
|
|
||||||
|
# Ignore empty list items.
|
||||||
|
cmake_policy(SET CMP0007 OLD)
|
||||||
|
|
||||||
|
if (NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
|
||||||
|
message(FATAL_ERROR "Cannot find install manifest: \"@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt\"")
|
||||||
|
endif(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt")
|
||||||
|
|
||||||
|
file(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
|
||||||
|
string(REGEX REPLACE "\n" ";" files "${files}")
|
||||||
|
list(REVERSE files)
|
||||||
|
foreach (file ${files})
|
||||||
|
message(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"")
|
||||||
|
if (EXISTS "$ENV{DESTDIR}${file}")
|
||||||
|
execute_process(
|
||||||
|
COMMAND @CMAKE_COMMAND@ -E remove "$ENV{DESTDIR}${file}"
|
||||||
|
OUTPUT_VARIABLE rm_out
|
||||||
|
RESULT_VARIABLE rm_retval
|
||||||
|
)
|
||||||
|
if(NOT ${rm_retval} EQUAL 0)
|
||||||
|
message(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
|
||||||
|
endif (NOT ${rm_retval} EQUAL 0)
|
||||||
|
else (EXISTS "$ENV{DESTDIR}${file}")
|
||||||
|
message(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.")
|
||||||
|
endif (EXISTS "$ENV{DESTDIR}${file}")
|
||||||
|
endforeach(file)
|
||||||
|
|
||||||
|
cmake_policy(POP)
|
||||||
|
|
||||||
9
icons/CMakeLists.txt
Normal file
9
icons/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
set(ICONS_DEST share/geary/icons)
|
||||||
|
|
||||||
|
install(FILES archive-icon.png DESTINATION ${ICONS_DEST})
|
||||||
|
install(FILES geary.png DESTINATION ${ICONS_DEST})
|
||||||
|
install(FILES multiple-tags.png DESTINATION ${ICONS_DEST})
|
||||||
|
install(FILES non-starred-grey.png DESTINATION ${ICONS_DEST})
|
||||||
|
install(FILES one-tag.png DESTINATION ${ICONS_DEST})
|
||||||
|
install(FILES starred.png DESTINATION ${ICONS_DEST})
|
||||||
|
|
||||||
4
sql/CMakeLists.txt
Normal file
4
sql/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
set(SQL_DEST share/geary/sql)
|
||||||
|
|
||||||
|
install(FILES Create.sql DESTINATION ${SQL_DEST})
|
||||||
|
|
||||||
398
src/CMakeLists.txt
Normal file
398
src/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,398 @@
|
||||||
|
# Geary build script
|
||||||
|
# Copyright 2011-2012 Yorba Foundation
|
||||||
|
|
||||||
|
set(COMMON_SRC
|
||||||
|
common/common-arrays.vala
|
||||||
|
common/common-async.vala
|
||||||
|
common/common-date.vala
|
||||||
|
common/common-intl.vala
|
||||||
|
common/common-yorba-application.vala
|
||||||
|
)
|
||||||
|
|
||||||
|
set(ENGINE_SRC
|
||||||
|
engine/api/geary-account.vala
|
||||||
|
engine/api/geary-account-information.vala
|
||||||
|
engine/api/geary-batch-operations.vala
|
||||||
|
engine/api/geary-composed-email.vala
|
||||||
|
engine/api/geary-conversation.vala
|
||||||
|
engine/api/geary-conversations.vala
|
||||||
|
engine/api/geary-credentials.vala
|
||||||
|
engine/api/geary-email-flag.vala
|
||||||
|
engine/api/geary-email-flags.vala
|
||||||
|
engine/api/geary-email-identifier.vala
|
||||||
|
engine/api/geary-email-properties.vala
|
||||||
|
engine/api/geary-email.vala
|
||||||
|
engine/api/geary-endpoint.vala
|
||||||
|
engine/api/geary-engine-error.vala
|
||||||
|
engine/api/geary-engine.vala
|
||||||
|
engine/api/geary-folder-path.vala
|
||||||
|
engine/api/geary-folder.vala
|
||||||
|
engine/api/geary-logging.vala
|
||||||
|
engine/api/geary-personality.vala
|
||||||
|
engine/api/geary-service-provider.vala
|
||||||
|
engine/api/geary-special-folder.vala
|
||||||
|
|
||||||
|
engine/common/common-message-data.vala
|
||||||
|
|
||||||
|
engine/imap/api/imap-account.vala
|
||||||
|
engine/imap/api/imap-email-flags.vala
|
||||||
|
engine/imap/api/imap-email-identifier.vala
|
||||||
|
engine/imap/api/imap-email-properties.vala
|
||||||
|
engine/imap/api/imap-folder-properties.vala
|
||||||
|
engine/imap/api/imap-folder.vala
|
||||||
|
engine/imap/command/imap-command-response.vala
|
||||||
|
engine/imap/command/imap-commands.vala
|
||||||
|
engine/imap/command/imap-command.vala
|
||||||
|
engine/imap/command/imap-fetch-command.vala
|
||||||
|
engine/imap/decoders/imap-command-results.vala
|
||||||
|
engine/imap/decoders/imap-fetch-data-decoder.vala
|
||||||
|
engine/imap/decoders/imap-fetch-results.vala
|
||||||
|
engine/imap/decoders/imap-list-results.vala
|
||||||
|
engine/imap/decoders/imap-select-examine-results.vala
|
||||||
|
engine/imap/decoders/imap-status-results.vala
|
||||||
|
engine/imap/imap-error.vala
|
||||||
|
engine/imap/message/imap-data-format.vala
|
||||||
|
engine/imap/message/imap-fetch-data-type.vala
|
||||||
|
engine/imap/message/imap-fetch-body-data-type.vala
|
||||||
|
engine/imap/message/imap-flag.vala
|
||||||
|
engine/imap/message/imap-message-data.vala
|
||||||
|
engine/imap/message/imap-message-set.vala
|
||||||
|
engine/imap/message/imap-parameter.vala
|
||||||
|
engine/imap/message/imap-tag.vala
|
||||||
|
engine/imap/response/imap-continuation-response.vala
|
||||||
|
engine/imap/response/imap-response-code-type.vala
|
||||||
|
engine/imap/response/imap-response-code.vala
|
||||||
|
engine/imap/response/imap-server-data-type.vala
|
||||||
|
engine/imap/response/imap-server-data.vala
|
||||||
|
engine/imap/response/imap-server-response.vala
|
||||||
|
engine/imap/response/imap-status-data-type.vala
|
||||||
|
engine/imap/response/imap-status-response.vala
|
||||||
|
engine/imap/response/imap-status.vala
|
||||||
|
engine/imap/response/imap-unsolicited-server-data.vala
|
||||||
|
engine/imap/transport/imap-client-connection.vala
|
||||||
|
engine/imap/transport/imap-client-session-manager.vala
|
||||||
|
engine/imap/transport/imap-client-session.vala
|
||||||
|
engine/imap/transport/imap-deserializer.vala
|
||||||
|
engine/imap/transport/imap-mailbox.vala
|
||||||
|
engine/imap/transport/imap-serializable.vala
|
||||||
|
engine/imap/transport/imap-serializer.vala
|
||||||
|
|
||||||
|
engine/impl/geary-abstract-account.vala
|
||||||
|
engine/impl/geary-abstract-folder.vala
|
||||||
|
engine/impl/geary-email-flag-watcher.vala
|
||||||
|
engine/impl/geary-email-prefetcher.vala
|
||||||
|
engine/impl/geary-engine-account.vala
|
||||||
|
engine/impl/geary-generic-imap-account.vala
|
||||||
|
engine/impl/geary-generic-imap-folder.vala
|
||||||
|
engine/impl/geary-gmail-account.vala
|
||||||
|
engine/impl/geary-yahoo-account.vala
|
||||||
|
engine/impl/geary-other-account.vala
|
||||||
|
engine/impl/geary-receive-replay-operations.vala
|
||||||
|
engine/impl/geary-receive-replay-queue.vala
|
||||||
|
engine/impl/geary-send-replay-operations.vala
|
||||||
|
engine/impl/geary-send-replay-queue.vala
|
||||||
|
|
||||||
|
engine/nonblocking/nonblocking-abstract-semaphore.vala
|
||||||
|
engine/nonblocking/nonblocking-batch.vala
|
||||||
|
engine/nonblocking/nonblocking-mailbox.vala
|
||||||
|
engine/nonblocking/nonblocking-mutex.vala
|
||||||
|
engine/nonblocking/nonblocking-variants.vala
|
||||||
|
|
||||||
|
engine/rfc822/rfc822-error.vala
|
||||||
|
engine/rfc822/rfc822-mailbox-addresses.vala
|
||||||
|
engine/rfc822/rfc822-mailbox-address.vala
|
||||||
|
engine/rfc822/rfc822-message.vala
|
||||||
|
engine/rfc822/rfc822-message-data.vala
|
||||||
|
engine/rfc822/rfc822-utils.vala
|
||||||
|
|
||||||
|
engine/smtp/smtp-abstract-authenticator.vala
|
||||||
|
engine/smtp/smtp-authenticator.vala
|
||||||
|
engine/smtp/smtp-client-connection.vala
|
||||||
|
engine/smtp/smtp-client-session.vala
|
||||||
|
engine/smtp/smtp-command.vala
|
||||||
|
engine/smtp/smtp-data-format.vala
|
||||||
|
engine/smtp/smtp-error.vala
|
||||||
|
engine/smtp/smtp-greeting.vala
|
||||||
|
engine/smtp/smtp-login-authenticator.vala
|
||||||
|
engine/smtp/smtp-plain-authenticator.vala
|
||||||
|
engine/smtp/smtp-request.vala
|
||||||
|
engine/smtp/smtp-response.vala
|
||||||
|
engine/smtp/smtp-response-code.vala
|
||||||
|
engine/smtp/smtp-response-line.vala
|
||||||
|
|
||||||
|
engine/sqlite/abstract/sqlite-database.vala
|
||||||
|
engine/sqlite/abstract/sqlite-row.vala
|
||||||
|
engine/sqlite/abstract/sqlite-table.vala
|
||||||
|
engine/sqlite/abstract/sqlite-transaction.vala
|
||||||
|
engine/sqlite/api/sqlite-account.vala
|
||||||
|
engine/sqlite/api/sqlite-folder.vala
|
||||||
|
engine/sqlite/email/sqlite-folder-row.vala
|
||||||
|
engine/sqlite/email/sqlite-folder-table.vala
|
||||||
|
engine/sqlite/email/sqlite-mail-database.vala
|
||||||
|
engine/sqlite/email/sqlite-message-location-row.vala
|
||||||
|
engine/sqlite/email/sqlite-message-location-table.vala
|
||||||
|
engine/sqlite/email/sqlite-message-row.vala
|
||||||
|
engine/sqlite/email/sqlite-message-table.vala
|
||||||
|
engine/sqlite/imap/sqlite-imap-database.vala
|
||||||
|
engine/sqlite/imap/sqlite-imap-folder-properties-row.vala
|
||||||
|
engine/sqlite/imap/sqlite-imap-folder-properties-table.vala
|
||||||
|
engine/sqlite/imap/sqlite-imap-message-properties-row.vala
|
||||||
|
engine/sqlite/imap/sqlite-imap-message-properties-table.vala
|
||||||
|
|
||||||
|
engine/state/state-machine-descriptor.vala
|
||||||
|
engine/state/state-machine.vala
|
||||||
|
engine/state/state-mapping.vala
|
||||||
|
|
||||||
|
engine/util/util-collection.vala
|
||||||
|
engine/util/util-converter.vala
|
||||||
|
engine/util/util-html.vala
|
||||||
|
engine/util/util-inet.vala
|
||||||
|
engine/util/util-interfaces.vala
|
||||||
|
engine/util/util-memory.vala
|
||||||
|
engine/util/util-numeric.vala
|
||||||
|
engine/util/util-reference-semantics.vala
|
||||||
|
engine/util/util-scheduler.vala
|
||||||
|
engine/util/util-singleton.vala
|
||||||
|
engine/util/util-stream.vala
|
||||||
|
engine/util/util-string.vala
|
||||||
|
engine/util/util-trillian.vala
|
||||||
|
)
|
||||||
|
|
||||||
|
set(CLIENT_SRC
|
||||||
|
client/geary-application.vala
|
||||||
|
client/geary-config.vala
|
||||||
|
client/geary-controller.vala
|
||||||
|
client/main.vala
|
||||||
|
|
||||||
|
client/ui/composer-window.vala
|
||||||
|
client/ui/geary-login.vala
|
||||||
|
client/ui/email-entry.vala
|
||||||
|
client/ui/icon-factory.vala
|
||||||
|
client/ui/folder-list.vala
|
||||||
|
client/ui/main-toolbar.vala
|
||||||
|
client/ui/main-window.vala
|
||||||
|
client/ui/message-list-cell-renderer.vala
|
||||||
|
client/ui/message-list-store.vala
|
||||||
|
client/ui/message-list-view.vala
|
||||||
|
client/ui/message-viewer.vala
|
||||||
|
client/ui/preferences-dialog.vala
|
||||||
|
|
||||||
|
client/ui/sidebar/sidebar-branch.vala
|
||||||
|
client/ui/sidebar/sidebar-common.vala
|
||||||
|
client/ui/sidebar/sidebar-entry.vala
|
||||||
|
client/ui/sidebar/sidebar-tree.vala
|
||||||
|
|
||||||
|
client/util/util-email.vala
|
||||||
|
client/util/util-keyring.vala
|
||||||
|
client/util/util-menu.vala
|
||||||
|
)
|
||||||
|
|
||||||
|
set(CONSOLE_SRC
|
||||||
|
console/main.vala
|
||||||
|
)
|
||||||
|
|
||||||
|
set(MAILER_SRC
|
||||||
|
mailer/main.vala
|
||||||
|
)
|
||||||
|
|
||||||
|
set(DBUSSERVICE_SRC
|
||||||
|
dbusservice/controller.vala
|
||||||
|
dbusservice/database.vala
|
||||||
|
dbusservice/dbus-conversation.vala
|
||||||
|
dbusservice/dbus-conversations.vala
|
||||||
|
dbusservice/dbus-email.vala
|
||||||
|
dbusservice/main.vala
|
||||||
|
)
|
||||||
|
|
||||||
|
# Vala
|
||||||
|
find_package(Vala REQUIRED)
|
||||||
|
include(ValaVersion)
|
||||||
|
ensure_vala_version("0.16.0" MINIMUM)
|
||||||
|
include(ValaPrecompile)
|
||||||
|
|
||||||
|
# Packages
|
||||||
|
find_package(PkgConfig)
|
||||||
|
pkg_check_modules(DEPS REQUIRED
|
||||||
|
gthread-2.0
|
||||||
|
glib-2.0>=2.30.0
|
||||||
|
gio-2.0>=2.28.0
|
||||||
|
gtk+-3.0>=3.2.0
|
||||||
|
gee-1.0>=0.6.0
|
||||||
|
unique-3.0>=3.0.0
|
||||||
|
sqlite3>=3.7.4
|
||||||
|
sqlheavy-0.2>=0.2.0
|
||||||
|
gmime-2.4>=2.4.14
|
||||||
|
gnome-keyring-1>=2.32.0
|
||||||
|
webkitgtk-3.0>=1.4.3
|
||||||
|
)
|
||||||
|
|
||||||
|
set(ENGINE_PACKAGES
|
||||||
|
glib-2.0 gee-1.0 gio-2.0 sqlheavy-0.2 gmime-2.4 unique-3.0 posix
|
||||||
|
)
|
||||||
|
|
||||||
|
set(CLIENT_PACKAGES
|
||||||
|
gtk+-3.0 gnome-keyring-1 webkitgtk-3.0
|
||||||
|
)
|
||||||
|
|
||||||
|
set(CONSOLE_PACKAGES
|
||||||
|
gtk+-3.0
|
||||||
|
)
|
||||||
|
|
||||||
|
set(DBUSSERVICE_PACKAGES
|
||||||
|
gee-1.0 glib-2.0
|
||||||
|
)
|
||||||
|
|
||||||
|
set(GSETTINGS_DIR ${CMAKE_SOURCE_DIR}/src/client)
|
||||||
|
|
||||||
|
set(CFLAGS
|
||||||
|
${DEPS_CFLAGS}
|
||||||
|
${DEPS_CFLAGS_OTHER}
|
||||||
|
-D_INSTALL_PREFIX=\"${CMAKE_INSTALL_PREFIX}\"
|
||||||
|
-D_SOURCE_ROOT_DIR=\"${CMAKE_SOURCE_DIR}\"
|
||||||
|
-D_GSETTINGS_DIR=\"${CMAKE_BINARY_DIR}/gsettings\"
|
||||||
|
)
|
||||||
|
|
||||||
|
set(LIB_PATHS ${DEPS_LIBRARY_DIRS})
|
||||||
|
link_directories(${LIB_PATHS})
|
||||||
|
add_definitions(${CFLAGS})
|
||||||
|
|
||||||
|
# Engine (static library used for building)
|
||||||
|
#################################################
|
||||||
|
vala_precompile(ENGINE_VALA_C
|
||||||
|
${ENGINE_SRC}
|
||||||
|
${COMMON_SRC}
|
||||||
|
PACKAGES
|
||||||
|
${CONSOLE_PACKAGES}
|
||||||
|
${ENGINE_PACKAGES}
|
||||||
|
GENERATE_VAPI
|
||||||
|
geary-static
|
||||||
|
OPTIONS
|
||||||
|
--vapidir=${CMAKE_SOURCE_DIR}/vapi
|
||||||
|
--thread
|
||||||
|
--enable-checking
|
||||||
|
--fatal-warnings
|
||||||
|
)
|
||||||
|
|
||||||
|
add_library(geary-static STATIC ${ENGINE_VALA_C})
|
||||||
|
target_link_libraries(geary-static ${DEPS_LIBRARIES} gthread-2.0)
|
||||||
|
|
||||||
|
# Geary client app
|
||||||
|
#################################################
|
||||||
|
vala_precompile(GEARY_VALA_C
|
||||||
|
${CLIENT_SRC}
|
||||||
|
PACKAGES
|
||||||
|
${CLIENT_PACKAGES}
|
||||||
|
${ENGINE_PACKAGES}
|
||||||
|
geary-static
|
||||||
|
OPTIONS
|
||||||
|
--vapidir=${CMAKE_SOURCE_DIR}/vapi
|
||||||
|
--vapidir=${CMAKE_BINARY_DIR}/src
|
||||||
|
--thread
|
||||||
|
--enable-checking
|
||||||
|
--fatal-warnings
|
||||||
|
)
|
||||||
|
|
||||||
|
add_executable(geary ${GEARY_VALA_C})
|
||||||
|
target_link_libraries(geary ${DEPS_LIBRARIES} gthread-2.0 geary-static)
|
||||||
|
install(TARGETS geary RUNTIME DESTINATION bin)
|
||||||
|
add_custom_command(
|
||||||
|
TARGET
|
||||||
|
geary
|
||||||
|
POST_BUILD
|
||||||
|
COMMAND
|
||||||
|
${CMAKE_COMMAND} -E copy geary ${CMAKE_BINARY_DIR}/
|
||||||
|
)
|
||||||
|
|
||||||
|
# GSettings
|
||||||
|
include(GSettings)
|
||||||
|
add_schemas(geary ${GSETTINGS_DIR})
|
||||||
|
|
||||||
|
# Console app
|
||||||
|
#################################################
|
||||||
|
vala_precompile(CONSOLE_VALA_C
|
||||||
|
${CONSOLE_SRC}
|
||||||
|
PACKAGES
|
||||||
|
${CONSOLE_PACKAGES}
|
||||||
|
${ENGINE_PACKAGES}
|
||||||
|
geary-static
|
||||||
|
OPTIONS
|
||||||
|
--vapidir=${CMAKE_SOURCE_DIR}/vapi
|
||||||
|
--vapidir=${CMAKE_BINARY_DIR}/src
|
||||||
|
--thread
|
||||||
|
--enable-checking
|
||||||
|
--fatal-warnings
|
||||||
|
)
|
||||||
|
|
||||||
|
add_executable(geary-console ${CONSOLE_VALA_C})
|
||||||
|
target_link_libraries(geary-console ${DEPS_LIBRARIES} gthread-2.0 geary-static)
|
||||||
|
add_custom_command(
|
||||||
|
TARGET
|
||||||
|
geary-console
|
||||||
|
POST_BUILD
|
||||||
|
COMMAND
|
||||||
|
${CMAKE_COMMAND} -E copy geary-console ${CMAKE_BINARY_DIR}/
|
||||||
|
)
|
||||||
|
|
||||||
|
# Mailer app
|
||||||
|
#################################################
|
||||||
|
vala_precompile(MAILER_VALA_C
|
||||||
|
${MAILER_SRC}
|
||||||
|
PACKAGES
|
||||||
|
${ENGINE_PACKAGES}
|
||||||
|
geary-static
|
||||||
|
OPTIONS
|
||||||
|
--vapidir=${CMAKE_SOURCE_DIR}/vapi
|
||||||
|
--vapidir=${CMAKE_BINARY_DIR}/src
|
||||||
|
--thread
|
||||||
|
--enable-checking
|
||||||
|
--fatal-warnings
|
||||||
|
)
|
||||||
|
|
||||||
|
add_executable(geary-mailer ${MAILER_VALA_C})
|
||||||
|
target_link_libraries(geary-mailer ${DEPS_LIBRARIES} gthread-2.0 geary-static)
|
||||||
|
add_custom_command(
|
||||||
|
TARGET
|
||||||
|
geary-mailer
|
||||||
|
POST_BUILD
|
||||||
|
COMMAND
|
||||||
|
${CMAKE_COMMAND} -E copy geary-mailer ${CMAKE_BINARY_DIR}/
|
||||||
|
)
|
||||||
|
|
||||||
|
# DBus Service
|
||||||
|
#################################################
|
||||||
|
vala_precompile(DBUS_VALA_C
|
||||||
|
${DBUSSERVICE_SRC}
|
||||||
|
PACKAGES
|
||||||
|
${DBUSSERVICE_PACKAGES}
|
||||||
|
${ENGINE_PACKAGES}
|
||||||
|
geary-static
|
||||||
|
OPTIONS
|
||||||
|
--vapidir=${CMAKE_SOURCE_DIR}/vapi
|
||||||
|
--vapidir=${CMAKE_BINARY_DIR}/src
|
||||||
|
--thread
|
||||||
|
--enable-checking
|
||||||
|
--fatal-warnings
|
||||||
|
)
|
||||||
|
|
||||||
|
add_executable(gearyd ${DBUS_VALA_C})
|
||||||
|
target_link_libraries(gearyd ${DEPS_LIBRARIES} gthread-2.0 geary-static)
|
||||||
|
add_custom_command(
|
||||||
|
TARGET
|
||||||
|
gearyd
|
||||||
|
POST_BUILD
|
||||||
|
COMMAND
|
||||||
|
${CMAKE_COMMAND} -E copy gearyd ${CMAKE_BINARY_DIR}/
|
||||||
|
)
|
||||||
|
|
||||||
|
## Make clean: remove copied files
|
||||||
|
##################################################
|
||||||
|
set_property(
|
||||||
|
DIRECTORY ..
|
||||||
|
APPEND
|
||||||
|
PROPERTY ADDITIONAL_MAKE_CLEAN_FILES
|
||||||
|
geary
|
||||||
|
geary-console
|
||||||
|
geary-mailer
|
||||||
|
gearyd
|
||||||
|
)
|
||||||
|
|
||||||
|
|
@ -4,8 +4,10 @@
|
||||||
* (version 2.1 or later). See the COPYING file in this distribution.
|
* (version 2.1 or later). See the COPYING file in this distribution.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
// Defined by wscript
|
// Defined by CMake build script.
|
||||||
extern const string _PREFIX;
|
extern const string _INSTALL_PREFIX;
|
||||||
|
extern const string _GSETTINGS_DIR;
|
||||||
|
extern const string _SOURCE_ROOT_DIR;
|
||||||
|
|
||||||
public class GearyApplication : YorbaApplication {
|
public class GearyApplication : YorbaApplication {
|
||||||
// TODO: replace static strings with const strings when gettext is integrated properly
|
// TODO: replace static strings with const strings when gettext is integrated properly
|
||||||
|
|
@ -18,7 +20,9 @@ public class GearyApplication : YorbaApplication {
|
||||||
public static string WEBSITE_LABEL = _("Visit the Yorba web site");
|
public static string WEBSITE_LABEL = _("Visit the Yorba web site");
|
||||||
public const string BUGREPORT = "http://redmine.yorba.org/projects/geary/issues";
|
public const string BUGREPORT = "http://redmine.yorba.org/projects/geary/issues";
|
||||||
|
|
||||||
public const string PREFIX = _PREFIX;
|
public const string INSTALL_PREFIX = _INSTALL_PREFIX;
|
||||||
|
public const string GSETTINGS_DIR = _GSETTINGS_DIR;
|
||||||
|
public const string SOURCE_ROOT_DIR = _SOURCE_ROOT_DIR;
|
||||||
|
|
||||||
public const string[] AUTHORS = {
|
public const string[] AUTHORS = {
|
||||||
"Jim Nelson <jim@yorba.org>",
|
"Jim Nelson <jim@yorba.org>",
|
||||||
|
|
@ -123,8 +127,7 @@ along with Geary; if not, write to the Free Software Foundation, Inc.,
|
||||||
|
|
||||||
public override int startup() {
|
public override int startup() {
|
||||||
exec_dir = (File.new_for_path(Environment.find_program_in_path(args[0]))).get_parent();
|
exec_dir = (File.new_for_path(Environment.find_program_in_path(args[0]))).get_parent();
|
||||||
Configuration.init(GearyApplication.instance.get_install_dir() != null,
|
Configuration.init(GearyApplication.instance.get_install_dir() != null, GSETTINGS_DIR);
|
||||||
GearyApplication.instance.get_exec_dir().get_child("build/src/client").get_path());
|
|
||||||
|
|
||||||
int result = base.startup();
|
int result = base.startup();
|
||||||
result = parse_arguments(args);
|
result = parse_arguments(args);
|
||||||
|
|
@ -270,12 +273,12 @@ along with Geary; if not, write to the Free Software Foundation, Inc.,
|
||||||
* application is running from its installed directory, this will point to
|
* application is running from its installed directory, this will point to
|
||||||
* $(BASEDIR)/share/<program name>. If it's running from the build directory, this points to
|
* $(BASEDIR)/share/<program name>. If it's running from the build directory, this points to
|
||||||
* that.
|
* that.
|
||||||
*
|
|
||||||
* TODO: Implement. This is placeholder code for build environments and assumes you're running
|
|
||||||
* the program in the build directory.
|
|
||||||
*/
|
*/
|
||||||
public File get_resource_directory() {
|
public File get_resource_directory() {
|
||||||
return File.new_for_path(Environment.get_current_dir());
|
if (get_install_dir() != null)
|
||||||
|
return get_install_dir().get_child("share").get_child("geary");
|
||||||
|
else
|
||||||
|
return File.new_for_path(SOURCE_ROOT_DIR);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns the directory the application is currently executing from.
|
// Returns the directory the application is currently executing from.
|
||||||
|
|
@ -286,7 +289,7 @@ along with Geary; if not, write to the Free Software Foundation, Inc.,
|
||||||
// Returns the installation directory, or null if we're running outside of the installation
|
// Returns the installation directory, or null if we're running outside of the installation
|
||||||
// directory.
|
// directory.
|
||||||
public File? get_install_dir() {
|
public File? get_install_dir() {
|
||||||
File prefix_dir = File.new_for_path(PREFIX);
|
File prefix_dir = File.new_for_path(INSTALL_PREFIX);
|
||||||
return exec_dir.has_prefix(prefix_dir) ? prefix_dir : null;
|
return exec_dir.has_prefix(prefix_dir) ? prefix_dir : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,55 +0,0 @@
|
||||||
#! /usr/bin/env python
|
|
||||||
# encoding: utf-8
|
|
||||||
#
|
|
||||||
# Copyright 2011-2012 Yorba Foundation
|
|
||||||
|
|
||||||
client_src = [
|
|
||||||
'geary-application.vala',
|
|
||||||
'geary-config.vala',
|
|
||||||
'geary-controller.vala',
|
|
||||||
'main.vala',
|
|
||||||
|
|
||||||
'ui/composer-window.vala',
|
|
||||||
'ui/geary-login.vala',
|
|
||||||
'ui/email-entry.vala',
|
|
||||||
'ui/icon-factory.vala',
|
|
||||||
'ui/folder-list.vala',
|
|
||||||
'ui/main-toolbar.vala',
|
|
||||||
'ui/main-window.vala',
|
|
||||||
'ui/message-list-cell-renderer.vala',
|
|
||||||
'ui/message-list-store.vala',
|
|
||||||
'ui/message-list-view.vala',
|
|
||||||
'ui/message-viewer.vala',
|
|
||||||
'ui/preferences-dialog.vala',
|
|
||||||
|
|
||||||
'ui/sidebar/sidebar-branch.vala',
|
|
||||||
'ui/sidebar/sidebar-common.vala',
|
|
||||||
'ui/sidebar/sidebar-entry.vala',
|
|
||||||
'ui/sidebar/sidebar-tree.vala',
|
|
||||||
|
|
||||||
'util/util-email.vala',
|
|
||||||
'util/util-keyring.vala',
|
|
||||||
'util/util-menu.vala',
|
|
||||||
]
|
|
||||||
|
|
||||||
gsettings_schemas = [
|
|
||||||
'org.yorba.geary.gschema.xml'
|
|
||||||
]
|
|
||||||
|
|
||||||
client_uselib = 'GLIB GEE GTK GNOME-KEYRING WEBKITGTK JAVASCRIPTCOREGTK GTKSOURCEVIEW'
|
|
||||||
client_packages = [ 'gtk+-3.0', 'glib-2.0', 'gee-1.0', 'gnome-keyring-1', 'webkitgtk-3.0',
|
|
||||||
'javascriptcoregtk-3.0', 'gtksourceview-3.0' ]
|
|
||||||
|
|
||||||
app = bld.program(
|
|
||||||
target = 'geary',
|
|
||||||
vapi_dirs = '../../vapi',
|
|
||||||
threading = True,
|
|
||||||
use ='geary-static',
|
|
||||||
uselib = client_uselib + ' ' + bld.common_uselib + ' ' + bld.engine_uselib,
|
|
||||||
packages = client_packages + bld.common_packages + bld.engine_packages,
|
|
||||||
source = client_src
|
|
||||||
)
|
|
||||||
|
|
||||||
app.add_settings_schemas(gsettings_schemas)
|
|
||||||
app.process_settings()
|
|
||||||
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
#! /usr/bin/env python
|
|
||||||
# encoding: utf-8
|
|
||||||
#
|
|
||||||
# Copyright 2011-2012 Yorba Foundation
|
|
||||||
|
|
||||||
console_src = [
|
|
||||||
'main.vala'
|
|
||||||
]
|
|
||||||
|
|
||||||
console_uselib = 'GEE GTK GLIB'
|
|
||||||
console_packages = [ 'gee-1.0', 'gtk+-3.0', 'glib-2.0' ]
|
|
||||||
|
|
||||||
bld.program(
|
|
||||||
target = 'console',
|
|
||||||
vapi_dirs = '../../vapi',
|
|
||||||
threading = True,
|
|
||||||
use ='geary-static',
|
|
||||||
uselib = console_uselib + ' ' + bld.engine_uselib + ' ' + bld.common_uselib,
|
|
||||||
packages = console_packages + bld.engine_packages + bld.common_packages,
|
|
||||||
source = console_src
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
#! /usr/bin/env python
|
|
||||||
# encoding: utf-8
|
|
||||||
#
|
|
||||||
# Copyright 2011-2012 Yorba Foundation
|
|
||||||
|
|
||||||
dbusservice_src = [
|
|
||||||
'controller.vala',
|
|
||||||
'database.vala',
|
|
||||||
'dbus-conversation.vala',
|
|
||||||
'dbus-conversations.vala',
|
|
||||||
'dbus-email.vala',
|
|
||||||
'main.vala'
|
|
||||||
]
|
|
||||||
|
|
||||||
dbusservice_uselib = 'GEE GLIB'
|
|
||||||
dbusservice_packages = [ 'gee-1.0', 'glib-2.0' ]
|
|
||||||
|
|
||||||
bld.program(
|
|
||||||
target = 'gearyd',
|
|
||||||
vapi_dirs = '../../vapi',
|
|
||||||
threading = True,
|
|
||||||
use = 'geary-static',
|
|
||||||
uselib = dbusservice_uselib + ' ' + bld.engine_uselib + ' ' + bld.common_uselib,
|
|
||||||
packages = dbusservice_packages + bld.engine_packages + bld.common_packages,
|
|
||||||
source = dbusservice_src
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
@ -1,22 +0,0 @@
|
||||||
#! /usr/bin/env python
|
|
||||||
# encoding: utf-8
|
|
||||||
#
|
|
||||||
# Copyright 2011-2012 Yorba Foundation
|
|
||||||
|
|
||||||
norman_src = [
|
|
||||||
'main.vala'
|
|
||||||
]
|
|
||||||
|
|
||||||
norman_uselib = 'GEE GTK GLIB'
|
|
||||||
norman_packages = [ 'gee-1.0', 'glib-2.0' ]
|
|
||||||
|
|
||||||
bld.program(
|
|
||||||
target = 'norman',
|
|
||||||
vapi_dirs = '../../vapi',
|
|
||||||
threading = True,
|
|
||||||
use ='geary-static',
|
|
||||||
uselib = norman_uselib + ' ' + bld.engine_uselib + ' ' + bld.common_uselib,
|
|
||||||
packages = norman_packages + bld.engine_packages + bld.common_packages,
|
|
||||||
source = norman_src
|
|
||||||
)
|
|
||||||
|
|
||||||
183
src/wscript
183
src/wscript
|
|
@ -1,183 +0,0 @@
|
||||||
#! /usr/bin/env python
|
|
||||||
# encoding: utf-8
|
|
||||||
#
|
|
||||||
# Copyright 2011-2012 Yorba Foundation
|
|
||||||
|
|
||||||
def build(bld):
|
|
||||||
bld.common_src = [
|
|
||||||
'common/common-arrays.vala',
|
|
||||||
'common/common-async.vala',
|
|
||||||
'common/common-date.vala',
|
|
||||||
'common/common-intl.vala',
|
|
||||||
'common/common-yorba-application.vala'
|
|
||||||
]
|
|
||||||
|
|
||||||
bld.common_uselib = 'GLIB UNIQUE'
|
|
||||||
bld.common_packages = ['glib-2.0', 'unique-3.0', 'posix' ]
|
|
||||||
|
|
||||||
bld.engine_src = [
|
|
||||||
'engine/api/geary-account.vala',
|
|
||||||
'engine/api/geary-account-information.vala',
|
|
||||||
'engine/api/geary-batch-operations.vala',
|
|
||||||
'engine/api/geary-composed-email.vala',
|
|
||||||
'engine/api/geary-conversation.vala',
|
|
||||||
'engine/api/geary-conversations.vala',
|
|
||||||
'engine/api/geary-credentials.vala',
|
|
||||||
'engine/api/geary-email-flag.vala',
|
|
||||||
'engine/api/geary-email-flags.vala',
|
|
||||||
'engine/api/geary-email-identifier.vala',
|
|
||||||
'engine/api/geary-email-properties.vala',
|
|
||||||
'engine/api/geary-email.vala',
|
|
||||||
'engine/api/geary-endpoint.vala',
|
|
||||||
'engine/api/geary-engine-error.vala',
|
|
||||||
'engine/api/geary-engine.vala',
|
|
||||||
'engine/api/geary-folder-path.vala',
|
|
||||||
'engine/api/geary-folder.vala',
|
|
||||||
'engine/api/geary-logging.vala',
|
|
||||||
'engine/api/geary-personality.vala',
|
|
||||||
'engine/api/geary-service-provider.vala',
|
|
||||||
'engine/api/geary-special-folder.vala',
|
|
||||||
|
|
||||||
'engine/common/common-message-data.vala',
|
|
||||||
|
|
||||||
'engine/imap/api/imap-account.vala',
|
|
||||||
'engine/imap/api/imap-email-flags.vala',
|
|
||||||
'engine/imap/api/imap-email-identifier.vala',
|
|
||||||
'engine/imap/api/imap-email-properties.vala',
|
|
||||||
'engine/imap/api/imap-folder-properties.vala',
|
|
||||||
'engine/imap/api/imap-folder.vala',
|
|
||||||
'engine/imap/command/imap-command-response.vala',
|
|
||||||
'engine/imap/command/imap-commands.vala',
|
|
||||||
'engine/imap/command/imap-command.vala',
|
|
||||||
'engine/imap/command/imap-fetch-command.vala',
|
|
||||||
'engine/imap/decoders/imap-command-results.vala',
|
|
||||||
'engine/imap/decoders/imap-fetch-data-decoder.vala',
|
|
||||||
'engine/imap/decoders/imap-fetch-results.vala',
|
|
||||||
'engine/imap/decoders/imap-list-results.vala',
|
|
||||||
'engine/imap/decoders/imap-select-examine-results.vala',
|
|
||||||
'engine/imap/decoders/imap-status-results.vala',
|
|
||||||
'engine/imap/imap-error.vala',
|
|
||||||
'engine/imap/message/imap-data-format.vala',
|
|
||||||
'engine/imap/message/imap-fetch-data-type.vala',
|
|
||||||
'engine/imap/message/imap-fetch-body-data-type.vala',
|
|
||||||
'engine/imap/message/imap-flag.vala',
|
|
||||||
'engine/imap/message/imap-message-data.vala',
|
|
||||||
'engine/imap/message/imap-message-set.vala',
|
|
||||||
'engine/imap/message/imap-parameter.vala',
|
|
||||||
'engine/imap/message/imap-tag.vala',
|
|
||||||
'engine/imap/response/imap-continuation-response.vala',
|
|
||||||
'engine/imap/response/imap-response-code-type.vala',
|
|
||||||
'engine/imap/response/imap-response-code.vala',
|
|
||||||
'engine/imap/response/imap-server-data-type.vala',
|
|
||||||
'engine/imap/response/imap-server-data.vala',
|
|
||||||
'engine/imap/response/imap-server-response.vala',
|
|
||||||
'engine/imap/response/imap-status-data-type.vala',
|
|
||||||
'engine/imap/response/imap-status-response.vala',
|
|
||||||
'engine/imap/response/imap-status.vala',
|
|
||||||
'engine/imap/response/imap-unsolicited-server-data.vala',
|
|
||||||
'engine/imap/transport/imap-client-connection.vala',
|
|
||||||
'engine/imap/transport/imap-client-session-manager.vala',
|
|
||||||
'engine/imap/transport/imap-client-session.vala',
|
|
||||||
'engine/imap/transport/imap-deserializer.vala',
|
|
||||||
'engine/imap/transport/imap-mailbox.vala',
|
|
||||||
'engine/imap/transport/imap-serializable.vala',
|
|
||||||
'engine/imap/transport/imap-serializer.vala',
|
|
||||||
|
|
||||||
'engine/impl/geary-abstract-account.vala',
|
|
||||||
'engine/impl/geary-abstract-folder.vala',
|
|
||||||
'engine/impl/geary-email-flag-watcher.vala',
|
|
||||||
'engine/impl/geary-email-prefetcher.vala',
|
|
||||||
'engine/impl/geary-engine-account.vala',
|
|
||||||
'engine/impl/geary-generic-imap-account.vala',
|
|
||||||
'engine/impl/geary-generic-imap-folder.vala',
|
|
||||||
'engine/impl/geary-gmail-account.vala',
|
|
||||||
'engine/impl/geary-yahoo-account.vala',
|
|
||||||
'engine/impl/geary-other-account.vala',
|
|
||||||
'engine/impl/geary-receive-replay-operations.vala',
|
|
||||||
'engine/impl/geary-receive-replay-queue.vala',
|
|
||||||
'engine/impl/geary-send-replay-operations.vala',
|
|
||||||
'engine/impl/geary-send-replay-queue.vala',
|
|
||||||
|
|
||||||
'engine/nonblocking/nonblocking-abstract-semaphore.vala',
|
|
||||||
'engine/nonblocking/nonblocking-batch.vala',
|
|
||||||
'engine/nonblocking/nonblocking-mailbox.vala',
|
|
||||||
'engine/nonblocking/nonblocking-mutex.vala',
|
|
||||||
'engine/nonblocking/nonblocking-variants.vala',
|
|
||||||
|
|
||||||
'engine/rfc822/rfc822-error.vala',
|
|
||||||
'engine/rfc822/rfc822-mailbox-addresses.vala',
|
|
||||||
'engine/rfc822/rfc822-mailbox-address.vala',
|
|
||||||
'engine/rfc822/rfc822-message.vala',
|
|
||||||
'engine/rfc822/rfc822-message-data.vala',
|
|
||||||
'engine/rfc822/rfc822-utils.vala',
|
|
||||||
|
|
||||||
'engine/smtp/smtp-abstract-authenticator.vala',
|
|
||||||
'engine/smtp/smtp-authenticator.vala',
|
|
||||||
'engine/smtp/smtp-client-connection.vala',
|
|
||||||
'engine/smtp/smtp-client-session.vala',
|
|
||||||
'engine/smtp/smtp-command.vala',
|
|
||||||
'engine/smtp/smtp-data-format.vala',
|
|
||||||
'engine/smtp/smtp-error.vala',
|
|
||||||
'engine/smtp/smtp-greeting.vala',
|
|
||||||
'engine/smtp/smtp-login-authenticator.vala',
|
|
||||||
'engine/smtp/smtp-plain-authenticator.vala',
|
|
||||||
'engine/smtp/smtp-request.vala',
|
|
||||||
'engine/smtp/smtp-response.vala',
|
|
||||||
'engine/smtp/smtp-response-code.vala',
|
|
||||||
'engine/smtp/smtp-response-line.vala',
|
|
||||||
|
|
||||||
'engine/sqlite/abstract/sqlite-database.vala',
|
|
||||||
'engine/sqlite/abstract/sqlite-row.vala',
|
|
||||||
'engine/sqlite/abstract/sqlite-table.vala',
|
|
||||||
'engine/sqlite/abstract/sqlite-transaction.vala',
|
|
||||||
'engine/sqlite/api/sqlite-account.vala',
|
|
||||||
'engine/sqlite/api/sqlite-folder.vala',
|
|
||||||
'engine/sqlite/email/sqlite-folder-row.vala',
|
|
||||||
'engine/sqlite/email/sqlite-folder-table.vala',
|
|
||||||
'engine/sqlite/email/sqlite-mail-database.vala',
|
|
||||||
'engine/sqlite/email/sqlite-message-location-row.vala',
|
|
||||||
'engine/sqlite/email/sqlite-message-location-table.vala',
|
|
||||||
'engine/sqlite/email/sqlite-message-row.vala',
|
|
||||||
'engine/sqlite/email/sqlite-message-table.vala',
|
|
||||||
'engine/sqlite/imap/sqlite-imap-database.vala',
|
|
||||||
'engine/sqlite/imap/sqlite-imap-folder-properties-row.vala',
|
|
||||||
'engine/sqlite/imap/sqlite-imap-folder-properties-table.vala',
|
|
||||||
'engine/sqlite/imap/sqlite-imap-message-properties-row.vala',
|
|
||||||
'engine/sqlite/imap/sqlite-imap-message-properties-table.vala',
|
|
||||||
|
|
||||||
'engine/state/state-machine-descriptor.vala',
|
|
||||||
'engine/state/state-machine.vala',
|
|
||||||
'engine/state/state-mapping.vala',
|
|
||||||
|
|
||||||
'engine/util/util-collection.vala',
|
|
||||||
'engine/util/util-converter.vala',
|
|
||||||
'engine/util/util-html.vala',
|
|
||||||
'engine/util/util-inet.vala',
|
|
||||||
'engine/util/util-interfaces.vala',
|
|
||||||
'engine/util/util-memory.vala',
|
|
||||||
'engine/util/util-numeric.vala',
|
|
||||||
'engine/util/util-reference-semantics.vala',
|
|
||||||
'engine/util/util-scheduler.vala',
|
|
||||||
'engine/util/util-singleton.vala',
|
|
||||||
'engine/util/util-stream.vala',
|
|
||||||
'engine/util/util-string.vala',
|
|
||||||
'engine/util/util-trillian.vala'
|
|
||||||
]
|
|
||||||
|
|
||||||
bld.engine_uselib = 'GLIB GEE GIO SQLHEAVY GMIME'
|
|
||||||
bld.engine_packages = ['glib-2.0', 'gee-1.0', 'gio-2.0', 'sqlheavy-0.2', 'gmime-2.4']
|
|
||||||
|
|
||||||
bld.stlib(
|
|
||||||
target = 'geary-static',
|
|
||||||
vapi_dirs = '../vapi',
|
|
||||||
threading = True,
|
|
||||||
uselib = bld.engine_uselib + ' ' + bld.common_uselib,
|
|
||||||
packages = bld.engine_packages + bld.common_packages,
|
|
||||||
source = bld.common_src + bld.engine_src
|
|
||||||
)
|
|
||||||
|
|
||||||
bld.recurse('client')
|
|
||||||
bld.recurse('console')
|
|
||||||
bld.recurse('norman')
|
|
||||||
bld.recurse('dbusservice')
|
|
||||||
|
|
||||||
11
ui/CMakeLists.txt
Normal file
11
ui/CMakeLists.txt
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
set(UI_DEST share/geary/ui)
|
||||||
|
|
||||||
|
install(FILES accelerators.ui DESTINATION ${UI_DEST})
|
||||||
|
install(FILES composer.glade DESTINATION ${UI_DEST})
|
||||||
|
install(FILES composer_accelerators.ui DESTINATION ${UI_DEST})
|
||||||
|
install(FILES login.glade DESTINATION ${UI_DEST})
|
||||||
|
install(FILES message.glade DESTINATION ${UI_DEST})
|
||||||
|
install(FILES preferences.glade DESTINATION ${UI_DEST})
|
||||||
|
install(FILES toolbar.glade DESTINATION ${UI_DEST})
|
||||||
|
install(FILES toolbar_mark_menu.ui DESTINATION ${UI_DEST})
|
||||||
|
install(FILES toolbar_menu.ui DESTINATION ${UI_DEST})
|
||||||
BIN
waf
vendored
BIN
waf
vendored
Binary file not shown.
164
wscript
164
wscript
|
|
@ -1,164 +0,0 @@
|
||||||
#! /usr/bin/env python
|
|
||||||
# encoding: utf-8
|
|
||||||
#
|
|
||||||
# Copyright 2011-2012 Yorba Foundation
|
|
||||||
|
|
||||||
import shutil
|
|
||||||
import os.path
|
|
||||||
import subprocess
|
|
||||||
|
|
||||||
# the following two variables are used by the target "waf dist"
|
|
||||||
VERSION = '0.0.0+trunk'
|
|
||||||
APPNAME = 'geary'
|
|
||||||
|
|
||||||
# these variables are mandatory ('/' are converted automatically)
|
|
||||||
top = '.'
|
|
||||||
out = 'build'
|
|
||||||
|
|
||||||
def options(opt):
|
|
||||||
opt.load('compiler_c')
|
|
||||||
opt.load('vala')
|
|
||||||
opt.load('glib2')
|
|
||||||
|
|
||||||
opt.add_option(
|
|
||||||
'--debug',
|
|
||||||
help='performs a debug build',
|
|
||||||
action='store_true',
|
|
||||||
default=False)
|
|
||||||
|
|
||||||
def configure(conf):
|
|
||||||
conf.load('compiler_c vala glib2')
|
|
||||||
|
|
||||||
conf.check_vala((0, 15, 1))
|
|
||||||
conf.env.DEBUG = conf.options.debug
|
|
||||||
|
|
||||||
conf.check_cfg(
|
|
||||||
package='glib-2.0',
|
|
||||||
uselib_store='GLIB',
|
|
||||||
atleast_version='2.30.0',
|
|
||||||
mandatory=1,
|
|
||||||
args='--cflags --libs')
|
|
||||||
|
|
||||||
conf.check_cfg(
|
|
||||||
package='gio-2.0',
|
|
||||||
uselib_store='GIO',
|
|
||||||
atleast_version='2.28.0',
|
|
||||||
mandatory=1,
|
|
||||||
args='--cflags --libs')
|
|
||||||
|
|
||||||
conf.check_cfg(
|
|
||||||
package='gee-1.0',
|
|
||||||
uselib_store='GEE',
|
|
||||||
atleast_version='0.6.0',
|
|
||||||
mandatory=1,
|
|
||||||
args='--cflags --libs')
|
|
||||||
|
|
||||||
conf.check_cfg(
|
|
||||||
package='gtk+-3.0',
|
|
||||||
uselib_store='GTK',
|
|
||||||
atleast_version='3.2.',
|
|
||||||
mandatory=1,
|
|
||||||
args='--cflags --libs')
|
|
||||||
|
|
||||||
conf.check_cfg(
|
|
||||||
package='unique-3.0',
|
|
||||||
uselib_store='UNIQUE',
|
|
||||||
atleast_version='3.0.0',
|
|
||||||
mandatory=1,
|
|
||||||
args='--cflags --libs')
|
|
||||||
|
|
||||||
conf.check_cfg(
|
|
||||||
package='sqlite3',
|
|
||||||
uselib_store='SQLITE',
|
|
||||||
atleast_version='3.7.4',
|
|
||||||
mandatory=1,
|
|
||||||
args='--cflags --libs')
|
|
||||||
|
|
||||||
conf.check_cfg(
|
|
||||||
package='sqlheavy-0.2',
|
|
||||||
uselib_store='SQLHEAVY',
|
|
||||||
atleast_version='0.2.0',
|
|
||||||
mandatory=1,
|
|
||||||
args='--cflags --libs')
|
|
||||||
|
|
||||||
conf.check_cfg(
|
|
||||||
package='gmime-2.4',
|
|
||||||
uselib_store='GMIME',
|
|
||||||
atleast_version='2.4.14',
|
|
||||||
mandatory=1,
|
|
||||||
args='--cflags --libs')
|
|
||||||
|
|
||||||
conf.check_cfg(
|
|
||||||
package='gnome-keyring-1',
|
|
||||||
uselib_store='GNOME-KEYRING',
|
|
||||||
atleast_version='2.32.0',
|
|
||||||
mandatory=1,
|
|
||||||
args='--cflags --libs')
|
|
||||||
|
|
||||||
conf.check_cfg(
|
|
||||||
package='webkitgtk-3.0',
|
|
||||||
uselib_store='WEBKITGTK',
|
|
||||||
atleast_version='1.4.3',
|
|
||||||
mandatory=1,
|
|
||||||
args='--cflags --libs')
|
|
||||||
|
|
||||||
def build(bld):
|
|
||||||
bld.add_post_fun(post_build)
|
|
||||||
|
|
||||||
# Options for debug/release builds.
|
|
||||||
if bld.env.DEBUG:
|
|
||||||
bld.env.append_value('CFLAGS', ['-O0', '-g', '-D_PREFIX="' + bld.env.PREFIX + '"'])
|
|
||||||
bld.env.append_value('LINKFLAGS', ['-O0', '-g'])
|
|
||||||
bld.env.append_value('VALAFLAGS', ['-g', '--enable-checking', '--fatal-warnings'])
|
|
||||||
else:
|
|
||||||
bld.env.append_value('CFLAGS', ['-O2', '-g', '-D_PREFIX="' + bld.env.PREFIX + '"'])
|
|
||||||
bld.env.append_value('LINKFLAGS', ['-O2', '-g'])
|
|
||||||
bld.env.append_value('VALAFLAGS', ['-g', '--enable-checking', '--fatal-warnings'])
|
|
||||||
|
|
||||||
bld.recurse('src')
|
|
||||||
|
|
||||||
# Remove executables in root folder.
|
|
||||||
if bld.cmd == 'clean':
|
|
||||||
if os.path.isfile('geary') :
|
|
||||||
os.remove('geary')
|
|
||||||
|
|
||||||
if os.path.isfile('console') :
|
|
||||||
os.remove('console')
|
|
||||||
|
|
||||||
if os.path.isfile('norman') :
|
|
||||||
os.remove('norman')
|
|
||||||
|
|
||||||
if os.path.isfile('theseus') :
|
|
||||||
os.remove('theseus')
|
|
||||||
|
|
||||||
if os.path.isfile('gearyd') :
|
|
||||||
os.remove('gearyd')
|
|
||||||
|
|
||||||
def post_build(bld):
|
|
||||||
# Copy executables to root folder.
|
|
||||||
geary_path = 'build/src/client/geary'
|
|
||||||
console_path = 'build/src/console/console'
|
|
||||||
norman_path = 'build/src/norman/norman'
|
|
||||||
theseus_path = 'build/src/theseus/theseus'
|
|
||||||
gearyd_path = 'build/src/dbusservice/gearyd'
|
|
||||||
|
|
||||||
if os.path.isfile(geary_path) :
|
|
||||||
shutil.copy2(geary_path, 'geary')
|
|
||||||
|
|
||||||
if os.path.isfile(console_path) :
|
|
||||||
shutil.copy2(console_path, 'console')
|
|
||||||
|
|
||||||
if os.path.isfile(norman_path) :
|
|
||||||
shutil.copy2(norman_path, 'norman')
|
|
||||||
|
|
||||||
if os.path.isfile(theseus_path) :
|
|
||||||
shutil.copy2(theseus_path, 'theseus')
|
|
||||||
|
|
||||||
if os.path.isfile(gearyd_path) :
|
|
||||||
shutil.copy2(gearyd_path, 'gearyd')
|
|
||||||
|
|
||||||
# Compile schemas for local (non-intall) build.
|
|
||||||
client_build_path = 'build/src/client'
|
|
||||||
shutil.copy2('src/client/org.yorba.geary.gschema.xml', client_build_path)
|
|
||||||
subprocess.call(['glib-compile-schemas', client_build_path])
|
|
||||||
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue