aboutsummaryrefslogtreecommitdiffstats
path: root/src/libexec/qbs-javac-scan/qbs-javac-scan.pro
blob: 84738a304335ec571b7ac6ce7ed20eb55bc7f4df (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
include(../libexec.pri)

TARGET = qbs-javac-scan

PATHPREFIX = $$PWD/io/qt/qbs/

JAVACLASSPATH += $$PWD
JAVASOURCES += \
    $$PATHPREFIX/Artifact.java \
    $$PATHPREFIX/ArtifactListJsonWriter.java \
    $$PATHPREFIX/ArtifactListTextWriter.java \
    $$PATHPREFIX/ArtifactListWriter.java \
    $$PATHPREFIX/ArtifactListXmlWriter.java \
    $$PATHPREFIX/tools/JavaCompilerScannerTool.java \
    $$PATHPREFIX/tools/utils/JavaCompilerOptions.java \
    $$PATHPREFIX/tools/utils/JavaCompilerScanner.java \
    $$PATHPREFIX/tools/utils/NullFileObject.java

JAVAMAINCLASS = io.qt.qbs.tools.JavaCompilerScannerTool

# from mkspecs/features/java.prf
TEMPLATE = lib

CLASS_DIR = .classes
CLASS_DIR_MARKER = .classes.marker

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_MARKER
javac.CONFIG += combine
javac.commands = javac -source 1.6 -target 1.6 -Xlint:unchecked -cp $$shell_quote($$system_path($$join(JAVACLASSPATH, $$DIRLIST_SEPARATOR))) -d $$shell_quote($$CLASS_DIR) ${QMAKE_FILE_IN} $$escape_expand(\\n\\t) \
    @echo Nothing to see here. Move along. > $$CLASS_DIR_MARKER
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_CONSOLE =
QMAKE_LFLAGS_WINDOWS =
QMAKE_LFLAGS_DLL =
QMAKE_LFLAGS_DEBUG =
QMAKE_LFLAGS_RELEASE =
QMAKE_LFLAGS_RPATH =
QMAKE_LFLAGS_PLUGIN =
QMAKE_LIBS =
QMAKE_LIBS_OPENGL_ES2 =
QMAKE_LIBDIR =
QMAKE_EXTENSION_SHLIB = jar

# nmake
QMAKE_LINK = jar
QMAKE_LFLAGS = cfe $(DESTDIR_TARGET) $$JAVAMAINCLASS -C $$CLASS_DIR .

# Demonstrate an excellent reason why qbs exists
QMAKE_LINK_O_FLAG = && "echo "

# make
QMAKE_LINK_SHLIB_CMD = jar cfe $(TARGET) $$JAVAMAINCLASS -C $$CLASS_DIR .

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