Note: this does not remove auto merge from the
auto-merge-keyman-server-pr.yml GHA at this time, because that would
require us to use graphql to mark PRs as auto-merge, and we are not
quite ready to do that. So we'll continue to use the automerge action
for now.
The scope for pull request events has been expanded on
auto-merge-keyman-server-pr.yml so that updates to build status trigger
the automerge as needed.
Fixes: #14502
Build-bot: skip
Test-bot: skip
Move mac-specific build scripts and functions into our established
patterns for scripts under resources/build:
* new mac/mac.inc.sh for mac-specific functions, from mac-utils.inc.sh,
utils.inc.sh, builder-basic.inc.sh
* move other mac-specific scripts into mac/
Relates-to: #14065
Build-bot: build
Test-bot: skip
Consolidates the node-related script functions into node.inc.sh, as part
of cleaning up the build scripts and making them easier to maintain into
the future.
Fixes: #14447
Clarifies the confusing builder.inc.sh / build-utils.sh distinction by
giving the scripts more appropriate names. Most build scripts should use
builder-full.inc.sh; some helper scripts can use builder-basic.inc.sh.
Documented in resources/build/README.md.
Renames:
* resources/build/builder.inc.sh to resources/build/builder-full.inc.sh
* resources/build/build-utils.sh to resources/build/builder-basic.inc.sh
Other changes:
* Moves Android-specific functions out of builder-basic.inc.sh and into
android/build.sh.
* Renames functions in builder-basic.inc.sh
More functions may be moved from builder-basic.inc.sh into utils.inc.sh
or other scripts in the future.
Fixes: #14065
Build-bot: build all
Test-bot: skip
Adds documentation for various functions, removes unused functions (a
couple of simple, very lightly used functions were unDRYed; these could
go back the other way across all shell scripts if necessary). TODO items
noted for follow-up refactoring.
Fixes: #14275
Relates-to: #14269
Build-bot: build all
Test-bot: skip
We attempted to set the C++ version in standard.meson.build, but this
does not work well as the option name varies by platform, and it also
triggers a warning in meson. This fix moves the setting into each
meson.build project() default_options. As there are only a handful
of these, the maintenance burden is not high.
Fixes: #14432
Relates-to: #14355
Build-bot: build
Test-bot: skip
If the `$EMSCRIPTEN_BASE` dir is missing (which usually points to `emsdk/upstream/emscripten`), but we have the `emsdk` root directory with `emsdk/emsdk`, we can have everything we need to install the desired emscripten version.
Issue #13464 describes an error where the `upstream/emscripten` directory was missing - probably because the build got interrupted while installing emscripten. This change fixes this.
Fixes: #13464
Previously `add_zip_files` didn't work if the zip filename was not specified as first parameter. This change allows it to come after flags.
This will fix web release and other builds.
`jq.inc.sh` gets also used in some scripts that don't source our builder scripts, e.g. in git hooks. This means that `builder_is_windows` is not defined. This change replaces the call of that function with a slightly modified version of the previous implementation.
Follow-up-of: #14324
Previously `add_zip_files` didn't work if the zip filename was not
specified as first parameter. This change allows it to come after flags.
This will fix web release builds.
Test-bot: skip
`jq.inc.sh` gets also used in some scripts that don't source our
builder scripts, e.g. in git hooks. This means that `builder_is_windows`
is not defined. This change replaces the call of that function with
a slightly modified version of the previous implementation.
Follow-up-of: #14324
Build-bot: skip
Test-bot: skip
This makes of the testing framework added in #14345 and also renames
the tests to better separate the parts of the test name.
Build-bot: skip
Test-bot: skip
This makes use of the new functionality refactored in the previous
commit by replacing the use of the `wzzip` function with `add_zip_files`.
Test-bot: skip
This changes makes use of the logic that used to be in `win/zip.inc.sh`:
if the environment variable `GO_FAST` is set to 1, we use a low
compression level, resulting in faster builds. If it is set to 0 we
use maximum compression, resulting in slower builds. If `GO_FAST` is
not set we don't specify the compression level and rely on the defaults.
Test-bot: skip
Note that the ICU subprojects still explicitly specify C++17 since they are maintained outside of Keyman and so shouldn't be tied to the Keyman compiler version requirement.
Fixes: #12526
`7z` and `zip` behave differently if adding files that are not in the current directory. For files with relative paths, zip will add them relative to the current directory which is not what we want and can cause problems for the user. Therefore this change disallows files that are not in the current directory and aborts the build.
Note that the ICU subprojects still explicitly specify C++17 since they
are maintained outside of Keyman and so shouldn't be tied to the Keyman
compiler version requirement.
Fixes: #12526
Test-bot: skip
This change adds support for the `-xr!wildcard` parameter to the `add_zip_files` function, e.g. `-xr!build.sh` will exclude all `build.sh` files from the archive. This is an alternative to adding a file list.
Also add unit tests for `zip.inc.sh`.
`7z` and `zip` behave differently if adding files that are not in the
current directory. For files with relative paths, zip will add them
relative to the current directory which is not what we want and can
cause problems for the user. Therefore this change disallows files that
are not in the current directory and aborts the build.