qtcreator.pro 5.37 KB
Newer Older
Eike Ziller's avatar
Eike Ziller committed
1 2
include(qtcreator.pri)

3
#version check qt
4
!minQtVersion(5, 6, 2) {
5
    message("Cannot build Qt Creator with Qt version $${QT_VERSION}.")
6
    error("Use at least Qt 5.6.2.")
7 8
}

9
include(doc/doc.pri)
10

con's avatar
con committed
11 12 13
TEMPLATE  = subdirs
CONFIG   += ordered

14
SUBDIRS = src share
15
unix:!macx:!isEmpty(copydata):SUBDIRS += bin
Orgad Shaneh's avatar
Orgad Shaneh committed
16
!isEmpty(BUILD_TESTS):SUBDIRS += tests
17

18
DISTFILES += dist/copyright_template.txt \
Eike Ziller's avatar
Eike Ziller committed
19
    README.md \
20
    $$files(dist/changes-*) \
Eike Ziller's avatar
Eike Ziller committed
21
    qtcreator.qbs \
22
    qbs/pluginjson/pluginjson.qbs \
Eike Ziller's avatar
Eike Ziller committed
23 24 25
    $$files(scripts/*.py) \
    $$files(scripts/*.sh) \
    $$files(scripts/*.pl)
26

27
exists(src/shared/qbs/qbs.pro) {
28 29 30 31 32 33 34 35 36
    # Make sure the qbs dll ends up alongside the Creator executable.
    QBS_DLLDESTDIR = $${IDE_BUILD_TREE}/bin
    cache(QBS_DLLDESTDIR)
    QBS_DESTDIR = $${IDE_LIBRARY_PATH}
    cache(QBS_DESTDIR)
    QBSLIBDIR = $${IDE_LIBRARY_PATH}
    cache(QBSLIBDIR)
    QBS_INSTALL_PREFIX = $${QTC_PREFIX}
    cache(QBS_INSTALL_PREFIX)
37
    QBS_LIB_INSTALL_DIR = $$INSTALL_LIBRARY_PATH
38
    cache(QBS_LIB_INSTALL_DIR)
39
    QBS_RESOURCES_BUILD_DIR = $${IDE_DATA_PATH}/qbs
40
    cache(QBS_RESOURCES_BUILD_DIR)
41
    QBS_RESOURCES_INSTALL_DIR = $$INSTALL_DATA_PATH/qbs
42
    cache(QBS_RESOURCES_INSTALL_DIR)
43
    macx {
44 45
        QBS_PLUGINS_BUILD_DIR = $${IDE_PLUGIN_PATH}
        QBS_APPS_RPATH_DIR = @loader_path/../Frameworks
46
    } else {
47
        QBS_PLUGINS_BUILD_DIR = $$IDE_PLUGIN_PATH
48
        QBS_APPS_RPATH_DIR = \$\$ORIGIN/../$$IDE_LIBRARY_BASENAME/qtcreator
49
    }
50 51
    cache(QBS_PLUGINS_BUILD_DIR)
    cache(QBS_APPS_RPATH_DIR)
52
    QBS_PLUGINS_INSTALL_DIR = $$INSTALL_PLUGIN_PATH
53 54 55
    cache(QBS_PLUGINS_INSTALL_DIR)
    QBS_LIBRARY_DIRNAME = $${IDE_LIBRARY_BASENAME}
    cache(QBS_LIBRARY_DIRNAME)
56
    QBS_APPS_DESTDIR = $${IDE_BIN_PATH}
57
    cache(QBS_APPS_DESTDIR)
58
    QBS_APPS_INSTALL_DIR = $$INSTALL_BIN_PATH
59
    cache(QBS_APPS_INSTALL_DIR)
60 61
    QBS_LIBEXEC_DESTDIR = $${IDE_LIBEXEC_PATH}
    cache(QBS_LIBEXEC_DESTDIR)
62
    QBS_LIBEXEC_INSTALL_DIR = $$INSTALL_LIBEXEC_PATH
63 64 65 66
    cache(QBS_LIBEXEC_INSTALL_DIR)
    QBS_RELATIVE_LIBEXEC_PATH = $$relative_path($$QBS_LIBEXEC_DESTDIR, $$QBS_APPS_DESTDIR)
    isEmpty(QBS_RELATIVE_LIBEXEC_PATH):QBS_RELATIVE_LIBEXEC_PATH = .
    cache(QBS_RELATIVE_LIBEXEC_PATH)
67
    QBS_RELATIVE_PLUGINS_PATH = $$relative_path($$QBS_PLUGINS_BUILD_DIR, $$QBS_APPS_DESTDIR$$)
68
    cache(QBS_RELATIVE_PLUGINS_PATH)
69
    QBS_RELATIVE_SEARCH_PATH = $$relative_path($$QBS_RESOURCES_BUILD_DIR, $$QBS_APPS_DESTDIR)
70
    cache(QBS_RELATIVE_SEARCH_PATH)
71 72 73 74
    !qbs_no_dev_install {
        QBS_CONFIG_ADDITION = qbs_no_dev_install qbs_enable_project_file_updates
        cache(CONFIG, add, QBS_CONFIG_ADDITION)
    }
75 76

    # Create qbs documentation targets.
Joerg Bornemann's avatar
Joerg Bornemann committed
77 78 79
    DOC_FILES =
    DOC_TARGET_PREFIX = qbs_
    include(src/shared/qbs/doc/doc_shared.pri)
80 81
    include(src/shared/qbs/doc/doc_targets.pri)
    docs.depends += qbs_docs
Joerg Bornemann's avatar
Joerg Bornemann committed
82 83 84 85 86
    !build_online_docs {
        install_docs.depends += install_qbs_docs
    }
    unset(DOC_FILES)
    unset(DOC_TARGET_PREFIX)
87 88
}

89 90 91
contains(QT_ARCH, i386): ARCHITECTURE = x86
else: ARCHITECTURE = $$QT_ARCH

92 93
macx: PLATFORM = "mac"
else:win32: PLATFORM = "windows"
94
else:linux-*: PLATFORM = "linux-$${ARCHITECTURE}"
95 96
else: PLATFORM = "unknown"

97 98
BASENAME = $$(INSTALL_BASENAME)
isEmpty(BASENAME): BASENAME = qt-creator-$${PLATFORM}$(INSTALL_EDITION)-$${QTCREATOR_VERSION}$(INSTALL_POSTFIX)
99

100 101 102 103 104 105 106 107 108 109
linux {
    appstream.files = dist/org.qt-project.qtcreator.appdata.xml
    appstream.path = $$QTC_PREFIX/share/metainfo/

    desktop.files = dist/org.qt-project.qtcreator.desktop
    desktop.path = $$QTC_PREFIX/share/applications/

    INSTALLS += appstream desktop
}

110 111
macx {
    APPBUNDLE = "$$OUT_PWD/bin/Qt Creator.app"
112
    BINDIST_SOURCE = "$$OUT_PWD/bin/Qt Creator.app"
Eike Ziller's avatar
Eike Ziller committed
113
    BINDIST_INSTALLER_SOURCE = $$BINDIST_SOURCE
114
    deployqt.commands = $$PWD/scripts/deployqtHelper_mac.sh \"$${APPBUNDLE}\" \"$$[QT_INSTALL_BINS]\" \"$$[QT_INSTALL_TRANSLATIONS]\" \"$$[QT_INSTALL_PLUGINS]\" \"$$[QT_INSTALL_IMPORTS]\" \"$$[QT_INSTALL_QML]\"
115
    codesign.commands = codesign --deep -s \"$(SIGNING_IDENTITY)\" $(SIGNING_FLAGS) \"$${APPBUNDLE}\"
116
    dmg.commands = $$PWD/scripts/makedmg.sh $$OUT_PWD/bin $${BASENAME}.dmg
117
    #dmg.depends = deployqt
118
    QMAKE_EXTRA_TARGETS += codesign dmg
119
} else {
120
    BINDIST_SOURCE = "$(INSTALL_ROOT)$$QTC_PREFIX"
Eike Ziller's avatar
Eike Ziller committed
121
    BINDIST_INSTALLER_SOURCE = "$$BINDIST_SOURCE/*"
122
    deployqt.commands = python -u $$PWD/scripts/deployqt.py -i \"$(INSTALL_ROOT)$$QTC_PREFIX\" \"$(QMAKE)\"
123
    deployqt.depends = install
124 125
    win32 {
        deployartifacts.depends = install
126 127
        deployartifacts.commands = git clone --depth 1 -b $$BINARY_ARTIFACTS_BRANCH \
                "http://code.qt.io/qt-creator/binary-artifacts.git" \
128 129
            && xcopy /s /q /y /i "binary-artifacts\\win32" \"$(INSTALL_ROOT)$$QTC_PREFIX\" \
            && rmdir /s /q binary-artifacts
130 131
        QMAKE_EXTRA_TARGETS += deployartifacts
    }
132 133
}

134 135
INSTALLER_ARCHIVE_FROM_ENV = $$(INSTALLER_ARCHIVE)
isEmpty(INSTALLER_ARCHIVE_FROM_ENV) {
136
    INSTALLER_ARCHIVE = $$OUT_PWD/$${BASENAME}-installer-archive.7z
137 138 139
} else {
    INSTALLER_ARCHIVE = $$OUT_PWD/$$(INSTALLER_ARCHIVE)
}
Eike Ziller's avatar
Eike Ziller committed
140

141
#bindist.depends = deployqt
142
bindist.commands = 7z a -mx9 $$OUT_PWD/$${BASENAME}.7z \"$$BINDIST_SOURCE\"
143
#bindist_installer.depends = deployqt
144
bindist_installer.commands = 7z a -mx9 $${INSTALLER_ARCHIVE} \"$$BINDIST_INSTALLER_SOURCE\"
145

146 147 148
win32 {
    deployqt.commands ~= s,/,\\\\,g
    bindist.commands ~= s,/,\\\\,g
Eike Ziller's avatar
Eike Ziller committed
149
    bindist_installer.commands ~= s,/,\\\\,g
150
}
151

152
QMAKE_EXTRA_TARGETS += deployqt bindist bindist_installer