Fixes#7273.
Adds 4 kmx system stores to allow existing configuration tools to load
and process KMXPlus files without modification:
* `TSS_NAME` (first `<name>`)
* `TSS_COMPILEDVERSION` (only if `options.addCompilerVersion == true`)
* `TSS_KEYBOARDVERSION` (from `<version number>`)
* `TSS_TARGETS` (currently always 'desktop', will later include more
targets)
In order for `TSS_COMPILEDVERSION` to be handled correctly, needed to
plumb in the new `CompilerOptions` interface. This could be a separate
PR, but the changes are not huge, so opted to append the changes here.
Updates related tests and fixtures. Refactored some of the e2e helpers
into helpers/index.ts for use with the metadata-compiler tests.
The presence of this file tells CI to use the new builder_ style
parameters for build.sh.
Once all branches for 16.0+ are updated to merge the
chore/core/7247-use-builder-for-build-sh branch, then we can remove this
file and the corresponding bash test branches in CI.
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.
Because BrowserStack tests are unreliable, I am disabling them for any
builds that are not specifically targeting web. Two ways that the tests
can be enabled:
1. Include '(web)' in the PR title
2. Include the label test-browserstack
This only impacts builds in the CI test environment, not anything else.
See build-utils-ci.inc.sh for helper functions for accessing PR
metadata, and build-utils-ci.test.sh for unit tests for this
functionality.
We're still getting sporadic test failures with BrowserStack. So per one
discussion online, attempting to run without concurrency to see if it
improves stability.
I note that the video from tests where we "fail to capture" shows a
browser with an error: "Safari Can't Connect to the Server" "Safari
can't open the page "localhost:9879/?id=75185158" because Safari can't
connect to the server "localhost".
1971215883
Fixes#7235.
Encapsulates all strings in the in-memory compile so that we can binary
sort them for build. This means that finalization of strs and elem is
no longer needed -- it's part of setup of build_strs and build_elem --
so that is factored away. Renamed alloc_string and alloc_element_string.
It may be worth renaming some of the ELEM_STRING objects / interfaces as
currently they are a little confusing.