218179ce2f
these have no (useful) install target, so it makes no sense to reduce the "build" to installing sources. suppressing the actual build can be achieved with -nomake examples instead. conversely, as the build dir is the install dir, people actually need to be able to (selectively) build examples in there. Task-number: QTBUG-29756 Change-Id: I98f34235442b552e51c0d5f5cec96a3eab4f1e7f Reviewed-by: Andy Shaw <andy.shaw@digia.com> Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
104 lines
3.3 KiB
Plaintext
104 lines
3.3 KiB
Plaintext
#
|
|
# W A R N I N G
|
|
# -------------
|
|
#
|
|
# This file is not part of the Qt API. It exists purely as an
|
|
# implementation detail. It may change from version to version
|
|
# without notice, or even be removed.
|
|
#
|
|
# We mean it.
|
|
#
|
|
|
|
defineTest(addInstallFiles) {
|
|
for(sf, 2) {
|
|
sf = $$relative_path($$sf, $$_PRO_FILE_PWD_)
|
|
contains(sf, \\..*) {
|
|
check_examples: message("Notice: $$_PRO_FILE_ refers to $$sf")
|
|
} else {
|
|
sfp = $$replace(sf, /.*, )
|
|
!equals(sfp, $$sf): \
|
|
$$1 *= $$sfp
|
|
else: \
|
|
$$1 += $$sf
|
|
}
|
|
}
|
|
export($$1)
|
|
}
|
|
|
|
probase = $$relative_path($$_PRO_FILE_PWD_, $$dirname(_QMAKE_CONF_)/examples)
|
|
!isEmpty(probase):!contains(probase, ^\\..*) {
|
|
for(ex, EXAMPLE_FILES): \
|
|
sourcefiles += $$files($$absolute_path($$ex, $$_PRO_FILE_PWD_))
|
|
for(res, RESOURCES) {
|
|
rfile = $$cat($$absolute_path($$res, $$_PRO_FILE_PWD_), lines)
|
|
for(rline, rfile) {
|
|
resrc = $$replace(rline, ^[ \\t]*<file[^>]*>([^<]+)</file>[ \\t]*$, \\1)
|
|
!equals(resrc, $$rline): \
|
|
sourcefiles += $$resrc
|
|
}
|
|
}
|
|
for(res, RC_FILE) {
|
|
rfile = $$cat($$absolute_path($$res, $$_PRO_FILE_PWD_), lines)
|
|
for(rline, rfile) {
|
|
resrc = $$replace(rline, "^\\d+\\s+ICON\\s+[^\"]*\"([^\"]+)\"\$", \\1)
|
|
!equals(resrc, $$rline): \
|
|
sourcefiles += $$resrc
|
|
}
|
|
}
|
|
extras = \
|
|
$$_PRO_FILE_PWD_/README \
|
|
$$files($$_PRO_FILE_PWD_/*.pri) \
|
|
$$replace(_PRO_FILE_, \\.pro$, .qmlproject) \
|
|
$$replace(_PRO_FILE_, \\.pro$, .json) \
|
|
$$replace(_PRO_FILE_, \\.pro$, .inf)
|
|
for(extra, extras): \
|
|
exists($$extra): \
|
|
sourcefiles += $$extra
|
|
|
|
# Just for Qt Creator
|
|
OTHER_FILES += $$sourcefiles
|
|
|
|
sourcefiles += \
|
|
$$_PRO_FILE_ $$RC_FILE $$DEF_FILE \
|
|
$$SOURCES $$HEADERS $$FORMS $$RESOURCES $$TRANSLATIONS \
|
|
$$DBUS_ADAPTORS $$DBUS_INTERFACES
|
|
addInstallFiles(sources.files, $$sourcefiles)
|
|
sources.path = $$[QT_INSTALL_EXAMPLES]/$$probase
|
|
INSTALLS += sources
|
|
|
|
check_examples {
|
|
srcfiles = $$sources.files
|
|
for(inst, INSTALLS): \
|
|
!equals(inst, target):!contains($${inst}.CONFIG, no_check_exist): \
|
|
for(file, $${inst}.files): \
|
|
instfiles += $$files($$absolute_path($$file, $$_PRO_FILE_PWD_))
|
|
addInstallFiles(srcfiles, $$instfiles)
|
|
|
|
thefiles = $$files($$_PRO_FILE_PWD_/*)
|
|
for(i, thefiles): \
|
|
allfiles += $$relative_path($$i, $$_PRO_FILE_PWD_)
|
|
for(i, srcfiles): \
|
|
allfiles -= $$relative_path($$i, $$_PRO_FILE_PWD_)
|
|
for(i, SUBDIRS) {
|
|
sd = $$eval($${i}.file)
|
|
!isEmpty(sd) {
|
|
sd ~= s,/.*,,
|
|
} else {
|
|
sd = $$eval($${i}.subdir)
|
|
isEmpty(sd): sd = $$i
|
|
}
|
|
allfiles -= $$sd
|
|
}
|
|
allfiles -= doc
|
|
!isEmpty(allfiles): warning("remaining files in $$_PRO_FILE_PWD_: $$allfiles")
|
|
}
|
|
|
|
# Do not actually build the examples in production builds with -prefix
|
|
!equals(TEMPLATE, subdirs):prefix_build:!contains(QT_CONFIG, private_tests) {
|
|
TEMPLATE = aux
|
|
CONFIG -= have_target qt staticlib dll
|
|
SOURCES =
|
|
INSTALLS -= target
|
|
}
|
|
}
|