diff --git a/.gitignore b/.gitignore index 3aa443e..3b2ab93 100644 --- a/.gitignore +++ b/.gitignore @@ -1,9 +1,13 @@ *.swp *~ build _build/ .flatpak-builder/ .ninja_* build.ninja data/writeas + +# Files generated by gb +pkg/ +bin/ diff --git a/debian/control b/debian/control index a849fba..8e65d76 100644 --- a/debian/control +++ b/debian/control @@ -1,18 +1,18 @@ Source: com.github.writeas.writeas-gtk Section: x11 Priority: extra Maintainer: Write.as -Build-Depends: meson, +Build-Depends: meson (>= 0.48), debhelper (>= 9), libgtk-3-dev, libgtksourceview-3.0-dev, valac (>= 0.36), golang-go, gb Standards-Version: 3.9.3 Package: com.github.writeas.writeas-gtk Architecture: any Depends: ${misc:Depends}, ${shlibs:Depends} Recommends: fonts-open-sans, fonts-hack-ttf Description: A distraction free and private writing tool, with built-in publishing. diff --git a/debian/rules b/debian/rules index d3fbd4c..8c29f48 100755 --- a/debian/rules +++ b/debian/rules @@ -1,33 +1,31 @@ #!/usr/bin/make -f # -*- makefile -*- # Sample debian/rules that uses debhelper. # This file was originally written by Joey Hess and Craig Small. # As a special exception, when this file is copied by dh-make into a # dh-make output file, you may use that output file without restriction. # This special exception was added by Craig Small in version 0.37 of dh-make. # This file was extended to incorporate a Meson/Ninja build system. # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 %: dh $@ override_dh_auto_clean: rm -rf debian/build override_dh_auto_configure: mkdir -p debian/build - cd debian/build && meson --prefix=/usr ../.. -Dplatform=elementary + cd debian/build && meson --prefix=/usr ../.. -Dplatform=elementary -Dauto_build_cli=true override_dh_auto_build: cd debian/build && ninja -v && ninja build override_dh_auto_test: cd debian/build && ninja test override_dh_auto_install: cd debian/build && DESTDIR=${CURDIR}/debian/com.github.writeas.writeas-gtk ninja install - mkdir -p debian/com.github.writeas.writeas-gtk/usr/bin - cp bin/writeas debian/com.github.writeas.writeas-gtk/usr/bin/ diff --git a/flatpak/com.abunchtell.WriteAsDesktop.json b/flatpak/com.abunchtell.WriteAsDesktop.json index b1a3073..29889e0 100644 --- a/flatpak/com.abunchtell.WriteAsDesktop.json +++ b/flatpak/com.abunchtell.WriteAsDesktop.json @@ -1,73 +1,76 @@ { "app-id": "com.abunchtell.WriteAsDesktop", "base": "io.elementary.BaseApp", "base-version": "juno", "runtime": "org.gnome.Platform", "runtime-version": "3.32", "sdk": "org.gnome.Sdk", "sdk-extensions": [ "org.freedesktop.Sdk.Extension.golang" ], "command": "writeas-gtk", "finish-args": [ "--socket=wayland", "--share=ipc", "--socket=x11", "--device=dri", "--share=network" ], "build-options": { "append-path": "/usr/lib/sdk/golang/bin/", "build-args" : [ "--share=network" ], "env": { - "GOPATH": "/run/build/go" + "GOROOT": "/usr/lib/sdk/golang/" } }, "modules": [ { "name": "gb", "buildsystem": "simple", "build-commands": [ "/usr/lib/sdk/golang/enable.sh; env GOPATH=\"$(pwd)\" go build github.com/constabulary/gb/cmd/gb", "install -Dm0755 -t /app/bin gb" ], "sources": [ { "type": "git", "url": "https://github.com/pkg/errors.git", "dest": "src/github.com/pkg/errors" }, { "type": "git", "url": "https://github.com/constabulary/gb.git", "dest": "src/github.com/constabulary/gb" } ] }, { "name": "gtksourceview3", "config-opts" : [ "--disable-Werror" ], "sources": [ { "type": "git", "url": "https://gitlab.gnome.org/GNOME/gtksourceview.git", "branch": "gnome-3-24" } ] }, { "name": "writeas-gtk", "buildsystem": "meson", + "config-opts": [ + "-Dauto_build_cli=true" + ], "sources": [ { "type": "git", "url": "https://github.com/writeas/writeas-gtk.git" } ] } ] } diff --git a/meson.build b/meson.build index 23a648f..6fd8d7c 100644 --- a/meson.build +++ b/meson.build @@ -1,29 +1,29 @@ project('writeas-gtk', ['vala', 'c'], version: '1.0.2', license: 'GPL', - meson_version: '>=0.46.0') + meson_version: '>=0.48.0') i18n = import('i18n') build_platform = get_option('platform') if build_platform == 'elementary' app_id = 'com.github.writeas.writeas-gtk' else app_id = 'com.abunchtell.WriteAsDesktop' endif conf = configuration_data() conf.set_quoted('GETTEXT_PACKAGE', app_id) conf.set_quoted('APP_ID', app_id) conf.set_quoted('BUILD_PLATFORM', build_platform) config_h = configure_file(output: 'config.h', configuration: conf) config_h_dir = include_directories('.') -run_target('build', command: 'meson/build-cli.sh') +cli_build_script = find_program('meson/build-cli.sh') subdir('data') subdir('src') subdir('fonts/lora') meson.add_install_script('meson/post_install.py') diff --git a/meson/build-cli.sh b/meson/build-cli.sh index 023c655..2dfc7a2 100755 --- a/meson/build-cli.sh +++ b/meson/build-cli.sh @@ -1,7 +1,12 @@ #!/bin/bash exec_name=writeas echo "Building $exec_name CLI..." +cd $1 && gb build github.com/writeas/writeas-cli/cmd/writeas && +mv bin/writeas $3/$2 && +# Cleanup +rm -rf bin/ && +rm -rf pkg/ && echo "Success." diff --git a/meson_options.txt b/meson_options.txt index 29bd56e..113c1f9 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -1 +1,2 @@ option('platform', type: 'combo', choices: ['default', 'elementary'], value: 'default') +option('auto_build_cli', type: 'boolean', value: 'false') diff --git a/src/meson.build b/src/meson.build index 6e68eae..0be3d9b 100644 --- a/src/meson.build +++ b/src/meson.build @@ -1,17 +1,35 @@ if build_platform == 'elementary' executable = 'com.github.writeas.writeas-gtk' else executable = 'writeas-gtk' endif +if get_option('auto_build_cli') + gb = find_program('gb') + + cli_target = custom_target('build-cli', + build_by_default: true, + output: 'writeas', + install: true, + install_dir: get_option('bindir'), + console: true, + command: [ + cli_build_script, + '@SOURCE_ROOT@', + '@OUTPUT@', + meson.build_root() + ] + ) +endif + executable(executable, 'application.vala', 'window.vala', 'Granite/Accels.vala', 'Granite/ModeSwitch.vala', c_args: ['-include', 'config.h'], link_args: '-lm', dependencies: [dependency('gtk+-3.0'), dependency('gtksourceview-3.0')], install: true )