diff options
author | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2018-04-23 16:00:34 +0200 |
---|---|---|
committer | Tor Arne Vestbø <tor.arne.vestbo@qt.io> | 2018-04-26 14:19:21 +0000 |
commit | 7c3053b301a70b04f5ab4ed9c3f3a6c84cb89616 (patch) | |
tree | 327c13b9c9aecd802a3053d78efd1f6fa855d454 /qmake/generators/mac/pbuilder_pbx.cpp | |
parent | c127fc83adef427f62cc38f3e1afc0041ac9dfe5 (diff) |
qmake: Don't map Xcode SYMROOT to output directory
The output directory may be the same as the source directory in
the case of an in-source build, but Xcode treats the SYMROOT as
a build directory, and automatically excludes it from Time Machine
backups, which may result in not backing up sources.
Instead we map SYMROOT to an .xcode subdirectory of the output
directory, and then use CONFIGURATION_BUILD_DIR to make sure
the final build targets end up where they used to.
Task-number: QTBUG-52474
Change-Id: I3852ca9088e75ca62fca4c1217b5485175d9436f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'qmake/generators/mac/pbuilder_pbx.cpp')
-rw-r--r-- | qmake/generators/mac/pbuilder_pbx.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/qmake/generators/mac/pbuilder_pbx.cpp b/qmake/generators/mac/pbuilder_pbx.cpp index 3b1f904253..18b62c5135 100644 --- a/qmake/generators/mac/pbuilder_pbx.cpp +++ b/qmake/generators/mac/pbuilder_pbx.cpp @@ -1603,7 +1603,17 @@ ProjectBuilderMakefileGenerator::writeMakeParts(QTextStream &t) } } - t << "\t\t\t\t" << writeSettings("SYMROOT", Option::output_dir) << ";\n"; + // The symroot is marked by xcodebuild as excluded from Time Machine + // backups, as it's a temporary build dir, so we don't want it to be + // the same as the possibe in-source dir, as that would leave out + // sources from being backed up. + t << "\t\t\t\t" << writeSettings("SYMROOT", + Option::output_dir + Option::dir_sep + ".xcode") << ";\n"; + + // The configuration build dir however is not treated as excluded, + // so we can safely point it to the root output dir. + t << "\t\t\t\t" << writeSettings("CONFIGURATION_BUILD_DIR", + Option::output_dir + Option::dir_sep + "$(CONFIGURATION)") << ";\n"; if (!project->isEmpty("DESTDIR")) { ProString dir = project->first("DESTDIR"); |