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.
|
||||
*/
|
||||
|
||||
// Defined by wscript
|
||||
extern const string _PREFIX;
|
||||
// Defined by CMake build script.
|
||||
extern const string _INSTALL_PREFIX;
|
||||
extern const string _GSETTINGS_DIR;
|
||||
extern const string _SOURCE_ROOT_DIR;
|
||||
|
||||
public class GearyApplication : YorbaApplication {
|
||||
// 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 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 = {
|
||||
"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() {
|
||||
exec_dir = (File.new_for_path(Environment.find_program_in_path(args[0]))).get_parent();
|
||||
Configuration.init(GearyApplication.instance.get_install_dir() != null,
|
||||
GearyApplication.instance.get_exec_dir().get_child("build/src/client").get_path());
|
||||
Configuration.init(GearyApplication.instance.get_install_dir() != null, GSETTINGS_DIR);
|
||||
|
||||
int result = base.startup();
|
||||
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
|
||||
* $(BASEDIR)/share/<program name>. If it's running from the build directory, this points to
|
||||
* 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() {
|
||||
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.
|
||||
|
|
@ -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
|
||||
// directory.
|
||||
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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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