diff options
Diffstat (limited to 'qmake')
-rw-r--r-- | qmake/Makefile.unix | 145 | ||||
-rw-r--r-- | qmake/Makefile.win32 | 4 | ||||
-rw-r--r-- | qmake/Makefile.win32-g++ | 6 | ||||
-rw-r--r-- | qmake/generators/makefile.cpp | 32 | ||||
-rw-r--r-- | qmake/generators/makefile.h | 3 | ||||
-rw-r--r-- | qmake/generators/win32/msvc_vcproj.cpp | 1 | ||||
-rw-r--r-- | qmake/project.cpp | 19 | ||||
-rw-r--r-- | qmake/property.cpp | 34 | ||||
-rw-r--r-- | qmake/qmake.pri | 1 |
9 files changed, 105 insertions, 140 deletions
diff --git a/qmake/Makefile.unix b/qmake/Makefile.unix index 2dddecb7b0..ab9b583ad3 100644 --- a/qmake/Makefile.unix +++ b/qmake/Makefile.unix @@ -6,6 +6,8 @@ QTSRCS = @QMAKE_QTSRCS@ QMAKESPEC = @QMAKESPEC@ LFLAGS = @QMAKE_LFLAGS@ +QMKSRC = $(SOURCE_PATH)/qmake + #qmake code OBJS=project.o property.o main.o makefile.o unixmake2.o unixmake.o \ mingw_make.o option.o winmakefile.o projectgenerator.o \ @@ -70,8 +72,8 @@ DEPEND_SRC=project.cpp property.cpp meta.cpp main.cpp generators/makefile.cpp ge $(SOURCE_PATH)/src/corelib/global/qlogging.cpp \ $(QTSRCS) -CPPFLAGS = -g -I. -Igenerators -Igenerators/unix -Igenerators/win32 \ - -Igenerators/mac -Igenerators/integrity \ +CPPFLAGS = -g -I$(QMKSRC) -I$(QMKSRC)/generators -I$(QMKSRC)/generators/unix -I$(QMKSRC)/generators/win32 \ + -I$(QMKSRC)/generators/mac -I$(QMKSRC)/generators/integrity \ -I$(BUILD_PATH)/include -I$(BUILD_PATH)/include/QtCore \ -I$(BUILD_PATH)/include/QtCore/$(QT_VERSION) -I$(BUILD_PATH)/include/QtCore/$(QT_VERSION)/QtCore \ -I$(BUILD_PATH)/src/corelib/global \ @@ -98,7 +100,74 @@ distclean:: clean depend: makedepend -D__MAKEDEPEND__ $(CPPFLAGS) $(DEPEND_SRC) -# don't use optimization for these + +project.o: $(QMKSRC)/project.cpp $(QMKSRC)/project.h $(QMKSRC)/option.h + $(CXX) -c -o $@ $(CXXFLAGS) $< + +property.o: $(QMKSRC)/property.cpp $(QMKSRC)/project.h $(QMKSRC)/option.h + $(CXX) -c -o $@ $(CXXFLAGS) $< + +meta.o: $(QMKSRC)/meta.cpp $(QMKSRC)/project.h $(QMKSRC)/option.h + $(CXX) -c -o $@ $(CXXFLAGS) $< + +main.o: $(QMKSRC)/main.cpp $(QMKSRC)/project.h + $(CXX) -c -o $@ $(CXXFLAGS) $< + +option.o: $(QMKSRC)/option.cpp $(QMKSRC)/option.h + $(CXX) -c -o $@ $(CXXFLAGS) $< + +metamakefile.o: $(QMKSRC)/generators/metamakefile.cpp + $(CXX) -c -o $@ $(CXXFLAGS) $< + +xmloutput.o: $(QMKSRC)/generators/xmloutput.cpp + $(CXX) -c -o $@ $(CXXFLAGS) $< + +makefiledeps.o: $(QMKSRC)/generators/makefiledeps.cpp + $(CXX) -c -o $@ $(CXXFLAGS) $< + +makefile.o: $(QMKSRC)/generators/makefile.cpp + $(CXX) -c -o $@ $(CXXFLAGS) $< + +unixmake.o: $(QMKSRC)/generators/unix/unixmake.cpp + $(CXX) -c -o $@ $(CXXFLAGS) $< + +unixmake2.o: $(QMKSRC)/generators/unix/unixmake2.cpp + $(CXX) -c -o $@ $(CXXFLAGS) $< + +winmakefile.o: $(QMKSRC)/generators/win32/winmakefile.cpp + $(CXX) -c -o $@ $(CXXFLAGS) $< + +borland_bmake.o: $(QMKSRC)/generators/win32/borland_bmake.cpp + $(CXX) -c -o $@ $(CXXFLAGS) $< + +mingw_make.o: $(QMKSRC)/generators/win32/mingw_make.cpp + $(CXX) -c -o $@ $(CXXFLAGS) $< + +msvc_objectmodel.o: $(QMKSRC)/generators/win32/msvc_objectmodel.cpp + $(CXX) -c -o $@ $(CXXFLAGS) $< + +msvc_vcproj.o: $(QMKSRC)/generators/win32/msvc_vcproj.cpp + $(CXX) -c -o $@ $(CXXFLAGS) $< + +msbuild_objectmodel.o: $(QMKSRC)/generators/win32/msbuild_objectmodel.cpp + $(CXX) -c -o $@ $(CXXFLAGS) $< + +msvc_vcxproj.o: $(QMKSRC)/generators/win32/msvc_vcxproj.cpp + $(CXX) -c -o $@ $(CXXFLAGS) $< + +msvc_nmake.o: $(QMKSRC)/generators/win32/msvc_nmake.cpp + $(CXX) -c -o $@ $(CXXFLAGS) $< + +pbuilder_pbx.o: $(QMKSRC)/generators/mac/pbuilder_pbx.cpp + $(CXX) -c -o $@ $(CXXFLAGS) $< + +gbuild.o: $(QMKSRC)/generators/integrity/gbuild.cpp + $(CXX) -c -o $@ $(CXXFLAGS) $< + +projectgenerator.o: $(QMKSRC)/generators/projectgenerator.cpp + $(CXX) -c -o $@ $(CXXFLAGS) $< + + qtextstream.o: $(SOURCE_PATH)/src/corelib/io/qtextstream.cpp $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/io/qtextstream.cpp @@ -246,75 +315,9 @@ qhash.o: $(SOURCE_PATH)/src/corelib/tools/qhash.cpp qlinkedlist.o: $(SOURCE_PATH)/src/corelib/tools/qlinkedlist.cpp $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/tools/qlinkedlist.cpp -winmakefile.o: generators/win32/winmakefile.cpp - $(CXX) -c -o $@ $(CXXFLAGS) generators/win32/winmakefile.cpp - -project.o: project.cpp project.h option.h - $(CXX) -c -o $@ $(CXXFLAGS) project.cpp - -property.o: property.cpp project.h option.h - $(CXX) -c -o $@ $(CXXFLAGS) property.cpp - -meta.o: meta.cpp project.h option.h - $(CXX) -c -o $@ $(CXXFLAGS) meta.cpp - -main.o: main.cpp project.h - $(CXX) -c -o $@ $(CXXFLAGS) main.cpp - -option.o: option.cpp option.h $(BUILD_PATH)/src/corelib/global/qconfig.cpp - $(CXX) -c -o $@ $(CXXFLAGS) option.cpp - qcryptographichash.o: $(SOURCE_PATH)/src/corelib/tools/qcryptographichash.cpp $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/tools/qcryptographichash.cpp -metamakefile.o: generators/metamakefile.cpp - $(CXX) -c -o $@ $(CXXFLAGS) generators/metamakefile.cpp - -xmloutput.o: generators/xmloutput.cpp - $(CXX) -c -o $@ $(CXXFLAGS) generators/xmloutput.cpp - -makefiledeps.o: generators/makefiledeps.cpp - $(CXX) -c -o $@ $(CXXFLAGS) generators/makefiledeps.cpp - -makefile.o: generators/makefile.cpp - $(CXX) -c -o $@ $(CXXFLAGS) generators/makefile.cpp - -unixmake.o: generators/unix/unixmake.cpp - $(CXX) -c -o $@ $(CXXFLAGS) generators/unix/unixmake.cpp - -unixmake2.o: generators/unix/unixmake2.cpp - $(CXX) -c -o $@ $(CXXFLAGS) generators/unix/unixmake2.cpp - -borland_bmake.o: generators/win32/borland_bmake.cpp - $(CXX) -c -o $@ $(CXXFLAGS) generators/win32/borland_bmake.cpp - -mingw_make.o: generators/win32/mingw_make.cpp - $(CXX) -c -o $@ $(CXXFLAGS) generators/win32/mingw_make.cpp - -msvc_objectmodel.o: generators/win32/msvc_objectmodel.cpp - $(CXX) -c -o $@ $(CXXFLAGS) generators/win32/msvc_objectmodel.cpp - -msvc_vcproj.o: generators/win32/msvc_vcproj.cpp - $(CXX) -c -o $@ $(CXXFLAGS) generators/win32/msvc_vcproj.cpp - -msbuild_objectmodel.o: generators/win32/msbuild_objectmodel.cpp - $(CXX) -c -o $@ $(CXXFLAGS) generators/win32/msbuild_objectmodel.cpp - -msvc_vcxproj.o: generators/win32/msvc_vcxproj.cpp - $(CXX) -c -o $@ $(CXXFLAGS) generators/win32/msvc_vcxproj.cpp - -msvc_nmake.o: generators/win32/msvc_nmake.cpp - $(CXX) -c -o $@ $(CXXFLAGS) generators/win32/msvc_nmake.cpp - -pbuilder_pbx.o: generators/mac/pbuilder_pbx.cpp - $(CXX) -c -o $@ $(CXXFLAGS) generators/mac/pbuilder_pbx.cpp - -gbuild.o: generators/integrity/gbuild.cpp - $(CXX) -c -o $@ $(CXXFLAGS) generators/integrity/gbuild.cpp - -projectgenerator.o: generators/projectgenerator.cpp - $(CXX) -c -o $@ $(CXXFLAGS) generators/projectgenerator.cpp - qxmlstream.o: $(SOURCE_PATH)/src/corelib/xml/qxmlstream.cpp $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/xml/qxmlstream.cpp @@ -324,8 +327,4 @@ qxmlutils.o: $(SOURCE_PATH)/src/corelib/xml/qxmlutils.cpp qlogging.o: $(SOURCE_PATH)/src/corelib/global/qlogging.cpp $(CXX) -c -o $@ $(CXXFLAGS) $(SOURCE_PATH)/src/corelib/global/qlogging.cpp -#default rules -.cpp.o: - $(CXX) -c -o $@ $(CXXFLAGS) $< - # DO NOT DELETE THIS LINE -- make depend depends on it diff --git a/qmake/Makefile.win32 b/qmake/Makefile.win32 index f36e4fa631..adcfb040ed 100644 --- a/qmake/Makefile.win32 +++ b/qmake/Makefile.win32 @@ -7,6 +7,8 @@ SOURCE_PATH = .. BUILD_PATH = .. !endif +QMKSRC = $(SOURCE_PATH)\qmake + # # specific stuff for NMake and ICC # @@ -31,7 +33,7 @@ CFLAGS_EXTRA = /MP CFLAGS_BARE = -c -Fo./ \ -W3 -nologo -O1 \ $(CFLAGS_EXTRA) \ - -I. -Igenerators -Igenerators\unix -Igenerators\win32 -Igenerators\mac -Igenerators\integrity \ + -I$(QMKSRC) -I$(QMKSRC)\generators -I$(QMKSRC)\generators\unix -I$(QMKSRC)\generators\win32 -I$(QMKSRC)\generators\mac -I$(QMKSRC)\generators\integrity \ -I$(BUILD_PATH)\include -I$(BUILD_PATH)\include\QtCore -I$(BUILD_PATH)\include\QtCore\$(QT_VERSION) -I$(BUILD_PATH)\include\QtCore\$(QT_VERSION)\QtCore \ -I$(BUILD_PATH)\src\corelib\global \ -I$(SOURCE_PATH)\mkspecs\$(QMAKESPEC) \ diff --git a/qmake/Makefile.win32-g++ b/qmake/Makefile.win32-g++ index 56d8edca7d..75c7e02334 100644 --- a/qmake/Makefile.win32-g++ +++ b/qmake/Makefile.win32-g++ @@ -43,9 +43,7 @@ endif # CXX = g++ CFLAGS = -c -o$@ -O \ - -I. -Igenerators -Igenerators/unix \ - -Igenerators/win32 -Igenerators/mac \ - -Igenerators/integrity \ + -I$(QMKSRC) -I$(QMKSRC)/generators -I$(QMKSRC)/generators/unix -I$(QMKSRC)/generators/win32 -I$(QMKSRC)/generators/mac -I$(QMKSRC)/generators/integrity \ -I$(BUILD_PATH)/include -I$(BUILD_PATH)/include/QtCore -I$(BUILD_PATH)/include/QtCore/$(QT_VERSION) -I$(BUILD_PATH)/include/QtCore/$(QT_VERSION)/QtCore \ -I$(BUILD_PATH)/src/corelib/global \ -I$(SOURCE_PATH)/mkspecs/win32-g++ \ @@ -132,7 +130,7 @@ qmake.exe: $(OBJS) $(QTOBJS) $(LINKQMAKE) -$(COPY) qmake.exe $(BUILD_PATH)\bin\qmake.exe -Makefile: Makefile.win32-g++ +Makefile: $(SOURCE_PATH)/qmake/Makefile.win32-g++ @echo "Out of date, please rerun configure" clean:: diff --git a/qmake/generators/makefile.cpp b/qmake/generators/makefile.cpp index 63367f116a..1904b8f6c6 100644 --- a/qmake/generators/makefile.cpp +++ b/qmake/generators/makefile.cpp @@ -306,7 +306,6 @@ MakefileGenerator::setProjectFile(QMakeProject *p) return; project = p; init(); - usePlatformDir(); findLibraries(); if(Option::qmake_mode == Option::QMAKE_GENERATE_MAKEFILE && project->isActiveConfig("link_prl")) //load up prl's' @@ -1028,7 +1027,6 @@ MakefileGenerator::writePrlFile(QTextStream &t) bool MakefileGenerator::writeProjectMakefile() { - usePlatformDir(); QTextStream t(&Option::output); //header @@ -1146,36 +1144,6 @@ MakefileGenerator::writePrlFile() } } -// Manipulate directories, so it's possible to build -// several cross-platform targets concurrently -void -MakefileGenerator::usePlatformDir() -{ - QString pltDir(project->first("QMAKE_PLATFORM_DIR")); - if(pltDir.isEmpty()) - return; - QChar sep = QDir::separator(); - QString slashPltDir = sep + pltDir; - - QString dirs[] = { QString("OBJECTS_DIR"), QString("DESTDIR"), QString("QMAKE_PKGCONFIG_DESTDIR"), - QString("SUBLIBS_DIR"), QString("DLLDESTDIR"), QString("QMAKE_LIBTOOL_DESTDIR"), - QString("PRECOMPILED_DIR"), QString("QMAKE_LIBDIR_QT"), QString() }; - for(int i = 0; !dirs[i].isEmpty(); ++i) { - QString filePath = project->first(dirs[i]); - project->values(dirs[i]) = QStringList(filePath + (filePath.isEmpty() ? pltDir : slashPltDir)); - } - - QString libs[] = { QString("QMAKE_LIBS_QT"), QString("QMAKE_LIBS_QT_THREAD"), QString("QMAKE_LIBS_QT_ENTRY"), QString() }; - for(int i = 0; !libs[i].isEmpty(); ++i) { - QString filePath = project->first(libs[i]); - int fpi = filePath.lastIndexOf(sep); - if(fpi == -1) - project->values(libs[i]).prepend(pltDir + sep); - else - project->values(libs[i]) = QStringList(filePath.left(fpi) + slashPltDir + filePath.mid(fpi)); - } -} - void MakefileGenerator::writeObj(QTextStream &t, const QString &src) { diff --git a/qmake/generators/makefile.h b/qmake/generators/makefile.h index 68d247a8f3..5b64ea68fb 100644 --- a/qmake/generators/makefile.h +++ b/qmake/generators/makefile.h @@ -198,9 +198,6 @@ protected: filterIncludedFiles("GENERATED_SOURCES"); } - //for cross-platform dependent directories - virtual void usePlatformDir(); - //for installs virtual QString defaultInstall(const QString &); diff --git a/qmake/generators/win32/msvc_vcproj.cpp b/qmake/generators/win32/msvc_vcproj.cpp index 434d4b4559..2f19ea4495 100644 --- a/qmake/generators/win32/msvc_vcproj.cpp +++ b/qmake/generators/win32/msvc_vcproj.cpp @@ -247,7 +247,6 @@ bool VcprojGenerator::writeMakefile(QTextStream &t) bool VcprojGenerator::writeProjectMakefile() { - usePlatformDir(); QTextStream t(&Option::output); // Check if all requirements are fulfilled diff --git a/qmake/project.cpp b/qmake/project.cpp index 7655f05f2e..b82b793319 100644 --- a/qmake/project.cpp +++ b/qmake/project.cpp @@ -579,14 +579,19 @@ QStringList qmake_feature_paths(QMakeProperty *prop=0) // The spec is already platform-dependent, so no subdirs here. feature_roots << Option::mkfile::qmakespec + base_concat; + // Also check directly under the root directory of the mkspecs collection QFileInfo specfi(Option::mkfile::qmakespec); - if (!specfi.isRoot()) { - QDir specdir(specfi.absolutePath()); - if (specdir.exists(QLatin1String("features"))) { - for(QStringList::Iterator concat_it = concat.begin(); - concat_it != concat.end(); ++concat_it) - feature_roots << (specdir.path() + (*concat_it)); + QDir specrootdir(specfi.absolutePath()); + while (!specrootdir.isRoot()) { + const QString specrootpath = specrootdir.path(); + if (specrootpath.endsWith(mkspecs_concat)) { + if (QFile::exists(specrootpath + base_concat)) + for (QStringList::Iterator concat_it = concat.begin(); + concat_it != concat.end(); ++concat_it) + feature_roots << (specrootpath + (*concat_it)); + break; } + specrootdir.cdUp(); } } for(QStringList::Iterator concat_it = concat.begin(); @@ -2782,7 +2787,7 @@ QMakeProject::doVariableReplaceExpand(const QString &str, QHash<QString, QString unicode != DOT && unicode != UNDERSCORE && //unicode != SINGLEQUOTE && unicode != DOUBLEQUOTE && (unicode < 'a' || unicode > 'z') && (unicode < 'A' || unicode > 'Z') && - (unicode < '0' || unicode > '9')) + (unicode < '0' || unicode > '9') && (!term || unicode != '/')) break; var.append(QChar(unicode)); if(++i == str_len) diff --git a/qmake/property.cpp b/qmake/property.cpp index 8ed9462c60..1952b5069b 100644 --- a/qmake/property.cpp +++ b/qmake/property.cpp @@ -68,18 +68,6 @@ static const struct { { "QT_INSTALL_CONFIGURATION", QLibraryInfo::SettingsPath, false }, { "QT_INSTALL_EXAMPLES", QLibraryInfo::ExamplesPath, false }, { "QT_INSTALL_DEMOS", QLibraryInfo::ExamplesPath, false }, // Just backwards compat - { "QT_RAW_INSTALL_PREFIX", QLibraryInfo::PrefixPath, true }, - { "QT_RAW_INSTALL_DATA", QLibraryInfo::DataPath, true }, - { "QT_RAW_INSTALL_DOCS", QLibraryInfo::DocumentationPath, true }, - { "QT_RAW_INSTALL_HEADERS", QLibraryInfo::HeadersPath, true }, - { "QT_RAW_INSTALL_LIBS", QLibraryInfo::LibrariesPath, true }, - { "QT_RAW_INSTALL_BINS", QLibraryInfo::BinariesPath, true }, - { "QT_RAW_INSTALL_TESTS", QLibraryInfo::TestsPath, true }, - { "QT_RAW_INSTALL_PLUGINS", QLibraryInfo::PluginsPath, true }, - { "QT_RAW_INSTALL_IMPORTS", QLibraryInfo::ImportsPath, true }, - { "QT_RAW_INSTALL_TRANSLATIONS", QLibraryInfo::TranslationsPath, true }, - { "QT_RAW_INSTALL_CONFIGURATION", QLibraryInfo::SettingsPath, true }, - { "QT_RAW_INSTALL_EXAMPLES", QLibraryInfo::ExamplesPath, true }, { "QT_HOST_PREFIX", QLibraryInfo::HostPrefixPath, true }, { "QT_HOST_DATA", QLibraryInfo::HostDataPath, true }, { "QT_HOST_BINS", QLibraryInfo::HostBinariesPath, true }, @@ -87,10 +75,15 @@ static const struct { QMakeProperty::QMakeProperty() : settings(0) { - for (int i = 0; i < sizeof(propList)/sizeof(propList[0]); i++) - m_values[QString::fromLatin1(propList[i].name)] = propList[i].raw - ? QLibraryInfo::rawLocation(propList[i].loc) - : QLibraryInfo::location(propList[i].loc); + for (int i = 0; i < sizeof(propList)/sizeof(propList[0]); i++) { + QString name = QString::fromLatin1(propList[i].name); + QString val = QLibraryInfo::rawLocation(propList[i].loc); + if (!propList[i].raw) { + m_values[name] = QLibraryInfo::location(propList[i].loc); + name += "/raw"; + } + m_values[name] = val; + } } QMakeProperty::~QMakeProperty() @@ -216,8 +209,13 @@ QMakeProperty::exec() #ifdef QT_VERSION_STR specialProps.append("QT_VERSION"); #endif - foreach (QString prop, specialProps) - fprintf(stdout, "%s:%s\n", prop.toLatin1().constData(), value(prop).toLatin1().constData()); + foreach (QString prop, specialProps) { + QString val = value(prop); + QString pval = value(prop + "/raw"); + fprintf(stdout, "%s:%s\n", prop.toLatin1().constData(), val.toLatin1().constData()); + if (!pval.isEmpty() && pval != val) + fprintf(stdout, "%s/raw:%s\n", prop.toLatin1().constData(), pval.toLatin1().constData()); + } return true; } for(QStringList::ConstIterator it = Option::prop::properties.begin(); diff --git a/qmake/qmake.pri b/qmake/qmake.pri index dda03d43b8..b8b9d43035 100644 --- a/qmake/qmake.pri +++ b/qmake/qmake.pri @@ -1,6 +1,5 @@ CONFIG += depend_includepath -QMAKE_INCREMENTAL = SKIP_DEPENDS += qconfig.h qmodules.h DEFINES += QT_NO_TEXTCODEC QT_NO_LIBRARY QT_NO_STL QT_NO_COMPRESS QT_NO_UNICODETABLES \ QT_NO_GEOM_VARIANT QT_NO_DATASTREAM |