Commit graph

73 commits

Author SHA1 Message Date
Marc Durdin
787b32ba34
Revert "chore(web): merge master into feature-esmodule-web-engine (A17S9 end) 🧩" 2023-03-31 14:17:37 +11:00
Joshua A. Horton
b85087f392 chore(web): Merge branch 'master' into chore/web/update-feature-esmodule-for-configure-fix 2023-03-23 15:15:07 +07:00
Marc Durdin
549a8e009e chore(common): define BUILDER_CONFIGURATION env var 2023-03-23 09:21:55 +07:00
Marc Durdin
7cd6b00946 chore(common): prevent multiple npm ci runs in child scripts
Fixes #8471.

Ensures that `npm take-forever` (aka `npm ci`, `npm install`) only runs
once during a parent/child build script run.

Note that this also works even where build scripts manually call other
build scripts (e.g. input-processor as it is currently calling kmc
build manually) -- though this is not a recommended practice.
2023-03-21 11:08:22 +07:00
Marc Durdin
958f12386d chore(common): add win/mac/linux common build.sh parent scripts
Currently, there are no tests that will run but these scripts will at
least give us a starting point for future code.
2023-03-14 13:10:06 +07:00
Marc Durdin
0811282ccf chore(common): add common/web/build.sh, small cleanup 2023-03-14 13:05:27 +07:00
Joshua A. Horton
a9f28138a4 chore(web): Merge branch 'feature-esmodule-web-engine' into change/web/child-script-pattern 2023-03-14 12:24:10 +07:00
Marc Durdin
534bd2a54b
Merge pull request #8416 from keymanapp/chore/common/build-script-performance
chore(common): build script performance improvements
2023-03-14 15:41:32 +11:00
Marc Durdin
3302abaf73 chore(common): use builder_trim instead of trim, _builder_trim 2023-03-13 09:53:43 +07:00
Marc Durdin
350808bd5d chore(common): fixup tests and various typo tweaks
When running tests, discovered a number of typos in builder.inc.sh.

Also fixup pathing for builder include for all scripts under resources/
to ensure that we can maximize performance.
2023-03-13 09:43:09 +07:00
Marc Durdin
fbd41c0a74
chore: fix typo
Co-authored-by: Darcy Wong <darcy_wong@sil.org>
2023-03-13 12:45:11 +11:00
Marc Durdin
de0580f436 chore(common): fix another typo 2023-03-13 08:16:45 +07:00
Marc Durdin
92ed99c4d6 chore(common): build script performance improvements
Improves build script performance by:
* using built-ins wherever possible (e.g. string splitting)
* eliminating redundant code
* using absolute (to $KEYMAN_ROOT) rather than relative paths to avoid realpath
* removing unnecessary `npm run` calls

BEFORE                         | AFTER
-------------------------------|----------------------
time ./core/build.sh --help    |
real    0m2.116s               | real    0m0.874s
user    0m0.578s               | user    0m0.198s
sys     0m0.984s               | sys     0m0.289s
-------------------------------|----------------------
time ./web/build.sh --help     |
real    0m3.523s               | real    0m0.757s
user    0m1.166s               | user    0m0.320s
sys     0m2.273s               | sys     0m0.455s
-------------------------------|----------------------
time ./web/build.sh -d         |
real    1m34.750s              | real    0m59.974s
user    0m9.721s               | user    0m6.284s
sys     0m19.652s              | sys     0m13.202s

@keymanapp-test-bot skip
2023-03-13 07:18:09 +07:00
Marc Durdin
22930be045 chore(common): minor cleanup 2023-03-13 06:20:28 +07:00
Marc Durdin
339cff11cf chore(common): support shorthand for build.sh
Fixes #8396
2023-03-13 06:15:43 +07:00
Marc Durdin
660e98a430 feat(common): support single target for a dependency
Fixes #8397.
2023-03-09 14:54:27 +07:00
Darcy Wong
099900ea51 feat(common): builder.inc.sh inheritable options
Appending a `+` to a builder option will automatically pass that option to child scripts.

Applying #8371 to master branch and @darcywong00 will then re-apply to #7407
2023-03-08 10:33:35 +07:00
Marc Durdin
00017350d3 chore(common): clean up --debug usage in build scripts
Fixes #8373.

Note that the core functionality requested in #8373 is already in place;
this commit just does some cleanup to make this easier to maintain in
the future:

* Uses `builder_is_debug_build` function to test for debug build
  (instead of `builder_has_option --debug`, which would also work but
  using the other function avoids typo issues with the option name).

* Renames `$_builder_debug` to `$_builder_debug_internal` to reduce
  naming confusion

* Documents `$builder_debug`, `builder_is_debug_build`, and clarifies
  usage of `--debug` option.

