Add a GitHub action to test Keyman Core on Windows / ARM64. We do not
have a TeamCity ARM64 agent for this. There are a number of config
challenges in making this work as many deps do not yet support ARM64;
however the changes are isolated to the .yml.
Test-bot: skip
With VS2022 the limitations for the -hostarch flag not being available
on arm environment and the -arch only having x86 and x64 has been
removed. There is now single command that works for 3 builds on either
host architecture.
Fixes: 15239
Test-bot: skip
Add a host check for build.bat and run the architecture tests
that match the host. for the meson builds from build.h
for now just skip the arm64 tests.
Meson 1.1 changed the name of the options file from `meson_options.txt`
to `meson.options`. Currently we're stuck with Meson 1.0 as minimum
Meson version because we still support Ubuntu 22.04 Jammy, but on some
machines a newer version of meson gets installed which causes the
options to be ignored.
The first attempt to simply symlink or copy `meson_options.txt` to
`meson.options` failed because git on Windows doesn't support symlinks
by default, and Meson complains if it finds two options files (#15127).
Fortunately not having an options file is only a problem for Core where
we have one option in the options file that defaults to true. The solution
implemented in this change is to always pass the option to Meson.
Test-bot: skip
Update the build.bat to handle configuring the build
environment with vsdevcmd correctly for arm64 2019 doesn't
work very well so have to have pretty weird if statement.
also checked in some missed updates to function name change
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.
Allows use of `./build.sh configure -- --param-one=foo ...`.
Updates Core build to support `--` (including build.bat wrapper for
Windows builds). Fixes Linux debian rules to pass additional
parameters in with this format again, and adds `:arch` to only build
current architecture, not wasm as well...
Note that when using `--` you should typically avoid multiple actions in
a single command, as each action may interpret the additional parameters
differently!
Refactoring of build.sh to use the builder_ functions. The script should
now be a lot cleaner. Usage is available with `core/build.sh --help`
Targets are :x86, :x64, :wasm, :arch (linux/mac).
Supports additional requirements of Linux build (--target-path,
--configure).
By default will attempt to build all available targets.
Actions are: clean, configure, build, test, install, uninstall.
The install and uninstall actions only work for linux and mac targets at
present.