aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Benjamin Barenblat <bbarenblat@gmail.com>2021-12-22 16:44:30 -0500
committerGravatar Benjamin Barenblat <bbarenblat@gmail.com>2021-12-22 16:44:30 -0500
commit746f3d8ddcc6303f3f5725d5b3ad847b9e4fd7b2 (patch)
treeb659f1dfb566035abe3732c749a54c3492e15725
parent5244963a46843e4fa2888c4ed981b1aa47dd563d (diff)
Switch build system to Ninja
-rw-r--r--.gitignore18
-rw-r--r--build.ninja39
-rwxr-xr-x[-rw-r--r--]gen/png (renamed from Makefile)17
3 files changed, 61 insertions, 13 deletions
diff --git a/.gitignore b/.gitignore
index 4fe834f..998fb37 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,8 +1,26 @@
+# Copyright 2021 Benjamin Barenblat
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
# Editor backup files
*~
\#*
.\#*
.*.swp
+# Build system
+.ninja_*
+
# Generated files
+disable_keyboard_shortcuts
*.zip
diff --git a/build.ninja b/build.ninja
new file mode 100644
index 0000000..63813aa
--- /dev/null
+++ b/build.ninja
@@ -0,0 +1,39 @@
+# Copyright 2021 Benjamin Barenblat
+#
+# Licensed under the Apache License, Version 2.0 (the "License"); you may not
+# use this file except in compliance with the License. You may obtain a copy of
+# the License at
+#
+# https://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+name = disable_keyboard_shortcuts
+
+rule generate_png
+ command = gen/png $in $out 2>/dev/null
+ description = Generating $out
+
+rule minify_js
+ command = uglifyjs $in -m -o $out
+ description = Minifying $in
+
+rule minify_json
+ command = jq -Sc . $in >$out
+ description = Minifying $in
+
+rule zip
+ command = zip -qr $out $in
+ description = Zipping $out
+
+build $name/background.js: minify_js background.js
+build $name/manifest.json: minify_json manifest.json
+build $name/icon128.png: generate_png icon128.png
+build $name/icon48.png: generate_png icon128.png
+
+build $name.zip: zip $name/background.js $name/manifest.json $name/icon128.png $
+ $name/icon48.png
diff --git a/Makefile b/gen/png
index a7c32c0..337fda1 100644..100755
--- a/Makefile
+++ b/gen/png
@@ -1,4 +1,4 @@
-# Copyright 2019 Google LLC
+#!/bin/sh
# Copyright 2021 Benjamin Barenblat
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
@@ -13,16 +13,7 @@
# License for the specific language governing permissions and limitations under
# the License.
-NAME = disable_keyboard_shortcuts
+set -eu
-$(NAME).zip: background.js manifest.json icon128.png icon48.png
- mkdir $(NAME)
- uglifyjs background.js -m -o $(NAME)/background.js
- jq -Sc . manifest.json >$(NAME)/manifest.json
- cp -al icon128.png icon48.png $(NAME)
- zip -9r $(NAME) $(NAME)
- $(RM) -r $(NAME)
-
-.PHONY: clean
-clean:
- $(RM) -r $(NAME).zip $(NAME)
+cp "$1" "$2"
+optipng -o7 "$2"