diff --git a/core/build.sh b/core/build.sh index caaeafb929..c1ad0c3302 100755 --- a/core/build.sh +++ b/core/build.sh @@ -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 diff --git a/core/commands.inc.sh b/core/commands.inc.sh index f3eda70e6d..2e5fb9e7b9 100644 --- a/core/commands.inc.sh +++ b/core/commands.inc.sh @@ -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 diff --git a/resources/build/build-utils.md b/resources/build/build-utils.md index 5c3897e36b..16e1e7fce8 100644 --- a/resources/build/build-utils.md +++ b/resources/build/build-utils.md @@ -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