diff --git a/.github/workflows/bindings_java.yml b/.github/workflows/bindings_java.yml index 343e0325e7b7..4285cc0532c3 100644 --- a/.github/workflows/bindings_java.yml +++ b/.github/workflows/bindings_java.yml @@ -70,14 +70,9 @@ jobs: - name: Set up JDK 8 uses: actions/setup-java@v3 with: - distribution: 'temurin' + distribution: 'zulu' java-version: '8' cache: 'maven' - - name: Install Protoc - uses: arduino/setup-protoc@v2 - with: - version: "23.4" - repo-token: ${{ secrets.GITHUB_TOKEN }} - name: Build and test working-directory: bindings/java # `mvn install` and `mvn artifact:compare` are required to verify reproducible builds: diff --git a/bindings/java/.cargo/config b/bindings/java/.cargo/config new file mode 100644 index 000000000000..fc0bf0e2815f --- /dev/null +++ b/bindings/java/.cargo/config @@ -0,0 +1,11 @@ +# See also https://github.com/rust-lang/rust/issues/44991 + +[target.x86_64-unknown-linux-musl] +rustflags = [ + "-C", "target-feature=-crt-static", +] + +[target.aarch64-unknown-linux-musl] +rustflags = [ + "-C", "target-feature=-crt-static", +] diff --git a/bindings/java/pom.xml b/bindings/java/pom.xml index e4cbfbf05d00..921436b7996d 100644 --- a/bindings/java/pom.xml +++ b/bindings/java/pom.xml @@ -55,6 +55,7 @@ dev default + ${os.detected.classifier} @@ -177,6 +178,8 @@ ${project.basedir}/tools/build.py --classifier ${jni.classifier} + --target + ${cargo-build.target} --profile ${cargo-build.profile} --features diff --git a/bindings/java/tools/build.py b/bindings/java/tools/build.py index 2d6b3d2b0582..8bc5fabcbd79 100755 --- a/bindings/java/tools/build.py +++ b/bindings/java/tools/build.py @@ -17,7 +17,7 @@ # under the License. -from argparse import ArgumentDefaultsHelpFormatter, ArgumentParser, BooleanOptionalAction +from argparse import ArgumentDefaultsHelpFormatter, ArgumentParser from pathlib import Path import shutil import subprocess @@ -52,6 +52,7 @@ def get_cargo_artifact_name(classifier: str) -> str: parser = ArgumentParser(formatter_class=ArgumentDefaultsHelpFormatter) parser.add_argument('--classifier', type=str, required=True) + parser.add_argument('--target', type=str, default='') parser.add_argument('--profile', type=str, default='dev') parser.add_argument('--features', type=str, default='default') args = parser.parse_args() @@ -61,12 +62,15 @@ def get_cargo_artifact_name(classifier: str) -> str: if args.features: cmd += ['--features', args.features] - target = classifier_to_target(args.classifier) - if target: - command = ['rustup', 'target', 'add', target] - print('$ ' + subprocess.list2cmdline(command)) - subprocess.run(command, cwd=basedir, check=True) - cmd += ['--target', target] + if args.target: + target = args.target + else: + target = classifier_to_target(args.classifier) + + command = ['rustup', 'target', 'add', target] + print('$ ' + subprocess.list2cmdline(command)) + subprocess.run(command, cwd=basedir, check=True) + cmd += ['--target', target] output = basedir / 'target' / 'bindings' Path(output).mkdir(exist_ok=True, parents=True)