diff options
Diffstat (limited to 'test/004-JniTest/build.py')
| -rw-r--r-- | test/004-JniTest/build.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/test/004-JniTest/build.py b/test/004-JniTest/build.py new file mode 100644 index 0000000000..b701d5afb3 --- /dev/null +++ b/test/004-JniTest/build.py @@ -0,0 +1,38 @@ +# +# Copyright (C) 2022 The Android Open Source Project +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import shutil, os + +# +# Perform a mostly normal build. +# Since this test imports 'dalvik.annotation.optimization.FastNative' (and CriticalNative), +# we put them to src-aotex/ to allow the annotations to be used at javac-compile time, +# but remove compiled *-aotex* artifacts afterwards. +# +# This enables the test to compile with vanilla RI javac and work on either ART or RI. +# TODO: The test is currently disabled for RI anyway, presumably because @CriticalNative +# has a different ABI and cannot be tested on RI. +# + + +# Use release mode to check optimizations do not break JNI. +def build(ctx): + ctx.default_build(d8_flags=["--release"]) + + # Remove the *-aotex build artifacts (but keep src-aotex) with dalvik.* annotations. + shutil.rmtree(ctx.test_dir / "classes-aotex") + if not ctx.jvm: + os.remove(ctx.test_dir / "classes-aotex.jar") + os.remove(ctx.test_dir / "004-JniTest-aotex.jar") |