Make better use of autotools (#149)

* Check for inkscape, optipng, and sass in the PATH with configure

* Define themedirs once in configure instead of each Makefile

* Set GTK3_VERSION to compatible version instead of actual version

autotools doesn't like symlinks much, especially when building outside
of the source tree. This also adds better version detection errors.

* Don't distribute gulpfile.js as it has been removed

* Don't need $(srcdir) when defining EXTRA_DIST

Distributions are always prepared from the sources.

* Install theme index files using automake

* Generate and install XFWM4 files properly with autotools

This handles parallelism better and allows out-of-source builds.

* Generate and install GTK+2 files properly with autotools

This handles parallelism better and allows out-of-source builds.

* Generate and install GTK+3 files properly with autotools

This handles parallelism better and allows out-of-source builds.
master
James Le Cuirot 2018-10-20 17:38:07 +01:00 committed by David Mohammed
parent 7b3b3cdaeb
commit 550065724b
38 changed files with 322 additions and 498 deletions

11
.gitignore vendored
View File

@ -14,11 +14,12 @@ common/cinnamon/cinnamon-dark.css
common/cinnamon/cinnamon.css
common/gnome-shell/**/gnome-shell-dark.css
common/gnome-shell/**/gnome-shell.css
common/gtk-3.0/**/gtk-dark.css
common/gtk-3.0/**/gtk-darker.css
common/gtk-3.0/**/gtk.css
common/gtk-3.0/**/*.css
common/gtk-3.0/**/light/
common/gtk-3.0/**/darker/
common/gtk-3.0/**/dark/
common/gtk-3.0/**/assets/*.png
common/gtk-2.0/assets*/*.png
common/gtk-2.0/*/assets/*.png
common/gtk-2.0/menubar-toolbar/*.png
common/xfwm4/assets*/*.png
common/xfwm4/*/assets/*.png
common/compile-gresources.sh

View File

@ -4,7 +4,6 @@ EXTRA_DIST = \
README.md \
HACKING.md \
autogen.sh \
gulpfile.js \
package.json \
.nvmrc

View File

@ -50,7 +50,6 @@ To build the theme the following packages are required
* `inkscape`
The following packages are optionally required
* `parallel` for speeding up build by rendering assets in parallel
* `gnome-shell`for auto-detecting the GNOME Shell version
* `libgtk-3-dev` for Debian based distros or `gtk3-devel` for RPM based distros, for auto-detecting the GTK3 version

View File

@ -1,11 +1,27 @@
if !ENABLE_TRANSPARENCY
themedir = $(datadir)/themes/Arc-solid
themedarkerdir = $(datadir)/themes/Arc-Darker-solid
themedarkdir = $(datadir)/themes/Arc-Dark-solid
else
themedir = $(datadir)/themes/Arc
themedarkerdir = $(datadir)/themes/Arc-Darker
themedarkdir = $(datadir)/themes/Arc-Dark
if ENABLE_GTK2
GTK2_SUBDIR = gtk-2.0
endif
if ENABLE_GTK3
GTK3_SUBDIR = gtk-3.0
endif
if ENABLE_XFWM
XFWM_SUBDIR = xfwm4
endif
SUBDIRS = $(GTK2_SUBDIR) $(GTK3_SUBDIR) $(XFWM_SUBDIR)
if ENABLE_LIGHT
theme_DATA = $(srcdir)/index/light/index.theme
endif
if ENABLE_DARKER
themedarker_DATA = $(srcdir)/index/darker/index.theme
endif
if ENABLE_DARK
themedark_DATA = $(srcdir)/index/dark/index.theme
endif
ithemedir = $(DESTDIR)$(themedir)
@ -16,28 +32,12 @@ install-exec-hook:
install-data-local:
if ENABLE_LIGHT
$(MKDIR_P) $(ithemedir)
cp $(srcdir)/index.theme $(ithemedir)
endif # ENABLE_LIGHT
if ENABLE_DARKER
$(MKDIR_P) $(ithemedarkerdir)
cp $(srcdir)/index.theme-darker $(ithemedarkerdir)/index.theme
endif # ENABLE_LIGHT
if ENABLE_DARK
$(MKDIR_P) $(ithemedarkdir)
cp $(srcdir)/index.theme-dark $(ithemedarkdir)/index.theme
endif # ENABLE_DARK
if ENABLE_CINNAMON
$(MKDIR_P) $(ithemedir)/cinnamon
cd $(srcdir)/cinnamon && cp thumbnail.png $(ithemedir)/cinnamon
sassc $(srcdir)/cinnamon/sass/cinnamon.scss $(srcdir)/cinnamon/cinnamon.css;
$(SASSC) $(srcdir)/cinnamon/sass/cinnamon.scss $(srcdir)/cinnamon/cinnamon.css;
cd $(srcdir)/cinnamon && cp -R \
common-assets \
@ -50,7 +50,7 @@ if ENABLE_DARK
cd $(srcdir)/cinnamon && cp thumbnail-dark.png $(ithemedarkdir)/cinnamon/thumbnail.png
sassc $(srcdir)/cinnamon/sass/cinnamon-dark.scss $(srcdir)/cinnamon/cinnamon-dark.css;
$(SASSC) $(srcdir)/cinnamon/sass/cinnamon-dark.scss $(srcdir)/cinnamon/cinnamon-dark.css;
cd $(srcdir)/cinnamon && cp -R \
common-assets \
@ -68,7 +68,7 @@ endif # ENABLE_GNOME_SHELL
if ENABLE_GNOME_SHELL
$(MKDIR_P) $(ithemedir)/gnome-shell
sassc $(srcdir)/gnome-shell/$(GNOME_SHELL_VERSION)/sass/gnome-shell.scss $(srcdir)/gnome-shell/$(GNOME_SHELL_VERSION)/gnome-shell.css;
$(SASSC) $(srcdir)/gnome-shell/$(GNOME_SHELL_VERSION)/sass/gnome-shell.scss $(srcdir)/gnome-shell/$(GNOME_SHELL_VERSION)/gnome-shell.css;
cd $(srcdir)/gnome-shell/$(GNOME_SHELL_VERSION) && cp -RL \
common-assets \
@ -79,7 +79,7 @@ if ENABLE_GNOME_SHELL
if ENABLE_DARK
$(MKDIR_P) $(ithemedarkdir)/gnome-shell
sassc $(srcdir)/gnome-shell/$(GNOME_SHELL_VERSION)/sass/gnome-shell-dark.scss $(srcdir)/gnome-shell/$(GNOME_SHELL_VERSION)/gnome-shell-dark.css;
$(SASSC) $(srcdir)/gnome-shell/$(GNOME_SHELL_VERSION)/sass/gnome-shell-dark.scss $(srcdir)/gnome-shell/$(GNOME_SHELL_VERSION)/gnome-shell-dark.css;
cd $(srcdir)/gnome-shell/$(GNOME_SHELL_VERSION) && cp -RL \
common-assets \
@ -94,166 +94,6 @@ endif # ENABLE_DARK
endif # ENABLE_GNOME_SHELL
if ENABLE_GTK2
cd $(srcdir)/gtk-2.0 && $(MKDIR_P) assets assets-dark && ./render-assets.sh
if ENABLE_LIGHT
$(MKDIR_P) $(ithemedir)/gtk-2.0
cd $(srcdir)/gtk-2.0 && cp -R \
assets \
menubar-toolbar \
*.rc \
gtkrc \
$(ithemedir)/gtk-2.0
endif # ENABLE_LIGHT
if ENABLE_DARKER
$(MKDIR_P) $(ithemedarkerdir)/gtk-2.0
cd $(srcdir)/gtk-2.0 && cp -R \
assets \
menubar-toolbar \
*.rc \
$(ithemedarkerdir)/gtk-2.0
cd $(srcdir)/gtk-2.0 && cp -R \
gtkrc-darker \
$(ithemedarkerdir)/gtk-2.0/gtkrc
endif # ENABLE_DARKER
if ENABLE_DARK
$(MKDIR_P) $(ithemedarkdir)/gtk-2.0
cd $(srcdir)/gtk-2.0 && cp -R \
menubar-toolbar \
*.rc \
$(ithemedarkdir)/gtk-2.0
cd $(srcdir)/gtk-2.0 && cp -R \
assets-dark \
$(ithemedarkdir)/gtk-2.0/assets
cd $(srcdir)/gtk-2.0 && cp -R \
gtkrc-dark \
$(ithemedarkdir)/gtk-2.0/gtkrc
endif # ENABLE_DARK
endif # ENABLE_GTK2
if ENABLE_GTK3
cd $(srcdir)/gtk-3.0/$(GTK3_VERSION) && $(MKDIR_P) assets && ./render-assets.sh
if ENABLE_LIGHT
$(MKDIR_P) $(ithemedir)/gtk-3.0
cd $(srcdir)/gtk-3.0 && cp thumbnail.png $(ithemedir)/gtk-3.0
sassc $(srcdir)/gtk-3.0/$(GTK3_VERSION)/sass/gtk.scss $(srcdir)/gtk-3.0/$(GTK3_VERSION)/gtk.css;
sassc $(srcdir)/gtk-3.0/$(GTK3_VERSION)/sass/gtk-dark.scss $(srcdir)/gtk-3.0/$(GTK3_VERSION)/gtk-dark.css;
cd $(srcdir)/gtk-3.0/$(GTK3_VERSION) && cp -R \
assets \
gtk.css \
gtk-dark.css \
$(ithemedir)/gtk-3.0
endif # ENABLE_LIGHT
if ENABLE_DARKER
$(MKDIR_P) $(ithemedarkerdir)/gtk-3.0
cd $(srcdir)/gtk-3.0 && cp thumbnail.png $(ithemedarkerdir)/gtk-3.0
sassc $(srcdir)/gtk-3.0/$(GTK3_VERSION)/sass/gtk-dark.scss $(srcdir)/gtk-3.0/$(GTK3_VERSION)/gtk-dark.css;
sassc $(srcdir)/gtk-3.0/$(GTK3_VERSION)/sass/gtk-darker.scss $(srcdir)/gtk-3.0/$(GTK3_VERSION)/gtk-darker.css;
sassc $(srcdir)/gtk-3.0/$(GTK3_VERSION)/sass/gtk.scss $(srcdir)/gtk-3.0/$(GTK3_VERSION)/gtk.css;
cd $(srcdir)/gtk-3.0/$(GTK3_VERSION) && cp -R \
assets \
gtk-dark.css \
$(ithemedarkerdir)/gtk-3.0
cd $(srcdir)/gtk-3.0/$(GTK3_VERSION) && cp -R \
gtk-darker.css \
$(ithemedarkerdir)/gtk-3.0/gtk.css
endif # ENABLE_DARKER
if ENABLE_DARK
$(MKDIR_P) $(ithemedarkdir)/gtk-3.0
cd $(srcdir)/gtk-3.0 && cp thumbnail-dark.png $(ithemedarkdir)/gtk-3.0/thumbnail.png
cd $(srcdir)/gtk-3.0/$(GTK3_VERSION) && cp -R \
assets \
$(ithemedarkdir)/gtk-3.0
sassc $(srcdir)/gtk-3.0/$(GTK3_VERSION)/sass/gtk-dark.scss $(srcdir)/gtk-3.0/$(GTK3_VERSION)/gtk-dark.css;
sassc $(srcdir)/gtk-3.0/$(GTK3_VERSION)/sass/gtk.scss $(srcdir)/gtk-3.0/$(GTK3_VERSION)/gtk.css;
cd $(srcdir)/gtk-3.0/$(GTK3_VERSION) && cp -R \
gtk-dark.css \
$(ithemedarkdir)/gtk-3.0/gtk.css
endif # ENABLE_DARK
if !ENABLE_TRANSPARENCY
if ENABLE_LIGHT
sassc $(srcdir)/gtk-3.0/$(GTK3_VERSION)/sass/gtk-solid.scss $(srcdir)/gtk-3.0/$(GTK3_VERSION)/gtk-solid.css;
sassc $(srcdir)/gtk-3.0/$(GTK3_VERSION)/sass/gtk-solid-dark.scss $(srcdir)/gtk-3.0/$(GTK3_VERSION)/gtk-solid-dark.css;
sassc $(srcdir)/gtk-3.0/$(GTK3_VERSION)/sass/gtk.scss $(srcdir)/gtk-3.0/$(GTK3_VERSION)/gtk.css;
sassc $(srcdir)/gtk-3.0/$(GTK3_VERSION)/sass/gtk-dark.scss $(srcdir)/gtk-3.0/$(GTK3_VERSION)/gtk-dark.css;
cd $(srcdir)/gtk-3.0/$(GTK3_VERSION) && cp -R \
gtk-solid.css \
$(ithemedir)/gtk-3.0/gtk.css
cd $(srcdir)/gtk-3.0/$(GTK3_VERSION) && cp -R \
gtk-solid-dark.css \
$(ithemedir)/gtk-3.0/gtk-dark.css
endif # ENABLE_LIGHT
if ENABLE_DARKER
sassc $(srcdir)/gtk-3.0/$(GTK3_VERSION)/sass/gtk-solid-darker.scss $(srcdir)/gtk-3.0/$(GTK3_VERSION)/gtk-solid-darker.css;
sassc $(srcdir)/gtk-3.0/$(GTK3_VERSION)/sass/gtk-solid-dark.scss $(srcdir)/gtk-3.0/$(GTK3_VERSION)/gtk-solid-dark.css;
sassc $(srcdir)/gtk-3.0/$(GTK3_VERSION)/sass/gtk.scss $(srcdir)/gtk-3.0/$(GTK3_VERSION)/gtk.css;
sassc $(srcdir)/gtk-3.0/$(GTK3_VERSION)/sass/gtk-dark.scss $(srcdir)/gtk-3.0/$(GTK3_VERSION)/gtk-dark.css;
cd $(srcdir)/gtk-3.0/$(GTK3_VERSION) && cp -R \
gtk-solid-darker.css \
$(ithemedarkerdir)/gtk-3.0/gtk.css
cd $(srcdir)/gtk-3.0/$(GTK3_VERSION) && cp -R \
gtk-solid-dark.css \
$(ithemedarkerdir)/gtk-3.0/gtk-dark.css
endif # ENABLE_DARKER
if ENABLE_DARK
sassc $(srcdir)/gtk-3.0/$(GTK3_VERSION)/sass/gtk-solid-dark.scss $(srcdir)/gtk-3.0/$(GTK3_VERSION)/gtk-solid-dark.css;
sassc $(srcdir)/gtk-3.0/$(GTK3_VERSION)/sass/gtk.scss $(srcdir)/gtk-3.0/$(GTK3_VERSION)/gtk.css;
cd $(srcdir)/gtk-3.0/$(GTK3_VERSION) && cp -R \
gtk-solid-dark.css \
$(ithemedarkdir)/gtk-3.0/gtk.css
endif # ENABLE_DARK
endif #!ENABLE_TRANSPARENCY
@if [ "$(GTK_VERSION)" != "3.18" ]; then \
cd $(srcdir)/gtk-3.0/$(GTK3_VERSION) && cp -RL compile-gresources.sh $(ithemedir)/gtk-3.0/compile-gresources.sh;\
cd ../..;\
cd $(srcdir)/gtk-3.0/$(GTK3_VERSION) && cp -RL compile-gresources.sh $(ithemedarkdir)/gtk-3.0/compile-gresources.sh;\
cd ../..;\
cd $(srcdir)/gtk-3.0/$(GTK3_VERSION) && cp -RL compile-gresources.sh $(ithemedarkerdir)/gtk-3.0/compile-gresources.sh;\
cd ../..;\
cd $(ithemedir)/gtk-3.0/ && ./compile-gresources.sh LIGHT;\
cd $(ithemedarkdir)/gtk-3.0/ && ./compile-gresources.sh DARK;\
cd $(ithemedarkerdir)/gtk-3.0/ && ./compile-gresources.sh DARKER;\
fi
endif # ENABLE_GTK3
if ENABLE_METACITY
if ENABLE_LIGHT
@ -326,36 +166,6 @@ endif # ENABLE_DARK
endif # ENABLE_UNITY
if ENABLE_XFWM
cd $(srcdir)/xfwm4 && $(MKDIR_P) assets assets-dark && ./render-assets.sh
if ENABLE_LIGHT
$(MKDIR_P) $(ithemedir)/xfwm4
cd $(srcdir)/xfwm4 && \
cp -R assets/*.png $(ithemedir)/xfwm4 && \
cp themerc $(ithemedir)/xfwm4/themerc
endif # ENABLE_LIGHT
if ENABLE_DARKER
$(MKDIR_P) $(ithemedarkerdir)/xfwm4
cd $(srcdir)/xfwm4 && \
cp -R assets-dark/*.png $(ithemedarkerdir)/xfwm4 && \
cp themerc-dark $(ithemedarkerdir)/xfwm4/themerc
endif # ENABLE_DARKER
if ENABLE_DARK
$(MKDIR_P) $(ithemedarkdir)/xfwm4
cd $(srcdir)/xfwm4 && \
cp -R assets-dark/*.png $(ithemedarkdir)/xfwm4 && \
cp themerc-dark $(ithemedarkdir)/xfwm4/themerc
endif # ENABLE_DARK
endif # ENABLE_XFWM
uninstall-local:
rm -rf $(ithemedir)
@ -368,13 +178,9 @@ if ENABLE_DARK
endif # ENABLE_DARK
EXTRA_DIST = $(srcdir)/cinnamon \
$(srcdir)/gnome-shell \
$(srcdir)/gtk-2.0 \
$(srcdir)/gtk-3.0 \
$(srcdir)/metacity-1 \
$(srcdir)/unity \
$(srcdir)/xfwm4 \
$(srcdir)/index.theme \
$(srcdir)/index.theme-darker \
$(srcdir)/index.theme-dark
EXTRA_DIST = \
cinnamon \
gnome-shell \
index \
metacity-1 \
unity

View File

@ -0,0 +1,78 @@
VPATH =
targets := $(shell cat $(srcdir)/assets.txt)
light := $(patsubst %,light/assets/%.png,$(targets))
dark := $(patsubst %,dark/assets/%.png,$(targets))
mbt_entry := $(filter entry-%toolbar,$(targets))
mbt_menubar := $(filter menubar%,$(targets))
mbt_button := $(filter button%,$(targets))
mbt_light := \
$(srcdir)/menubar-toolbar/menubar-toolbar.rc \
$(patsubst %,menubar-toolbar/%.png,$(mbt_entry) $(mbt_menubar))
mbt_dark := \
$(srcdir)/menubar-toolbar/menubar-toolbar-dark.rc \
$(patsubst %,menubar-toolbar/%-dark.png,$(mbt_entry) $(mbt_menubar)) \
$(patsubst %,menubar-toolbar/%.png,$(mbt_button))
rc := apps main panel xfce-notify
srcrc := $(patsubst %,$(srcdir)/%.rc,$(rc))
light: $(light)
dark: $(dark)
mbt_light: $(mbt_light)
mbt_dark: $(mbt_dark)
light/assets dark/assets menubar-toolbar:
$(MKDIR_P) "$@"/
clean:
rm -rf light/assets/ dark/assets/ menubar-toolbar/*.png
$(light): $(srcdir)/light/assets.svg | light/assets
$(dark): $(srcdir)/dark/assets.svg | dark/assets
$(light) $(dark):
$(INKSCAPE) --export-id-only --export-png="$@" --export-id="$(basename $(notdir $@))" --export-dpi=$(if $(filter $(OPTION_GTK2_HIDPI),true),192,96) "$<" >/dev/null
$(OPTIPNG) -o7 --quiet "$@"
menubar-toolbar/%-dark.png: dark/assets/%.png | menubar-toolbar
cp "$<" "$@"
menubar-toolbar/%.png: light/assets/%.png | menubar-toolbar
cp "$<" "$@"
.PHONY: light dark mbt_light mbt_dark clean
if ENABLE_LIGHT
gtk2themedir = $(themedir)/gtk-2.0
gtk2themeassetsdir = $(gtk2themedir)/assets
gtk2theme_DATA = $(srcrc) $(srcdir)/light/gtkrc
gtk2themeassets_DATA = $(light)
nobase_gtk2theme_DATA = $(mbt_light)
endif
if ENABLE_DARKER
gtk2themedarkerdir = $(themedarkerdir)/gtk-2.0
gtk2themedarkerassetsdir = $(gtk2themedarkerdir)/assets
gtk2themedarker_DATA = $(srcrc) $(srcdir)/darker/gtkrc
gtk2themedarkerassets_DATA = $(light)
nobase_gtk2themedarker_DATA = $(mbt_dark)
endif
if ENABLE_DARK
gtk2themedarkdir = $(themedarkdir)/gtk-2.0
gtk2themedarkassetsdir = $(gtk2themedarkdir)/assets
gtk2themedark_DATA = $(srcrc) $(srcdir)/dark/gtkrc
gtk2themedarkassets_DATA = $(dark)
nobase_gtk2themedark_DATA = $(mbt_dark)
endif
EXTRA_DIST = \
assets.txt \
$(srcrc) \
$(patsubst %,%/assets.svg,light dark) \
$(patsubst %,%/gtkrc,light darker dark) \
$(patsubst %,menubar-toolbar/menubar-toolbar%,.rc -dark.rc)

View File

Before

Width:  |  Height:  |  Size: 250 KiB

After

Width:  |  Height:  |  Size: 250 KiB

View File

Before

Width:  |  Height:  |  Size: 257 KiB

After

Width:  |  Height:  |  Size: 257 KiB

View File

@ -1,29 +0,0 @@
#!/bin/bash
set -ueo pipefail
INKSCAPE="$(which inkscape)"
OPTIPNG="$(which optipng)"
ASSETS_DIR="$1"
SRC_FILE="${ASSETS_DIR}".svg
i="$2"
result_file="$ASSETS_DIR/$i.png"
if [[ -f "${result_file}" ]] ; then
echo "${result_file} already exists."
else
echo "Rendering '${result_file}'"
if [[ "${OPTION_GTK2_HIDPI:-false}" != "true" ]]; then
"$INKSCAPE" --export-id="$i" \
--export-id-only \
--export-png="${result_file}" "$SRC_FILE" >/dev/null
else
"$INKSCAPE" --export-id="$i" \
--export-id-only \
--export-dpi=192 \
--export-png="${result_file}" "$SRC_FILE" >/dev/null
fi
"$OPTIPNG" -o7 --quiet "${result_file}"
fi

View File

@ -1,41 +0,0 @@
#!/bin/bash
set -ueo pipefail
# Make sure that parallel is GNU parallel and not moreutils.
# Otherwise, it fails silently. There's no smooth way to detect this.
if [[ "$(which parallel 2> /dev/null)" ]]; then
cmd=(parallel)
else
cmd=(xargs -n1)
fi
ASSETS_DIR="assets"
DARK_ASSETS_DIR="assets-dark"
"${cmd[@]}" ./render-asset.sh ${ASSETS_DIR} < assets.txt
"${cmd[@]}" ./render-asset.sh ${DARK_ASSETS_DIR} < assets.txt
cp $ASSETS_DIR/entry-toolbar.png menubar-toolbar/entry-toolbar.png
cp $ASSETS_DIR/entry-active-toolbar.png menubar-toolbar/entry-active-toolbar.png
cp $ASSETS_DIR/entry-disabled-toolbar.png menubar-toolbar/entry-disabled-toolbar.png
cp $ASSETS_DIR/menubar.png menubar-toolbar/menubar.png
cp $ASSETS_DIR/menubar_button.png menubar-toolbar/menubar_button.png
cp $DARK_ASSETS_DIR/button.png menubar-toolbar/button.png
cp $DARK_ASSETS_DIR/button-hover.png menubar-toolbar/button-hover.png
cp $DARK_ASSETS_DIR/button-active.png menubar-toolbar/button-active.png
cp $DARK_ASSETS_DIR/button-insensitive.png menubar-toolbar/button-insensitive.png
cp $DARK_ASSETS_DIR/entry-toolbar.png menubar-toolbar/entry-toolbar-dark.png
cp $DARK_ASSETS_DIR/entry-active-toolbar.png menubar-toolbar/entry-active-toolbar-dark.png
cp $DARK_ASSETS_DIR/entry-disabled-toolbar.png menubar-toolbar/entry-disabled-toolbar-dark.png
cp $DARK_ASSETS_DIR/menubar.png menubar-toolbar/menubar-dark.png
cp $DARK_ASSETS_DIR/menubar_button.png menubar-toolbar/menubar_button-dark.png
exit 0

View File

@ -0,0 +1,31 @@
include ../common.am
light/gtk.css: gtk.css | light
cp "$<" "$@"
light/gtk-dark.css: gtk-dark.css | light
cp "$<" "$@"
darker/gtk.css: gtk-darker.css | darker
cp "$<" "$@"
darker/gtk-dark.css: gtk-dark.css | darker
cp "$<" "$@"
dark/gtk.css: gtk-dark.css | dark
cp "$<" "$@"
gtk3themeassetsdir = $(gtk3themedir)/assets
gtk3themedarkerassetsdir = $(gtk3themedarkerdir)/assets
gtk3themedarkassetsdir = $(gtk3themedarkdir)/assets
if ENABLE_LIGHT
gtk3theme_DATA = light/gtk.css light/gtk-dark.css
gtk3themeassets_DATA = $(normal) $(hidpi)
endif
if ENABLE_DARKER
gtk3themedarker_DATA = darker/gtk.css darker/gtk-dark.css
gtk3themedarkerassets_DATA = $(normal) $(hidpi)
endif
if ENABLE_DARK
gtk3themedark_DATA = dark/gtk.css
gtk3themedarkassets_DATA = $(normal) $(hidpi)
endif

View File

@ -1,23 +0,0 @@
#!/bin/bash
set -ueo pipefail
INKSCAPE="$(which inkscape)"
OPTIPNG="$(which optipng)"
SRC_FILE="assets.svg"
ASSETS_DIR="assets"
i="$1"
echo "Rendering '$ASSETS_DIR/$i.png'"
"$INKSCAPE" --export-id="$i" \
--export-id-only \
--export-png="$ASSETS_DIR/$i.png" "$SRC_FILE" >/dev/null \
&& "$OPTIPNG" -o7 --quiet "$ASSETS_DIR/$i.png"
echo "Rendering '$ASSETS_DIR/$i@2.png'"
"$INKSCAPE" --export-id="$i" \
--export-id-only \
--export-dpi=192 \
--export-png="$ASSETS_DIR/$i@2.png" "$SRC_FILE" >/dev/null \
&& "$OPTIPNG" -o7 --quiet "$ASSETS_DIR/$i@2.png"

View File

@ -1,12 +0,0 @@
#!/bin/bash
set -ueo pipefail
# Make sure that parallel is GNU parallel and not moreutils.
# Otherwise, it fails silently. There's no smooth way to detect this.
if [[ "$(which parallel 2> /dev/null)" ]]; then
cmd=(parallel)
else
cmd=(xargs -n1)
fi
"${cmd[@]}" ./render-asset.sh < assets.txt

View File

@ -0,0 +1,35 @@
include ../common.am
light/gtk-main.css: gtk.css | light
cp "$<" "$@"
light/gtk-main-dark.css: gtk-dark.css | light
cp "$<" "$@"
darker/gtk-main.css: gtk-darker.css | darker
cp "$<" "$@"
darker/gtk-main-dark.css: gtk-dark.css | darker
cp "$<" "$@"
dark/gtk-main.css: gtk-dark.css | dark
cp "$<" "$@"
dark/gtk-main-dark.css: | dark
touch "$@"
%/gtk.css %/gtk-dark.css: | %
echo '@import url("resource:///org/gnome/arc-theme/$(subst gtk,gtk-main,$(notdir $@))");' > "$@"
%/gtk.gresource.xml: | %
echo "<?xml version='1.0' encoding='UTF-8'?><gresources><gresource prefix='/org/gnome/arc-theme'>$(patsubst %,<file preprocess='to-pixdata'>../%</file>,$(normal) $(hidpi))<file>gtk-main.css</file>$(if $(filter $(dir $@),dark/),,<file>gtk-main-dark.css</file>)</gresource></gresources>" > "$@"
%/gtk.gresource: %/gtk.gresource.xml %/gtk-main.css %/gtk-main-dark.css $(normal) $(hidpi)
glib-compile-resources --sourcedir="$(dir $<)" --target="$@" "$<"
if ENABLE_LIGHT
gtk3theme_DATA = light/gtk.css light/gtk-dark.css light/gtk.gresource
endif
if ENABLE_DARKER
gtk3themedarker_DATA = darker/gtk.css darker/gtk-dark.css darker/gtk.gresource
endif
if ENABLE_DARK
gtk3themedark_DATA = dark/gtk.css dark/gtk.gresource
endif

View File

@ -1,56 +0,0 @@
#!/bin/bash
# Setup
mv gtk.css gtk-main.css
if [ "$1" != "DARK" ]; then
mv gtk-dark.css gtk-main-dark.css
fi
# Get processed assets lists
ls ./assets | sort > temp_asset_list.txt
# Build dynamic gresouce xml spec from css and assets
read -d '' RES_PART1 <<"EOF"
<?xml version="1.0" encoding="UTF-8"?>
<gresources>
<gresource prefix="/org/gnome/arc-theme">
EOF
echo $RES_PART1 > gtk.gresource.xml
# Import as nodes the file assets
xargs -i echo '<file preprocess="to-pixdata">assets/{}</file>' >> gtk.gresource.xml < temp_asset_list.txt
rm -f temp_asset_list.txt
# Write the css file information to the template
if [ "$1" != "DARK" ]; then
read -d '' RES_PART2 <<"EOF"
<file>gtk-main.css</file>
<file>gtk-main-dark.css</file>
</gresource>
</gresources>
EOF
else
read -d '' RES_PART2 <<"EOFDARK"
<file>gtk-main.css</file>
</gresource>
</gresources>
EOFDARK
fi
echo $RES_PART2 >> gtk.gresource.xml
# Compile the gresource file
glib-compile-resources gtk.gresource.xml
echo '@import url("resource:///org/gnome/arc-theme/gtk-main.css");' > gtk.css
if [ "$1" != "DARK" ]; then
echo '@import url("resource:///org/gnome/arc-theme/gtk-main-dark.css");' > gtk-dark.css
fi
# Cleanup
rm -rf assets
rm -f gtk.gresource.xml
rm -f gtk-main.css
rm -f gtk-main-dark.css
rm -f compile-gresources.sh

View File

@ -1,28 +0,0 @@
#!/bin/bash
set -ueo pipefail
INKSCAPE="$(which inkscape)"
OPTIPNG="$(which optipng)"
SRC_FILE="assets.svg"
ASSETS_DIR="assets"
i="$1"
result_file="$ASSETS_DIR/$i.png"
if [[ -f "${result_file}" ]] ; then
echo "${result_file} already exists."
else
echo "Rendering '$ASSETS_DIR/$i.png'"
"$INKSCAPE" --export-id="$i" \
--export-id-only \
--export-png="$ASSETS_DIR/$i.png" "$SRC_FILE" >/dev/null \
&& "$OPTIPNG" -o7 --quiet "$ASSETS_DIR/$i.png"
echo "Rendering '$ASSETS_DIR/$i@2.png'"
"$INKSCAPE" --export-id="$i" \
--export-id-only \
--export-dpi=192 \
--export-png="$ASSETS_DIR/$i@2.png" "$SRC_FILE" >/dev/null \
&& "$OPTIPNG" -o7 --quiet "$ASSETS_DIR/$i@2.png"
fi

View File

@ -1,12 +0,0 @@
#!/bin/bash
set -ueo pipefail
# Make sure that parallel is GNU parallel and not moreutils.
# Otherwise, it fails silently. There's no smooth way to detect this.
if [[ "$(which parallel 2> /dev/null)" ]]; then
cmd=(parallel)
else
cmd=(xargs -n1)
fi
"${cmd[@]}" ./render-asset.sh < assets.txt

View File

@ -1 +0,0 @@
3.20

View File

@ -1 +0,0 @@
3.20

View File

@ -0,0 +1,19 @@
if ENABLE_LIGHT
gtk3theme_DATA = light/thumbnail.png
endif
if ENABLE_DARKER
gtk3themedarker_DATA = light/thumbnail.png
endif
if ENABLE_DARK
gtk3themedark_DATA = dark/thumbnail.png
endif
EXTRA_DIST = \
light \
dark \
_colors.scss.thpl
SUBDIRS = $(GTK3_VERSION)
DIST_SUBDIRS = 3.18 3.20

39
common/gtk-3.0/common.am Normal file
View File

@ -0,0 +1,39 @@
VPATH =
targets := $(shell cat $(srcdir)/assets.txt)
normal := $(patsubst %,assets/%.png,$(targets))
hidpi := $(patsubst %,assets/%@2.png,$(targets))
normal: $(normal)
hidpi: $(hidpi)
assets light dark darker:
$(MKDIR_P) "$@"/
clean:
rm -rf assets/ light/ dark/ darker/
$(normal): $(srcdir)/assets.svg | assets
$(INKSCAPE) --export-id-only --export-png="$@" --export-id="$(basename $(notdir $@))" --export-dpi=96 "$<" >/dev/null
$(OPTIPNG) -o7 --quiet "$@"
$(hidpi): $(srcdir)/assets.svg | assets
$(INKSCAPE) --export-id-only --export-png="$@" --export-id="$(patsubst %@2,%,$(basename $(notdir $@)))" --export-dpi=192 "$<" >/dev/null
$(OPTIPNG) -o7 --quiet "$@"
.PHONY: normal hidpi clean
if ENABLE_TRANSPARENCY
%.css: $(srcdir)/sass/%.scss
$(SASSC) "$<" "$@"
else
gtk.css: $(srcdir)/sass/gtk-solid.scss
$(SASSC) "$<" "$@"
gtk-%.css: $(srcdir)/sass/gtk-solid-%.scss
$(SASSC) "$<" "$@"
endif
EXTRA_DIST = \
assets.txt \
assets.svg \
sass

View File

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

43
common/xfwm4/Makefile.am Normal file
View File

@ -0,0 +1,43 @@
VPATH =
targets := $(shell cat $(srcdir)/assets.txt)
light := $(patsubst %,light/assets/%.png,$(targets))
dark := $(patsubst %,dark/assets/%.png,$(targets))
light: $(light)
dark: $(dark)
light/assets dark/assets:
$(MKDIR_P) "$@"/
clean:
rm -rf light/assets/ dark/assets/
$(light): $(srcdir)/light/assets.svg | light/assets
$(dark): $(srcdir)/dark/assets.svg | dark/assets
$(light) $(dark):
$(INKSCAPE) --export-id-only --export-png="$@" --export-id="$(basename $(notdir $@))" --export-dpi=$(if $(filter $(OPTION_GTK2_HIDPI),true),192,96) "$<" >/dev/null
$(OPTIPNG) -o7 --quiet "$@"
.PHONY: light dark clean
if ENABLE_LIGHT
xfwm4themedir = $(themedir)/xfwm4
xfwm4theme_DATA = $(srcdir)/light/themerc $(light)
endif
if ENABLE_DARKER
xfwm4themedarkerdir = $(themedarkerdir)/xfwm4
xfwm4themedarker_DATA = $(srcdir)/dark/themerc $(dark)
endif
if ENABLE_DARK
xfwm4themedarkdir = $(themedarkdir)/xfwm4
xfwm4themedark_DATA = $(srcdir)/dark/themerc $(dark)
endif
EXTRA_DIST = \
assets.txt \
$(patsubst %,%/assets.svg,light dark) \
$(patsubst %,%/themerc,light dark)

View File

Before

Width:  |  Height:  |  Size: 71 KiB

After

Width:  |  Height:  |  Size: 71 KiB

View File

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 70 KiB

View File

@ -1,29 +0,0 @@
#!/bin/bash
set -ueo pipefail
INKSCAPE="$(which inkscape)"
OPTIPNG="$(which optipng)"
ASSETS_DIR="$1"
SRC_FILE="${ASSETS_DIR}".svg
i="$2"
result_file="$ASSETS_DIR/$i.png"
if [[ -f "${result_file}" ]] ; then
echo "${result_file} already exists."
else
echo "Rendering '${result_file}'"
if [[ "${OPTION_GTK2_HIDPI:-false}" != "true" ]]; then
"$INKSCAPE" --export-id="$i" \
--export-id-only \
--export-png="${result_file}" "$SRC_FILE" >/dev/null
else
"$INKSCAPE" --export-id="$i" \
--export-id-only \
--export-dpi=192 \
--export-png="${result_file}" "$SRC_FILE" >/dev/null
fi
"$OPTIPNG" -o7 --quiet "${result_file}"
fi

View File

@ -1,13 +0,0 @@
#!/bin/bash
set -ueo pipefail
# Make sure that parallel is GNU parallel and not moreutils.
# Otherwise, it fails silently. There's no smooth way to detect this.
if [[ "$(which parallel 2> /dev/null)" ]]; then
cmd=(parallel)
else
cmd=(xargs -n1)
fi
"${cmd[@]}" ./render-asset.sh assets < assets.txt
"${cmd[@]}" ./render-asset.sh assets-dark < assets.txt

View File

@ -26,10 +26,37 @@ ARC_ENABLE([TRANSPARENCY], [transparency], [transparency], [disable])
ARC_ENABLE([PLANK], [plank], [Plank theme], [disable])
ARC_ENABLE([OPENBOX], [openbox], [Openbox], [disable])
AS_IF([test "x$ENABLE_TRANSPARENCY" != xno], [
AC_SUBST([themedir], [${datadir}/themes/Arc])
AC_SUBST([themedarkerdir], [${datadir}/themes/Arc-Darker])
AC_SUBST([themedarkdir], [${datadir}/themes/Arc-Dark])
], [
AC_SUBST([themedir], [${datadir}/themes/Arc-solid])
AC_SUBST([themedarkerdir], [${datadir}/themes/Arc-Darker-solid])
AC_SUBST([themedarkdir], [${datadir}/themes/Arc-Dark-solid])
])
AS_IF([test "x$ENABLE_GTK3" != xno], [ARC_GTK3])
AS_IF([test "x$ENABLE_GNOME_SHELL" != xno], [ARC_GNOME_SHELL])
AS_IF([test "x$ENABLE_GTK2" != xno -o "x$ENABLE_GTK3" != xno -o "x$ENABLE_XFWM" != xno], [
AC_PATH_PROG([INKSCAPE], [inkscape])
AS_IF([test "x$ac_cv_path_INKSCAPE" = x], [AC_MSG_ERROR([inkscape not found])])
AC_PATH_PROG([OPTIPNG], [optipng])
AS_IF([test "x$ac_cv_path_OPTIPNG" = x], [AC_MSG_ERROR([optipng not found])])
])
AS_IF([test "x$ENABLE_GTK3" != xno -o "x$ENABLE_CINNAMON" != xno -o "x$ENABLE_GNOME_SHELL" != xno], [
AC_PATH_PROG([SASSC], [sassc])
AS_IF([test "x$ac_cv_path_SASSC" = x], [AC_MSG_ERROR([sassc not found])])
])
AC_CONFIG_FILES([
common/gtk-2.0/Makefile
common/gtk-3.0/Makefile
common/gtk-3.0/3.18/Makefile
common/gtk-3.0/3.20/Makefile
common/xfwm4/Makefile
common/Makefile
extra/Makefile
Makefile

View File

@ -1,13 +1,3 @@
if !ENABLE_TRANSPARENCY
themedir = $(datadir)/themes/Arc-solid
themedarkerdir = $(datadir)/themes/Arc-Darker-solid
themedarkdir = $(datadir)/themes/Arc-Dark-solid
else
themedir = $(datadir)/themes/Arc
themedarkerdir = $(datadir)/themes/Arc-Darker
themedarkdir = $(datadir)/themes/Arc-Dark
endif
ithemedir = $(DESTDIR)$(themedir)
ithemedarkerdir = $(DESTDIR)$(themedarkerdir)
ithemedarkdir = $(DESTDIR)$(themedarkdir)
@ -39,4 +29,5 @@ endif # ENABLE_PLANK
uninstall-local:
EXTRA_DIST = $(srcdir)/Arc-Plank
EXTRA_DIST = \
Arc-Plank

View File

@ -24,15 +24,16 @@ AC_DEFUN([ARC_GTK3], [
GTK3_VERSMJR=`echo $GTK3_VERSION | cut -d. -f1`
GTK3_VERSMNR=`echo $GTK3_VERSION | cut -d. -f2`
# Evenize the minor version for stable versions
AS_IF(
[test `expr $GTK3_VERSMNR % 2` != "0"],
[GTK3_VERSION="$GTK3_VERSMJR.`expr $GTK3_VERSMNR + 1`"]
)
AS_IF(
[! test -e "$GTK3DIR/$GTK3_VERSION"],
[AC_MSG_ERROR([Invalid GTK3 version: $GTK3_VERSION])]
[test "x$GTK3_VERSMJR" != x3], [AC_MSG_ERROR([Invalid GTK3 version: $GTK3_VERSION])],
[test "0$GTK3_VERSMNR" -lt 17], [AC_MSG_ERROR([GTK3 version too old: $GTK3_VERSION])],
[test "0$GTK3_VERSMNR" -lt 19], [GTK3_VERSION=3.18],
[test "0$GTK3_VERSMNR" -lt 25], [GTK3_VERSION=3.20],
[AC_MSG_ERROR([GTK3 version too new: $GTK3_VERSION])]
)
AC_SUBST([GTK3_VERSION])
AC_SUBST([gtk3themedir], [${themedir}/gtk-3.0])
AC_SUBST([gtk3themedarkerdir], [${themedarkerdir}/gtk-3.0])
AC_SUBST([gtk3themedarkdir], [${themedarkdir}/gtk-3.0])
AC_MSG_RESULT([Building for GTK3 $GTK3_VERSION])
])