diff options
Diffstat (limited to 'mkspecs/features/java.prf')
-rw-r--r-- | mkspecs/features/java.prf | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/mkspecs/features/java.prf b/mkspecs/features/java.prf new file mode 100644 index 0000000000..05350db48d --- /dev/null +++ b/mkspecs/features/java.prf @@ -0,0 +1,61 @@ +TEMPLATE = lib +android { + isEmpty(SDK_ROOT): SDK_ROOT = $$(ANDROID_SDK_ROOT) + isEmpty(SDK_ROOT): SDK_ROOT = $$DEFAULT_ANDROID_SDK_ROOT + isEmpty(API_VERSION) { + API_VERSION = $$(ANDROID_API_VERSION) + isEmpty(API_VERSION): API_VERSION = android-10 + } + + !exists($$SDK_ROOT/platforms/$$API_VERSION/android.jar) { + error("The Path $$SDK_ROOT/platforms/$$API_VERSION/android.jar does not exist. Make sure the ANDROID_SDK_ROOT and ANDROID_API_VERSION environment variables are correctly set.") + } + JAVACLASSPATH += $$SDK_ROOT/platforms/$$API_VERSION/android.jar + + # FIXME: This is a hack to work around some hardcoded values in the android.prf. The + # android.prf should be fixed and this should be removed. + CONFIG += android_app +} + +isEmpty(CLASS_DIR): CLASS_DIR = .classes + +CONFIG -= qt + +# Without these, qmake adds a name prefix and versioning postfixes (as well as file +# links) to the target. This is hardcoded in the qmake code, so for now we use +# the plugin configs to get what we want. +CONFIG += plugin no_plugin_name_prefix + +javac.input = JAVASOURCES +javac.output = $$CLASS_DIR +javac.CONFIG += combine +javac.commands = javac -source 6 -target 6 -cp $$shell_quote($$join(JAVACLASSPATH, ":")) -d $$shell_quote($$CLASS_DIR) ${QMAKE_FILE_IN} +# Force rebuild every time, because we don't know the paths of the destination files +# as they depend on the code. +javac.depends = FORCE +QMAKE_EXTRA_COMPILERS += javac + +mkpath($$absolute_path($$CLASS_DIR, $$OUT_PWD)) | error("Aborting.") + +# Disable all linker flags since we are overriding the regular linker +QMAKE_LFLAGS = +QMAKE_CFLAGS = +QMAKE_LFLAGS_RPATH = +QMAKE_LFLAGS_PLUGIN = +QMAKE_LIBS = +QMAKE_LIBS_OPENGL_ES2 = +QMAKE_LIBDIR = +QMAKE_EXTENSION_SHLIB = jar + +# Override linker with dex (for Android) or jar (for other java builds) +android { + QMAKE_LINK_O_FLAG = --output= + QMAKE_LINK = $$SDK_ROOT/platform-tools/dx --dex +} else { + QMAKE_LINK_O_FLAG = "cf " + QMAKE_LINK = jar +} + +# Force link step to always happen, since we are always updating the +# .class files +PRE_TARGETDEPS += FORCE |