* Logs command line for dep builds (we could hide this in the future,
  but it certainly doesn't hurt for now!)
2023-03-08 05:40:40 +07:00
Marc Durdin
f1985ad7a5
chore: address review comments 2023-03-07 09:54:22 +11:00
Marc Durdin
1bc31c8792 chore(common): handle pre-init builder_echo 2023-03-02 05:56:24 +07:00
Marc Durdin
06afdd262b chore(common): cleanup build.inc.sh echo
Makes the output of log messages from builder scripts more consistent,
and uses color more effectively to highlight specific parts of lines.
2023-03-01 14:51:08 +07:00
Marc Durdin
3c175bfc63 feat(core): run tests for current arch 2023-03-01 13:41:23 +07:00
Marc Durdin
e85bbaa069 feat(core): build both archs for mac 2023-03-01 13:02:48 +07:00
Marc Durdin
78f18c38ee feat(core): mac fat library -- testing 2023-03-01 11:00:15 +07:00
Marc Durdin
572bd74783 fix(common): builder: skip dependency build for clean action
We should not attempt to build dependencies when running `clean`. Note:
if your `clean` action requires dependencies, then something is very,
very wrong and you should fix that!
2023-03-01 08:26:30 +07:00
Marc Durdin
b809a60936
Merge pull request #7054 from keymanapp/feature-ldml
epic: LDML keyboard support 🙀
2023-02-28 20:38:00 +11:00
Marc Durdin
b96e863885 chore: Merge branch 'feature-ldml' into chore/merge-master-into-feature-ldml-A17S7 2023-02-28 05:49:05 +07:00
Marc Durdin
e6ea381aba chore(common): fix child build error handling
Fixes #8322.

This issue was arising due to subshells masking the exit code.

set -e is not really to be trusted.
2023-02-27 15:09:42 +07:00
Marc Durdin
04189d2e3d chore(common): avoid -v for testing arrays in builder 2023-02-27 14:05:11 +07:00
Joshua Horton
93da017e0a
chore(web): Apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
2023-02-27 09:14:34 +07:00
Joshua A. Horton
21bf13c682 chore(web): implements some suggestions per review 2023-02-27 08:49:47 +07:00
Joshua A. Horton
6695c03ed7 change(common): missed part of the suggested tweak 2023-02-24 08:02:55 +07:00
Joshua A. Horton
c4ff8a5da3 chore(common): fix + enhancement per review 2023-02-24 08:01:42 +07:00
Joshua A. Horton
42f03916ad feat(common): adds warning if described output does not exist when finishing action 2023-02-23 16:18:18 +07:00
Marc Durdin
38603e8421
Merge pull request #8279 from keymanapp/chore/core/cleanup-meson-build
chore(core): cleanup meson build
2023-02-23 13:28:02 +11:00
Marc Durdin
b968bcfdfd
Merge branch 'feature-ldml' into chore/core/cleanup-meson-build 2023-02-23 08:49:56 +11:00
Joshua A. Horton
ca1d85f9e5 chore(web): cleanup per PR review 2023-02-22 15:39:58 +07:00
Joshua A. Horton
2f065e0b89 change(common): fixes a builder error 2023-02-22 13:22:30 +07:00
Joshua A. Horton
9692ab9db2 chore(web): minor cleanup 2023-02-22 12:28:11 +07:00
Joshua A. Horton
2135420a0a change(web): reworks Web build to #8198 - builds with parent-child pattern 2023-02-22 12:05:23 +07:00
Marc Durdin
ce864ea923 chore: update standard script prolog to use builtin instead of dirname 2023-02-22 11:04:15 +07:00
Marc Durdin
b0804dd2a4 chore: use builtin instead of dirname for perf 2023-02-22 10:59:11 +07:00
Marc Durdin
3005a82a8f chore: update docs and non-standard readlink refs 2023-02-22 10:41:54 +07:00
Marc Durdin
19101c6a2a chore(core): cleanup meson build
This updates our meson min version on Windows to 1.0, which means that
we can avoid having Visual Studio on the path, as meson can find it
anyway. With this change, we can eliminate the batch-wrapper for the
build, significantly improving build performance and simplifying the
scripts.

This also adds a change to disable tests for dependency builds of core,
along with the `--no-tests` command line option for doing builds without
tests.

Minor cleanup includes eliminating various warnings from meson.build
files, and standardizing WASM cross-platform build options for Windows.
2023-02-21 12:12:28 +07:00
Marc Durdin
f30f08ed92
Merge pull request #8173 from keymanapp/docs/build-utils-documentation
docs: builder.inc.sh improved documentation around dependencies
2023-02-20 21:06:54 +11:00
Marc Durdin
a004978863 chore: use builder_heading, remove echo_heading 2023-02-20 09:17:51 +07:00
Marc Durdin
c475188c6b chore: use builder_die, remove die 2023-02-20 09:03:37 +07:00
Marc Durdin
729f3ede72
Update resources/builder.inc.sh
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2023-02-16 12:34:56 +11:00
Marc Durdin
5379145724 chore(common): target_path unbound 2023-02-15 11:30:14 +07:00
Marc Durdin
c0951f8597 feat(common): support custom child projects 2023-02-15 11:21:10 +07:00