added namespace and licence
This commit is contained in:
parent
8b6b2fb94b
commit
28e01c5a88
22 changed files with 578 additions and 2369 deletions
|
@ -25,7 +25,6 @@ pkg_check_modules(DEPS REQUIRED
|
|||
)
|
||||
|
||||
#
|
||||
add_subdirectory(vapi)
|
||||
add_subdirectory(po)
|
||||
|
||||
add_definitions(${DEPS_CFLAGS})
|
||||
|
|
|
@ -67,7 +67,7 @@ static int main (string[] args) {
|
|||
var app = Webpin.WebpinApp.instance;
|
||||
return app.run (args);
|
||||
} else {
|
||||
var app_info = DesktopFile.get_app_by_url (args[1]);
|
||||
var app_info = Webpin.DesktopFile.get_app_by_url (args[1]);
|
||||
var app = new Webpin.WebAppWindow(app_info.get_display_name (), args[1]);
|
||||
app.show_all ();
|
||||
}
|
||||
|
|
|
@ -1,8 +1,36 @@
|
|||
public class DesktopFile : GLib.Object {
|
||||
/*-
|
||||
* Copyright (c) 2015 Erasmo Marín <erasmo.marin@gmail.com>
|
||||
* Copyright (c) 2017-2017 Artem Anufrij <artem.anufrij@live.de>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The Noise authors hereby grant permission for non-GPL compatible
|
||||
* GStreamer plugins to be used and distributed together with GStreamer
|
||||
* and Noise. This permission is above and beyond the permissions granted
|
||||
* by the GPL license by which Noise is covered. If you modify this code
|
||||
* you may extend this exception to your version of the code, but you are not
|
||||
* obligated to do so. If you do not wish to do so, delete this exception
|
||||
* statement from your version.
|
||||
*
|
||||
* Authored by: Artem Anufrij <artem.anufrij@live.de>
|
||||
*/
|
||||
|
||||
namespace Webpin {
|
||||
public class DesktopFile : GLib.Object {
|
||||
|
||||
private string template = """
|
||||
[Desktop Entry]
|
||||
Version=1.0
|
||||
Name=Webpin
|
||||
GenericName=Web app
|
||||
Comment=Webpin web app
|
||||
|
@ -13,7 +41,7 @@ public class DesktopFile : GLib.Object {
|
|||
Type=Application
|
||||
Categories=Network;
|
||||
X-GNOME-FullName=webpin
|
||||
WebbyThemeColor=none""";
|
||||
WebpinThemeColor=none""";
|
||||
|
||||
|
||||
private GLib.KeyFile file;
|
||||
|
@ -87,6 +115,7 @@ public class DesktopFile : GLib.Object {
|
|||
string keywords = desktop_app.get_string ("Keywords");
|
||||
|
||||
if (keywords != null && keywords.contains ("webpin")) {
|
||||
debug (desktop_app.get_name());
|
||||
list.set(desktop_app.get_name(), desktop_app);
|
||||
}
|
||||
}
|
||||
|
@ -112,9 +141,11 @@ public class DesktopFile : GLib.Object {
|
|||
var list = new Gee.HashMap<string, GLib.AppInfo>();
|
||||
|
||||
foreach (GLib.AppInfo app in GLib.AppInfo.get_all()) {
|
||||
debug (app.get_name());
|
||||
list.set(app.get_name(), app);
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,5 +1,33 @@
|
|||
public class InfoDialog : Gtk.Dialog {
|
||||
/*-
|
||||
* Copyright (c) 2015 Erasmo Marín <erasmo.marin@gmail.com>
|
||||
* Copyright (c) 2017-2017 Artem Anufrij <artem.anufrij@live.de>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The Noise authors hereby grant permission for non-GPL compatible
|
||||
* GStreamer plugins to be used and distributed together with GStreamer
|
||||
* and Noise. This permission is above and beyond the permissions granted
|
||||
* by the GPL license by which Noise is covered. If you modify this code
|
||||
* you may extend this exception to your version of the code, but you are not
|
||||
* obligated to do so. If you do not wish to do so, delete this exception
|
||||
* statement from your version.
|
||||
*
|
||||
* Authored by: Artem Anufrij <artem.anufrij@live.de>
|
||||
*/
|
||||
|
||||
namespace Webpin {
|
||||
public class InfoDialog : Gtk.Dialog {
|
||||
public InfoDialog (string title, string label, string icon_name) {
|
||||
|
||||
this.title = title;
|
||||
|
@ -15,4 +43,5 @@ public class InfoDialog : Gtk.Dialog {
|
|||
|
||||
add_button (_("Accept"), Gtk.ResponseType.ACCEPT);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,15 +1,41 @@
|
|||
public class UrlEntry : Gtk.Entry {
|
||||
|
||||
/*-
|
||||
* Copyright (c) 2015 Erasmo Marín <erasmo.marin@gmail.com>
|
||||
* Copyright (c) 2017-2017 Artem Anufrij <artem.anufrij@live.de>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The Noise authors hereby grant permission for non-GPL compatible
|
||||
* GStreamer plugins to be used and distributed together with GStreamer
|
||||
* and Noise. This permission is above and beyond the permissions granted
|
||||
* by the GPL license by which Noise is covered. If you modify this code
|
||||
* you may extend this exception to your version of the code, but you are not
|
||||
* obligated to do so. If you do not wish to do so, delete this exception
|
||||
* statement from your version.
|
||||
*
|
||||
* Authored by: Artem Anufrij <artem.anufrij@live.de>
|
||||
*/
|
||||
|
||||
namespace Webpin {
|
||||
public class UrlEntry : Gtk.Entry {
|
||||
public UrlEntry () {
|
||||
editable = false;
|
||||
set_icon_from_icon_name (Gtk.EntryIconPosition.SECONDARY, "view-refresh-symbolic");
|
||||
set_icon_from_icon_name (Gtk.EntryIconPosition.PRIMARY, "text-html-symbolic");
|
||||
}
|
||||
|
||||
public override void get_preferred_width (out int minimum_width, out int natural_width) {
|
||||
minimum_width = -1;
|
||||
natural_width = 3000;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,33 @@
|
|||
public class WebApp : Gtk.Stack {
|
||||
/*-
|
||||
* Copyright (c) 2015 Erasmo Marín <erasmo.marin@gmail.com>
|
||||
* Copyright (c) 2017-2017 Artem Anufrij <artem.anufrij@live.de>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The Noise authors hereby grant permission for non-GPL compatible
|
||||
* GStreamer plugins to be used and distributed together with GStreamer
|
||||
* and Noise. This permission is above and beyond the permissions granted
|
||||
* by the GPL license by which Noise is covered. If you modify this code
|
||||
* you may extend this exception to your version of the code, but you are not
|
||||
* obligated to do so. If you do not wish to do so, delete this exception
|
||||
* statement from your version.
|
||||
*
|
||||
* Authored by: Artem Anufrij <artem.anufrij@live.de>
|
||||
*/
|
||||
|
||||
namespace Webpin {
|
||||
public class WebApp : Gtk.Stack {
|
||||
|
||||
public WebKit.WebView app_view;
|
||||
public WebKit.WebView external_view;
|
||||
|
@ -149,4 +178,5 @@ public class WebApp : Gtk.Stack {
|
|||
}
|
||||
container.set_visible(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,33 @@
|
|||
public class ApplicationIcon : Gtk.Overlay {
|
||||
/*-
|
||||
* Copyright (c) 2015 Erasmo Marín <erasmo.marin@gmail.com>
|
||||
* Copyright (c) 2017-2017 Artem Anufrij <artem.anufrij@live.de>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The Noise authors hereby grant permission for non-GPL compatible
|
||||
* GStreamer plugins to be used and distributed together with GStreamer
|
||||
* and Noise. This permission is above and beyond the permissions granted
|
||||
* by the GPL license by which Noise is covered. If you modify this code
|
||||
* you may extend this exception to your version of the code, but you are not
|
||||
* obligated to do so. If you do not wish to do so, delete this exception
|
||||
* statement from your version.
|
||||
*
|
||||
* Authored by: Artem Anufrij <artem.anufrij@live.de>
|
||||
*/
|
||||
|
||||
namespace Webpin {
|
||||
public class ApplicationIcon : Gtk.Overlay {
|
||||
|
||||
Gtk.Image image;
|
||||
Gtk.Label label;
|
||||
|
@ -99,9 +128,9 @@ public class ApplicationIcon : Gtk.Overlay {
|
|||
deleted (this.get_parent());
|
||||
this.destroy ();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public class ActionMenu : Gtk.Revealer {
|
||||
public class ActionMenu : Gtk.Revealer {
|
||||
|
||||
public signal void delete_clicked ();
|
||||
public signal void edit_clicked ();
|
||||
|
@ -126,4 +155,5 @@ public class ActionMenu : Gtk.Revealer {
|
|||
this.transition_type = Gtk.RevealerTransitionType.CROSSFADE;
|
||||
this.add (buttons);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,33 @@
|
|||
public class ApplicationsView : Gtk.Box {
|
||||
/*-
|
||||
* Copyright (c) 2015 Erasmo Marín <erasmo.marin@gmail.com>
|
||||
* Copyright (c) 2017-2017 Artem Anufrij <artem.anufrij@live.de>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
* The Noise authors hereby grant permission for non-GPL compatible
|
||||
* GStreamer plugins to be used and distributed together with GStreamer
|
||||
* and Noise. This permission is above and beyond the permissions granted
|
||||
* by the GPL license by which Noise is covered. If you modify this code
|
||||
* you may extend this exception to your version of the code, but you are not
|
||||
* obligated to do so. If you do not wish to do so, delete this exception
|
||||
* statement from your version.
|
||||
*
|
||||
* Authored by: Artem Anufrij <artem.anufrij@live.de>
|
||||
*/
|
||||
|
||||
namespace Webpin {
|
||||
public class ApplicationsView : Gtk.Box {
|
||||
|
||||
public signal void add_request();
|
||||
public signal void edit_request(DesktopFile desktop_file);
|
||||
|
@ -27,7 +56,7 @@ public class ApplicationsView : Gtk.Box {
|
|||
if ((child as Gtk.FlowBoxChild).get_child () is ApplicationIcon) {
|
||||
var app_icon = (child as Gtk.FlowBoxChild).get_child () as ApplicationIcon;
|
||||
try {
|
||||
Process.spawn_command_line_async ("webby " + app_icon.desktop_file.url);
|
||||
Process.spawn_command_line_async ("com.github.artemanufrij.webpin " + app_icon.desktop_file.url);
|
||||
} catch (SpawnError e) {
|
||||
debug ("Error: %s\n", e.message);
|
||||
}
|
||||
|
@ -83,4 +112,5 @@ public class ApplicationsView : Gtk.Box {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,2 +0,0 @@
|
|||
install(FILES webkit2gtk-3.0.deps webkit2gtk-3.0.vapi DESTINATION share/vala-0.26/vapi)
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
# GSettings.cmake, CMake macros written for Marlin, feel free to re-use them.
|
||||
|
||||
option (GSETTINGS_LOCALINSTALL "Install GSettings Schemas locally instead of to the GLib prefix" ON)
|
||||
|
||||
option (GSETTINGS_COMPILE "Compile GSettings Schemas after installation" ${GSETTINGS_LOCALINSTALL})
|
||||
|
||||
if(GSETTINGS_LOCALINSTALL)
|
||||
message(STATUS "GSettings schemas will be installed locally.")
|
||||
endif()
|
||||
|
||||
if(GSETTINGS_COMPILE)
|
||||
message(STATUS "GSettings shemas will be compiled.")
|
||||
endif()
|
||||
|
||||
macro(add_schema SCHEMA_NAME)
|
||||
|
||||
set(PKG_CONFIG_EXECUTABLE pkg-config)
|
||||
# Have an option to not install the schema into where GLib is
|
||||
if (GSETTINGS_LOCALINSTALL)
|
||||
SET (GSETTINGS_DIR "${CMAKE_INSTALL_PREFIX}/share/glib-2.0/schemas/")
|
||||
else (GSETTINGS_LOCALINSTALL)
|
||||
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/")
|
||||
endif (GSETTINGS_LOCALINSTALL)
|
||||
|
||||
# Run the validator and error if it fails
|
||||
execute_process (COMMAND ${PKG_CONFIG_EXECUTABLE} gio-2.0 --variable glib_compile_schemas OUTPUT_VARIABLE _glib_comple_schemas OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
execute_process (COMMAND ${_glib_comple_schemas} --dry-run --schema-file=${CMAKE_CURRENT_SOURCE_DIR}/${SCHEMA_NAME} ERROR_VARIABLE _schemas_invalid OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
|
||||
if (_schemas_invalid)
|
||||
message (SEND_ERROR "Schema validation error: ${_schemas_invalid}")
|
||||
endif (_schemas_invalid)
|
||||
|
||||
# Actually install and recomple schemas
|
||||
message (STATUS "GSettings schemas will be installed into ${GSETTINGS_DIR}")
|
||||
install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/${SCHEMA_NAME} DESTINATION ${GSETTINGS_DIR} OPTIONAL)
|
||||
|
||||
if (GSETTINGS_COMPILE)
|
||||
install (CODE "message (STATUS \"Compiling GSettings schemas\")")
|
||||
install (CODE "execute_process (COMMAND ${_glib_comple_schemas} ${GSETTINGS_DIR})")
|
||||
endif ()
|
||||
endmacro()
|
|
@ -1,286 +0,0 @@
|
|||
# CMAKE generated file: DO NOT EDIT!
|
||||
# Generated by "Unix Makefiles" Generator, CMake Version 2.8
|
||||
|
||||
# Default target executed when no arguments are given to make.
|
||||
default_target: all
|
||||
.PHONY : default_target
|
||||
|
||||
#=============================================================================
|
||||
# Special targets provided by cmake.
|
||||
|
||||
# Disable implicit rules so canoncical targets will work.
|
||||
.SUFFIXES:
|
||||
|
||||
# Remove some rules from gmake that .SUFFIXES does not remove.
|
||||
SUFFIXES =
|
||||
|
||||
.SUFFIXES: .hpux_make_needs_suffix_list
|
||||
|
||||
# Suppress display of executed commands.
|
||||
$(VERBOSE).SILENT:
|
||||
|
||||
# A target that is always out of date.
|
||||
cmake_force:
|
||||
.PHONY : cmake_force
|
||||
|
||||
#=============================================================================
|
||||
# Set environment variables for the build.
|
||||
|
||||
# The shell in which to execute make rules.
|
||||
SHELL = /bin/sh
|
||||
|
||||
# The CMake executable.
|
||||
CMAKE_COMMAND = /usr/bin/cmake
|
||||
|
||||
# The command to remove a file.
|
||||
RM = /usr/bin/cmake -E remove -f
|
||||
|
||||
# The top-level source directory on which CMake was run.
|
||||
CMAKE_SOURCE_DIR = /home/mefrio/Scrivania/cmake
|
||||
|
||||
# The top-level build directory on which CMake was run.
|
||||
CMAKE_BINARY_DIR = /home/mefrio/Scrivania/cmake/cmake
|
||||
|
||||
#=============================================================================
|
||||
# Targets provided globally by CMake.
|
||||
|
||||
# Special rule for the target edit_cache
|
||||
edit_cache:
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running interactive CMake command-line interface..."
|
||||
/usr/bin/cmake -i .
|
||||
.PHONY : edit_cache
|
||||
|
||||
# Special rule for the target edit_cache
|
||||
edit_cache/fast: edit_cache
|
||||
.PHONY : edit_cache/fast
|
||||
|
||||
# Special rule for the target install
|
||||
install: preinstall
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
|
||||
/usr/bin/cmake -P cmake_install.cmake
|
||||
.PHONY : install
|
||||
|
||||
# Special rule for the target install
|
||||
install/fast: preinstall/fast
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..."
|
||||
/usr/bin/cmake -P cmake_install.cmake
|
||||
.PHONY : install/fast
|
||||
|
||||
# Special rule for the target install/local
|
||||
install/local: preinstall
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..."
|
||||
/usr/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake
|
||||
.PHONY : install/local
|
||||
|
||||
# Special rule for the target install/local
|
||||
install/local/fast: install/local
|
||||
.PHONY : install/local/fast
|
||||
|
||||
# Special rule for the target install/strip
|
||||
install/strip: preinstall
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..."
|
||||
/usr/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake
|
||||
.PHONY : install/strip
|
||||
|
||||
# Special rule for the target install/strip
|
||||
install/strip/fast: install/strip
|
||||
.PHONY : install/strip/fast
|
||||
|
||||
# Special rule for the target list_install_components
|
||||
list_install_components:
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\""
|
||||
.PHONY : list_install_components
|
||||
|
||||
# Special rule for the target list_install_components
|
||||
list_install_components/fast: list_install_components
|
||||
.PHONY : list_install_components/fast
|
||||
|
||||
# Special rule for the target rebuild_cache
|
||||
rebuild_cache:
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
|
||||
/usr/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
|
||||
.PHONY : rebuild_cache
|
||||
|
||||
# Special rule for the target rebuild_cache
|
||||
rebuild_cache/fast: rebuild_cache
|
||||
.PHONY : rebuild_cache/fast
|
||||
|
||||
# The main all target
|
||||
all: cmake_check_build_system
|
||||
$(CMAKE_COMMAND) -E cmake_progress_start /home/mefrio/Scrivania/cmake/cmake/CMakeFiles /home/mefrio/Scrivania/cmake/cmake/CMakeFiles/progress.marks
|
||||
$(MAKE) -f CMakeFiles/Makefile2 all
|
||||
$(CMAKE_COMMAND) -E cmake_progress_start /home/mefrio/Scrivania/cmake/cmake/CMakeFiles 0
|
||||
.PHONY : all
|
||||
|
||||
# The main clean target
|
||||
clean:
|
||||
$(MAKE) -f CMakeFiles/Makefile2 clean
|
||||
.PHONY : clean
|
||||
|
||||
# The main clean target
|
||||
clean/fast: clean
|
||||
.PHONY : clean/fast
|
||||
|
||||
# Prepare targets for installation.
|
||||
preinstall: all
|
||||
$(MAKE) -f CMakeFiles/Makefile2 preinstall
|
||||
.PHONY : preinstall
|
||||
|
||||
# Prepare targets for installation.
|
||||
preinstall/fast:
|
||||
$(MAKE) -f CMakeFiles/Makefile2 preinstall
|
||||
.PHONY : preinstall/fast
|
||||
|
||||
# clear depends
|
||||
depend:
|
||||
$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
|
||||
.PHONY : depend
|
||||
|
||||
#=============================================================================
|
||||
# Target rules for targets named scratch
|
||||
|
||||
# Build rule for target.
|
||||
scratch: cmake_check_build_system
|
||||
$(MAKE) -f CMakeFiles/Makefile2 scratch
|
||||
.PHONY : scratch
|
||||
|
||||
# fast build rule for target.
|
||||
scratch/fast:
|
||||
$(MAKE) -f CMakeFiles/scratch.dir/build.make CMakeFiles/scratch.dir/build
|
||||
.PHONY : scratch/fast
|
||||
|
||||
src/entry.o: src/entry.c.o
|
||||
.PHONY : src/entry.o
|
||||
|
||||
# target to build an object file
|
||||
src/entry.c.o:
|
||||
$(MAKE) -f CMakeFiles/scratch.dir/build.make CMakeFiles/scratch.dir/src/entry.c.o
|
||||
.PHONY : src/entry.c.o
|
||||
|
||||
src/entry.i: src/entry.c.i
|
||||
.PHONY : src/entry.i
|
||||
|
||||
# target to preprocess a source file
|
||||
src/entry.c.i:
|
||||
$(MAKE) -f CMakeFiles/scratch.dir/build.make CMakeFiles/scratch.dir/src/entry.c.i
|
||||
.PHONY : src/entry.c.i
|
||||
|
||||
src/entry.s: src/entry.c.s
|
||||
.PHONY : src/entry.s
|
||||
|
||||
# target to generate assembly for a file
|
||||
src/entry.c.s:
|
||||
$(MAKE) -f CMakeFiles/scratch.dir/build.make CMakeFiles/scratch.dir/src/entry.c.s
|
||||
.PHONY : src/entry.c.s
|
||||
|
||||
src/main_window.o: src/main_window.c.o
|
||||
.PHONY : src/main_window.o
|
||||
|
||||
# target to build an object file
|
||||
src/main_window.c.o:
|
||||
$(MAKE) -f CMakeFiles/scratch.dir/build.make CMakeFiles/scratch.dir/src/main_window.c.o
|
||||
.PHONY : src/main_window.c.o
|
||||
|
||||
src/main_window.i: src/main_window.c.i
|
||||
.PHONY : src/main_window.i
|
||||
|
||||
# target to preprocess a source file
|
||||
src/main_window.c.i:
|
||||
$(MAKE) -f CMakeFiles/scratch.dir/build.make CMakeFiles/scratch.dir/src/main_window.c.i
|
||||
.PHONY : src/main_window.c.i
|
||||
|
||||
src/main_window.s: src/main_window.c.s
|
||||
.PHONY : src/main_window.s
|
||||
|
||||
# target to generate assembly for a file
|
||||
src/main_window.c.s:
|
||||
$(MAKE) -f CMakeFiles/scratch.dir/build.make CMakeFiles/scratch.dir/src/main_window.c.s
|
||||
.PHONY : src/main_window.c.s
|
||||
|
||||
src/menu.o: src/menu.c.o
|
||||
.PHONY : src/menu.o
|
||||
|
||||
# target to build an object file
|
||||
src/menu.c.o:
|
||||
$(MAKE) -f CMakeFiles/scratch.dir/build.make CMakeFiles/scratch.dir/src/menu.c.o
|
||||
.PHONY : src/menu.c.o
|
||||
|
||||
src/menu.i: src/menu.c.i
|
||||
.PHONY : src/menu.i
|
||||
|
||||
# target to preprocess a source file
|
||||
src/menu.c.i:
|
||||
$(MAKE) -f CMakeFiles/scratch.dir/build.make CMakeFiles/scratch.dir/src/menu.c.i
|
||||
.PHONY : src/menu.c.i
|
||||
|
||||
src/menu.s: src/menu.c.s
|
||||
.PHONY : src/menu.s
|
||||
|
||||
# target to generate assembly for a file
|
||||
src/menu.c.s:
|
||||
$(MAKE) -f CMakeFiles/scratch.dir/build.make CMakeFiles/scratch.dir/src/menu.c.s
|
||||
.PHONY : src/menu.c.s
|
||||
|
||||
src/notebook.o: src/notebook.c.o
|
||||
.PHONY : src/notebook.o
|
||||
|
||||
# target to build an object file
|
||||
src/notebook.c.o:
|
||||
$(MAKE) -f CMakeFiles/scratch.dir/build.make CMakeFiles/scratch.dir/src/notebook.c.o
|
||||
.PHONY : src/notebook.c.o
|
||||
|
||||
src/notebook.i: src/notebook.c.i
|
||||
.PHONY : src/notebook.i
|
||||
|
||||
# target to preprocess a source file
|
||||
src/notebook.c.i:
|
||||
$(MAKE) -f CMakeFiles/scratch.dir/build.make CMakeFiles/scratch.dir/src/notebook.c.i
|
||||
.PHONY : src/notebook.c.i
|
||||
|
||||
src/notebook.s: src/notebook.c.s
|
||||
.PHONY : src/notebook.s
|
||||
|
||||
# target to generate assembly for a file
|
||||
src/notebook.c.s:
|
||||
$(MAKE) -f CMakeFiles/scratch.dir/build.make CMakeFiles/scratch.dir/src/notebook.c.s
|
||||
.PHONY : src/notebook.c.s
|
||||
|
||||
# Help Target
|
||||
help:
|
||||
@echo "The following are some of the valid targets for this Makefile:"
|
||||
@echo "... all (the default if no target is provided)"
|
||||
@echo "... clean"
|
||||
@echo "... depend"
|
||||
@echo "... edit_cache"
|
||||
@echo "... install"
|
||||
@echo "... install/local"
|
||||
@echo "... install/strip"
|
||||
@echo "... list_install_components"
|
||||
@echo "... rebuild_cache"
|
||||
@echo "... scratch"
|
||||
@echo "... src/entry.o"
|
||||
@echo "... src/entry.i"
|
||||
@echo "... src/entry.s"
|
||||
@echo "... src/main_window.o"
|
||||
@echo "... src/main_window.i"
|
||||
@echo "... src/main_window.s"
|
||||
@echo "... src/menu.o"
|
||||
@echo "... src/menu.i"
|
||||
@echo "... src/menu.s"
|
||||
@echo "... src/notebook.o"
|
||||
@echo "... src/notebook.i"
|
||||
@echo "... src/notebook.s"
|
||||
.PHONY : help
|
||||
|
||||
|
||||
|
||||
#=============================================================================
|
||||
# Special targets to cleanup operation of make.
|
||||
|
||||
# Special rule to run CMake to check the build system integrity.
|
||||
# No rule that depends on this can have commands that come from listfiles
|
||||
# because they might be regenerated.
|
||||
cmake_check_build_system:
|
||||
$(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
|
||||
.PHONY : cmake_check_build_system
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
Elementary CMake modules
|
||||
|
||||
This is a set of CMake modules: Translations, GSettings, and Vala modules.
|
||||
|
||||
For all the Vala related modules see README.Vala.rst:
|
||||
- ParseArguments.cmake
|
||||
- ValaPrecompile.cmake
|
||||
- ValaVersion.cmake
|
||||
- FindVala.cmake
|
||||
|
|
@ -1,173 +0,0 @@
|
|||
==========
|
||||
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
|
|
@ -1,41 +0,0 @@
|
|||
# Translations.cmake, CMake macros written for Marlin, feel free to re-use them
|
||||
|
||||
macro(add_translations_directory NLS_PACKAGE)
|
||||
add_custom_target (i18n ALL COMMENT “Building i18n messages.”)
|
||||
find_program (MSGFMT_EXECUTABLE msgfmt)
|
||||
file (GLOB PO_FILES ${CMAKE_CURRENT_SOURCE_DIR}/*.po)
|
||||
foreach (PO_INPUT ${PO_FILES})
|
||||
get_filename_component (PO_INPUT_BASE ${PO_INPUT} NAME_WE)
|
||||
set (MO_OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${PO_INPUT_BASE}.mo)
|
||||
add_custom_command (TARGET i18n COMMAND ${MSGFMT_EXECUTABLE} -o ${MO_OUTPUT} ${PO_INPUT})
|
||||
|
||||
install (FILES ${MO_OUTPUT} DESTINATION
|
||||
share/locale/${PO_INPUT_BASE}/LC_MESSAGES
|
||||
RENAME ${NLS_PACKAGE}.mo)
|
||||
endforeach (PO_INPUT ${PO_FILES})
|
||||
endmacro(add_translations_directory)
|
||||
|
||||
|
||||
macro(add_translations_catalog NLS_PACKAGE)
|
||||
add_custom_target (pot COMMENT “Building translation catalog.”)
|
||||
find_program (XGETTEXT_EXECUTABLE xgettext)
|
||||
|
||||
|
||||
set(C_SOURCE "")
|
||||
|
||||
foreach(FILES_INPUT ${ARGN})
|
||||
file (GLOB SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/${FILES_INPUT}/*.c)
|
||||
foreach(C_FILE ${SOURCE_FILES})
|
||||
set(C_SOURCE ${C_SOURCE} ${C_FILE})
|
||||
endforeach()
|
||||
file (GLOB SOURCE_FILES ${CMAKE_CURRENT_SOURCE_DIR}/${FILES_INPUT}/*.vala)
|
||||
foreach(C_FILE ${SOURCE_FILES})
|
||||
set(C_SOURCE ${C_SOURCE} ${C_FILE})
|
||||
endforeach()
|
||||
endforeach()
|
||||
|
||||
add_custom_command (TARGET pot COMMAND
|
||||
${XGETTEXT_EXECUTABLE} -d ${NLS_PACKAGE} -o ${CMAKE_CURRENT_SOURCE_DIR}/${NLS_PACKAGE}.pot
|
||||
${VALA_SOURCE} ${C_SOURCE} --keyword="_" --from-code=UTF-8
|
||||
)
|
||||
endmacro()
|
|
@ -1,21 +0,0 @@
|
|||
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()
|
||||
|
||||
file(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files)
|
||||
string(REGEX REPLACE "\n" ";" files "${files}")
|
||||
foreach(file ${files})
|
||||
message(STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"")
|
||||
if(EXISTS "$ENV{DESTDIR}${file}")
|
||||
exec_program(
|
||||
"@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
|
||||
OUTPUT_VARIABLE rm_out
|
||||
RETURN_VALUE rm_retval
|
||||
)
|
||||
if(NOT "${rm_retval}" STREQUAL 0)
|
||||
message(FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
|
||||
endif()
|
||||
else(EXISTS "$ENV{DESTDIR}${file}")
|
||||
message(STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.")
|
||||
endif()
|
||||
endforeach()
|
|
@ -1,65 +0,0 @@
|
|||
##
|
||||
# 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)
|
|
@ -1,36 +0,0 @@
|
|||
##
|
||||
# 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)
|
|
@ -1,175 +0,0 @@
|
|||
##
|
||||
# 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})
|
||||
list(APPEND in_files "${CMAKE_CURRENT_SOURCE_DIR}/${src}")
|
||||
string(REPLACE ".vala" ".c" src ${src})
|
||||
string(REPLACE ".gs" ".c" src ${src})
|
||||
set(out_file "${DIRECTORY}/${src}")
|
||||
list(APPEND out_files "${DIRECTORY}/${src}")
|
||||
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)
|
|
@ -1,96 +0,0 @@
|
|||
##
|
||||
# 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)
|
|
@ -1,9 +0,0 @@
|
|||
[CCode (cprefix = "", lower_case_cprefix = "", cheader_filename = "config.h")]
|
||||
namespace Build {
|
||||
public const string DATADIR;
|
||||
public const string PKGDATADIR;
|
||||
public const string GETTEXT_PACKAGE;
|
||||
public const string RELEASE_NAME;
|
||||
public const string VERSION;
|
||||
public const string VERSION_INFO;
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
atk
|
||||
gio-2.0
|
||||
cairo
|
||||
pango
|
||||
gdk-pixbuf-2.0
|
||||
libsoup-2.4
|
||||
gtk+-3.0
|
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue