summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--qmake/generators/mac/pbuilder_pbx.cpp6
-rw-r--r--qmake/generators/mac/pbuilder_pbx.h1
-rw-r--r--qmake/generators/makefile.cpp15
-rw-r--r--qmake/generators/makefile.h1
4 files changed, 23 insertions, 0 deletions
diff --git a/qmake/generators/mac/pbuilder_pbx.cpp b/qmake/generators/mac/pbuilder_pbx.cpp
index c1c9336c92..f03dce2bc4 100644
--- a/qmake/generators/mac/pbuilder_pbx.cpp
+++ b/qmake/generators/mac/pbuilder_pbx.cpp
@@ -2073,4 +2073,10 @@ ProjectBuilderMakefileGenerator::writeSettings(const QString &var, const ProStri
return ret;
}
+bool
+ProjectBuilderMakefileGenerator::inhibitMakeDirOutPath(const ProKey &path) const
+{
+ return path == "OBJECTS_DIR";
+}
+
QT_END_NAMESPACE
diff --git a/qmake/generators/mac/pbuilder_pbx.h b/qmake/generators/mac/pbuilder_pbx.h
index 9b85764caa..10a390ec7f 100644
--- a/qmake/generators/mac/pbuilder_pbx.h
+++ b/qmake/generators/mac/pbuilder_pbx.h
@@ -66,6 +66,7 @@ public:
protected:
bool doPrecompiledHeaders() const override { return false; }
bool doDepends() const override { return writingUnixMakefileGenerator && UnixMakefileGenerator::doDepends(); }
+ bool inhibitMakeDirOutPath(const ProKey &path) const override;
};
QT_END_NAMESPACE
diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp
index 41525c5778..5a17a92425 100644
--- a/qmake/generators/makefile.cpp
+++ b/qmake/generators/makefile.cpp
@@ -173,6 +173,9 @@ MakefileGenerator::initOutPaths()
if (noIO() || (project->first("TEMPLATE") == "subdirs"))
continue;
+ if (inhibitMakeDirOutPath(dkey))
+ continue;
+
QString path = project->first(dkey).toQString(); //not to be changed any further
path = fileFixify(path, FileFixifyBackwards);
debug_msg(3, "Fixed output_dir %s (%s) into %s", dirs[x],
@@ -216,6 +219,18 @@ MakefileGenerator::initOutPaths()
}
}
+/*
+ * For the given directory path, return true if MakefileGenerator::initOutPaths() should inhibit the
+ * creation of the directory. Overload this in subclasses.
+ */
+bool
+MakefileGenerator::inhibitMakeDirOutPath(const ProKey &path) const
+{
+ Q_UNUSED(path);
+ return false;
+}
+
+
QMakeProject
*MakefileGenerator::projectFile() const
{
diff --git a/qmake/generators/makefile.h b/qmake/generators/makefile.h
index 720599fd96..60431d622a 100644
--- a/qmake/generators/makefile.h
+++ b/qmake/generators/makefile.h
@@ -160,6 +160,7 @@ protected:
void verifyCompilers();
virtual void init();
void initOutPaths();
+ virtual bool inhibitMakeDirOutPath(const ProKey &path) const;
struct Compiler
{
QString variable_in;