|
| 1 | +#! /usr/bin/env python3 |
| 2 | +import argparse, glob, os, subprocess, sys |
| 3 | +sys.path.append(os.path.normpath(os.path.dirname(__file__) + '/../../../script')) |
| 4 | +import common, build, build_utils |
| 5 | + |
| 6 | +def main(): |
| 7 | + parser = argparse.ArgumentParser() |
| 8 | + parser.add_argument('--skija-version') |
| 9 | + parser.add_argument('--lwjgl-version', default='3.4.0') |
| 10 | + (args, _) = parser.parse_known_args() |
| 11 | + |
| 12 | + if (build_utils.arch == 'x64'): |
| 13 | + lwjgl_classifier = "natives-" + build_utils.system |
| 14 | + else: |
| 15 | + lwjgl_classifier = "natives-" + common.classifier |
| 16 | + |
| 17 | + classpath = common.deps_compile() + [ |
| 18 | + build_utils.fetch_maven('org.lwjgl', 'lwjgl', args.lwjgl_version), |
| 19 | + build_utils.fetch_maven('org.lwjgl', 'lwjgl-glfw', args.lwjgl_version), |
| 20 | + build_utils.fetch_maven('org.lwjgl', 'lwjgl-vulkan', args.lwjgl_version), |
| 21 | + build_utils.fetch_maven('org.lwjgl', 'lwjgl', args.lwjgl_version, classifier=lwjgl_classifier), |
| 22 | + build_utils.fetch_maven('org.lwjgl', 'lwjgl-glfw', args.lwjgl_version, classifier=lwjgl_classifier) |
| 23 | + ] |
| 24 | + |
| 25 | + if args.skija_version: |
| 26 | + classpath += [ |
| 27 | + build_utils.fetch_maven('io.github.humbleui', 'skija-shared', args.skija_version), |
| 28 | + build_utils.fetch_maven('io.github.humbleui', 'skija-' + common.classifier, args.skija_version), |
| 29 | + ] |
| 30 | + else: |
| 31 | + build.main() |
| 32 | + classpath += [ |
| 33 | + os.path.join('..', '..', 'platform', 'target', common.classifier, 'classes'), |
| 34 | + os.path.join('..', '..', 'shared', 'target', 'classes-java9'), |
| 35 | + os.path.join('..', '..', 'shared', 'target', 'classes') |
| 36 | + ] |
| 37 | + |
| 38 | + os.chdir(common.basedir + '/examples/vulkan') |
| 39 | + |
| 40 | + sources = build_utils.files('src/**/*.java', '../scenes/src/**/*.java') |
| 41 | + build_utils.javac(sources, 'target/classes', classpath = classpath, release = '16') |
| 42 | + |
| 43 | + subprocess.check_call([ |
| 44 | + 'java', |
| 45 | + '--class-path', build_utils.classpath_join(['target/classes'] + classpath)] |
| 46 | + + (['-XstartOnFirstThread'] if 'macos' == build_utils.system else []) |
| 47 | + + ['-Djava.awt.headless=true', |
| 48 | + '-enableassertions', |
| 49 | + '-enablesystemassertions', |
| 50 | + '-Xcheck:jni', |
| 51 | + '-Dskija.logLevel=DEBUG', |
| 52 | + 'io.github.humbleui.skija.examples.vulkan.Main']) |
| 53 | + |
| 54 | + return 0 |
| 55 | + |
| 56 | +if __name__ == '__main__': |
| 57 | + sys.exit(main()) |
0 commit comments