mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-02-10 18:05:41 +08:00
Fix build for JDK 8 and force build into JAR
This commit is contained in:
@ -1,10 +1,17 @@
|
||||
import os
|
||||
import argparse
|
||||
|
||||
# NOTE: In JDK 8 and earlier, `javac` does not create the directories specified in the -d option if they do not already exist
|
||||
# So we need to create them manually
|
||||
def makedirs(dir):
|
||||
if not os.path.exists(dir):
|
||||
os.makedirs(dir)
|
||||
return
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = argparse.ArgumentParser(description='Build Java wrapper for docbuilder library')
|
||||
parser.add_argument('-H', '--headers', action='store_true', help='Generate C++ JNI header files')
|
||||
parser.add_argument('-jar', '--jar', action='store_true', help='Build into JAR archive')
|
||||
parser.add_argument('-n', '--no-jar', dest='no_jar', action='store_true', help='Build only classes without JAR archive')
|
||||
args = parser.parse_args()
|
||||
|
||||
file_dir = os.path.dirname(os.path.realpath(__file__));
|
||||
@ -20,12 +27,13 @@ if __name__ == "__main__":
|
||||
|
||||
# BUILD
|
||||
classes_dir = file_dir + '/build/classes'
|
||||
makedirs(classes_dir + '/docbuilder/utils')
|
||||
headers_dir = file_dir + '/src/jni'
|
||||
# build all main Java classes
|
||||
# build all Java classes
|
||||
os.system('javac -d ' + classes_dir + (' -h ' + headers_dir if args.headers else '') + java_files)
|
||||
|
||||
# PACKING TO JAR
|
||||
if args.jar:
|
||||
if not args.no_jar:
|
||||
os.chdir(classes_dir)
|
||||
class_files = ''
|
||||
for file in os.listdir('docbuilder'):
|
||||
@ -33,4 +41,5 @@ if __name__ == "__main__":
|
||||
class_files += ' docbuilder/' + file
|
||||
class_utils_file = ' docbuilder/utils/NativeLibraryLoader.class'
|
||||
class_files += class_utils_file
|
||||
makedirs('../libs')
|
||||
os.system('jar -cvf ../libs/docbuilder.jar ' + class_files)
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
import os
|
||||
import argparse
|
||||
import platform
|
||||
|
||||
if __name__ == "__main__":
|
||||
parser = argparse.ArgumentParser(description='Build and run the test example for docbuilder Java wrapper')
|
||||
@ -14,9 +13,9 @@ if __name__ == "__main__":
|
||||
|
||||
if args.builder_dir:
|
||||
builder_dir = args.builder_dir
|
||||
os.system('java -cp ../build/classes' + os.pathsep + 'build/classes -Djava.library.path=\"' + builder_dir + '\" Program')
|
||||
os.system('java -cp ../build/libs/docbuilder.jar' + os.pathsep + 'build/classes -Djava.library.path=\"' + builder_dir + '\" Program')
|
||||
else:
|
||||
os.system('javac -d build/classes -cp ../build/classes ' + java_file)
|
||||
os.system('javac -d build/classes -cp ../build/libs/docbuilder.jar ' + java_file)
|
||||
print('Program was built successfully')
|
||||
print('Run it with: java -cp \"../build/classes' + os.pathsep + 'build/classes\" -D\"java.library.path\"=\"path_to_docbuilder\" Program')
|
||||
print('Run it with: java -cp \"../build/libs/docbuilder.jar' + os.pathsep + 'build/classes\" -D\"java.library.path\"=\"path_to_docbuilder\" Program')
|
||||
print('Or just run: python make_test.py --run \"path_to_docbuilder\"')
|
||||
|
||||
Reference in New Issue
Block a user