mirror of
https://github.com/keymanapp/keyman.git
synced 2026-09-07 16:17:42 +00:00
Merge pull request #8496 from keymanapp/chore/common/builder_configuration_var
chore(common): define BUILDER_CONFIGURATION env var
This commit is contained in:
commit
ec9ff7da63
4 changed files with 35 additions and 30 deletions
|
|
@ -93,12 +93,6 @@ if builder_is_dep_build || builder_has_option --no-tests; then
|
|||
builder_remove_dep /developer/src/kmc
|
||||
fi
|
||||
|
||||
if builder_is_debug_build; then
|
||||
CONFIGURATION=debug
|
||||
else
|
||||
CONFIGURATION=release
|
||||
fi
|
||||
|
||||
# 'mac' target builds both x86_64 and arm architectures and
|
||||
# generates a 'fat' library from them.
|
||||
builder_describe_internal_dependency \
|
||||
|
|
@ -106,20 +100,20 @@ builder_describe_internal_dependency \
|
|||
build:mac build:mac-arm64
|
||||
|
||||
builder_describe_outputs \
|
||||
configure:x86 /core/build/x86/$CONFIGURATION/build.ninja \
|
||||
configure:x64 /core/build/x64/$CONFIGURATION/build.ninja \
|
||||
configure:mac /core/build/mac/$CONFIGURATION/ \
|
||||
configure:mac-x86_64 /core/build/mac-x86_64/$CONFIGURATION/build.ninja \
|
||||
configure:mac-arm64 /core/build/mac-arm64/$CONFIGURATION/build.ninja \
|
||||
configure:arch /core/build/arch/$CONFIGURATION/build.ninja \
|
||||
configure:wasm /core/build/wasm/$CONFIGURATION/build.ninja \
|
||||
build:x86 /core/build/x86/$CONFIGURATION/src/libkmnkbp0.a \
|
||||
build:x64 /core/build/x64/$CONFIGURATION/src/libkmnkbp0.a \
|
||||
build:mac /core/build/mac/$CONFIGURATION/libkmnkbp0.a \
|
||||
build:mac-x86_64 /core/build/mac-x86_64/$CONFIGURATION/src/libkmnkbp0.a \
|
||||
build:mac-arm64 /core/build/mac-arm64/$CONFIGURATION/src/libkmnkbp0.a \
|
||||
build:arch /core/build/arch/$CONFIGURATION/src/libkmnkbp0.a \
|
||||
build:wasm /core/build/wasm/$CONFIGURATION/src/libkmnkbp0.a
|
||||
configure:x86 /core/build/x86/$BUILDER_CONFIGURATION/build.ninja \
|
||||
configure:x64 /core/build/x64/$BUILDER_CONFIGURATION/build.ninja \
|
||||
configure:mac /core/build/mac/$BUILDER_CONFIGURATION/ \
|
||||
configure:mac-x86_64 /core/build/mac-x86_64/$BUILDER_CONFIGURATION/build.ninja \
|
||||
configure:mac-arm64 /core/build/mac-arm64/$BUILDER_CONFIGURATION/build.ninja \
|
||||
configure:arch /core/build/arch/$BUILDER_CONFIGURATION/build.ninja \
|
||||
configure:wasm /core/build/wasm/$BUILDER_CONFIGURATION/build.ninja \
|
||||
build:x86 /core/build/x86/$BUILDER_CONFIGURATION/src/libkmnkbp0.a \
|
||||
build:x64 /core/build/x64/$BUILDER_CONFIGURATION/src/libkmnkbp0.a \
|
||||
build:mac /core/build/mac/$BUILDER_CONFIGURATION/libkmnkbp0.a \
|
||||
build:mac-x86_64 /core/build/mac-x86_64/$BUILDER_CONFIGURATION/src/libkmnkbp0.a \
|
||||
build:mac-arm64 /core/build/mac-arm64/$BUILDER_CONFIGURATION/src/libkmnkbp0.a \
|
||||
build:arch /core/build/arch/$BUILDER_CONFIGURATION/src/libkmnkbp0.a \
|
||||
build:wasm /core/build/wasm/$BUILDER_CONFIGURATION/src/libkmnkbp0.a
|
||||
|
||||
# Iterate through all possible targets; note that targets that cannot be built
|
||||
# on the current platform have already been excluded through the archtargets
|
||||
|
|
@ -129,7 +123,7 @@ targets=(wasm x86 x64 mac-x86_64 mac-arm64 arch)
|
|||
do_action() {
|
||||
local action_function=do_$1
|
||||
for target in "${targets[@]}"; do
|
||||
MESON_PATH="$KEYMAN_ROOT/core/build/$target/$CONFIGURATION"
|
||||
MESON_PATH="$KEYMAN_ROOT/core/build/$target/$BUILDER_CONFIGURATION"
|
||||
$action_function $target
|
||||
done
|
||||
}
|
||||
|
|
@ -145,7 +139,7 @@ do_action configure
|
|||
# After we have built the necessary internal dependencies, then we can go
|
||||
# ahead and build a fat library for external consumption
|
||||
if builder_start_action configure:mac; then
|
||||
mkdir -p "$KEYMAN_ROOT/core/build/mac/$CONFIGURATION"
|
||||
mkdir -p "$KEYMAN_ROOT/core/build/mac/$BUILDER_CONFIGURATION"
|
||||
builder_finish_action success configure:mac
|
||||
fi
|
||||
|
||||
|
|
@ -155,9 +149,9 @@ do_action build
|
|||
|
||||
if builder_start_action build:mac; then
|
||||
lipo -create \
|
||||
"$KEYMAN_ROOT/core/build/mac-x86_64/$CONFIGURATION/src/libkmnkbp0.a" \
|
||||
"$KEYMAN_ROOT/core/build/mac-arm64/$CONFIGURATION/src/libkmnkbp0.a" \
|
||||
-output "$KEYMAN_ROOT/core/build/mac/$CONFIGURATION/libkmnkbp0.a"
|
||||
"$KEYMAN_ROOT/core/build/mac-x86_64/$BUILDER_CONFIGURATION/src/libkmnkbp0.a" \
|
||||
"$KEYMAN_ROOT/core/build/mac-arm64/$BUILDER_CONFIGURATION/src/libkmnkbp0.a" \
|
||||
-output "$KEYMAN_ROOT/core/build/mac/$BUILDER_CONFIGURATION/libkmnkbp0.a"
|
||||
builder_finish_action success build:mac
|
||||
fi
|
||||
|
||||
|
|
@ -170,7 +164,7 @@ if builder_start_action test:mac; then
|
|||
# assume that build:mac has run so both architectures will be
|
||||
# available
|
||||
target=mac-`uname -m`
|
||||
MESON_PATH="$KEYMAN_ROOT/core/build/$target/$CONFIGURATION"
|
||||
MESON_PATH="$KEYMAN_ROOT/core/build/$target/$BUILDER_CONFIGURATION"
|
||||
meson test -C "$MESON_PATH" "${builder_extra_params[@]}"
|
||||
builder_finish_action success test:mac
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -37,11 +37,11 @@ do_configure() {
|
|||
fi
|
||||
|
||||
if [[ $target =~ ^(x86|x64)$ ]]; then
|
||||
cmd //C build.bat $target $CONFIGURATION configure $BUILD_BAT_keyman_core_tests "${builder_extra_params[@]}"
|
||||
cmd //C build.bat $target $BUILDER_CONFIGURATION configure $BUILD_BAT_keyman_core_tests "${builder_extra_params[@]}"
|
||||
else
|
||||
pushd "$THIS_SCRIPT_PATH" > /dev/null
|
||||
# Additional arguments are used by Linux build, e.g. -Dprefix=${INSTALLDIR}
|
||||
meson setup "$MESON_PATH" $MESON_CROSS_FILE --werror --buildtype $CONFIGURATION $STANDARD_MESON_ARGS "${builder_extra_params[@]}"
|
||||
meson setup "$MESON_PATH" $MESON_CROSS_FILE --werror --buildtype $BUILDER_CONFIGURATION $STANDARD_MESON_ARGS "${builder_extra_params[@]}"
|
||||
popd > /dev/null
|
||||
fi
|
||||
|
||||
|
|
@ -56,7 +56,7 @@ do_build() {
|
|||
local target=$1
|
||||
builder_start_action build:$target || return 0
|
||||
if [[ $target =~ ^(x86|x64)$ ]]; then
|
||||
cmd //C build.bat $target $CONFIGURATION build "${builder_extra_params[@]}"
|
||||
cmd //C build.bat $target $BUILDER_CONFIGURATION build "${builder_extra_params[@]}"
|
||||
elif $MESON_LOW_VERSION; then
|
||||
pushd "$MESON_PATH" > /dev/null
|
||||
ninja
|
||||
|
|
@ -75,7 +75,7 @@ do_test() {
|
|||
local target=$1
|
||||
builder_start_action test:$target || return 0
|
||||
if [[ $target =~ ^(x86|x64)$ ]]; then
|
||||
cmd //C build.bat $target $CONFIGURATION test "${builder_extra_params[@]}"
|
||||
cmd //C build.bat $target $BUILDER_CONFIGURATION test "${builder_extra_params[@]}"
|
||||
else
|
||||
meson test -C "$MESON_PATH" "${builder_extra_params[@]}"
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -125,6 +125,10 @@ variable to ensure that we run the correct versions of npm package commands, so
|
|||
there is no need to hard-code path references or add script wrappers to
|
||||
package.json (`npm run <script>`).
|
||||
|
||||
* `BUILDER_CONFIGURATION` will be set to `debug` if the `--debug` option is
|
||||
passed in, or `release` otherwise, which corresponds to the output folder
|
||||
names for many projects.
|
||||
|
||||
Other environment variables and paths will probably be added over time.
|
||||
|
||||
## Split
|
||||
|
|
|
|||
|
|
@ -1344,6 +1344,13 @@ _builder_parse_expanded_parameters() {
|
|||
export _builder_deps_built=`mktemp`
|
||||
fi
|
||||
|
||||
if builder_is_debug_build; then
|
||||
readonly BUILDER_CONFIGURATION=debug
|
||||
else
|
||||
readonly BUILDER_CONFIGURATION=release
|
||||
fi
|
||||
|
||||
|
||||
# Now that we've successfully parsed options adhering to the _builder spec, we may activate our
|
||||
# action_failure and action_hanging traps. (We don't want them active on scripts not yet using
|
||||
# said script.)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue