From 746f3d8ddcc6303f3f5725d5b3ad847b9e4fd7b2 Mon Sep 17 00:00:00 2001 From: Benjamin Barenblat Date: Wed, 22 Dec 2021 16:44:30 -0500 Subject: Switch build system to Ninja --- .gitignore | 18 ++++++++++++++++++ Makefile | 28 ---------------------------- build.ninja | 39 +++++++++++++++++++++++++++++++++++++++ gen/png | 19 +++++++++++++++++++ 4 files changed, 76 insertions(+), 28 deletions(-) delete mode 100644 Makefile create mode 100644 build.ninja create mode 100755 gen/png 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/Makefile b/Makefile deleted file mode 100644 index a7c32c0..0000000 --- a/Makefile +++ /dev/null @@ -1,28 +0,0 @@ -# Copyright 2019 Google LLC -# 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 - -$(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) 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/gen/png b/gen/png new file mode 100755 index 0000000..337fda1 --- /dev/null +++ b/gen/png @@ -0,0 +1,19 @@ +#!/bin/sh +# 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. + +set -eu + +cp "$1" "$2" +optipng -o7 "$2" -- cgit v1.2.3