-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Closes #4982 Closes #4964 Switched to CMake, added an installer/unins…
…taller
- Loading branch information
1 parent
3b1c6d8
commit 9e3bab4
Showing
21 changed files
with
1,175 additions
and
483 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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} | ||
) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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) | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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) |
Oops, something went wrong.