TEMPLATE = lib
android {
    load(sdk)

    # 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

# Check for user defined javac build version
javac_target_version = $$ANDROID_JAVAC_TARGET_VERSION
isEmpty(javac_target_version): javac_target_version = 8

javac_source_version = $$ANDROID_JAVAC_SOURCE_VERSION
isEmpty(javac_source_version): javac_source_version = 8

javac.commands = javac -source $$javac_source_version -target $$javac_target_version -Xlint:unchecked -bootclasspath $$ANDROID_JAR_FILE -cp $$shell_quote($$system_path($$join(JAVACLASSPATH, $$DIRLIST_SEPARATOR))) -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()

# 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
QMAKE_LINK_SHLIB_CMD = jar cf $(TARGET) -C $$CLASS_DIR .

# Force link step to always happen, since we are always updating the
# .class files
PRE_TARGETDEPS += FORCE
