Merge 'release' into stable

Change-Id: I57aaa6747c1bfacc7dee036cd69d91a8c0d9ae7a
This commit is contained in:
Oswald Buddenhagen 2012-12-19 19:31:35 +01:00
commit d4a29a53eb
10 changed files with 169 additions and 217 deletions

59
configure vendored
View File

@ -861,7 +861,6 @@ PLATFORM=$QMAKESPEC
QT_CROSS_COMPILE=no
OPT_CONFIRM_LICENSE=no
OPT_SHADOW=maybe
OPT_FAST=auto
OPT_VERBOSE=no
OPT_HELP=
CFG_SILENT=no
@ -2015,13 +2014,6 @@ while [ "$#" -gt 0 ]; do
UNKNOWN_OPT=yes
fi
;;
fast)
if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
OPT_FAST="$VAL"
else
UNKNOWN_OPT=yes
fi
;;
rpath)
if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
CFG_RPATH="$VAL"
@ -2305,14 +2297,6 @@ if [ ! -d "${outpath}/lib/fonts" ]; then
fi
fi
if [ "$OPT_FAST" = "auto" ]; then
if [ '!' -z "$AWK" ] && [ "$CFG_DEV" = "yes" ]; then
OPT_FAST=yes
else
OPT_FAST=no
fi
fi
# find a make command
if [ -z "$MAKE" ]; then
MAKE=
@ -3099,12 +3083,6 @@ Configure options:
-fully-process ..... Generate Makefiles for the entire Qt tree.
-dont-process ...... Do not generate any Makefiles.
* -no-fast ........... Configure Qt normally by generating Makefiles for all
project files.
-fast .............. Configure Qt quickly by generating Makefiles only for
library and subdirectory targets. All other Makefiles
are created as wrappers, which will in turn run qmake.
-no-largefile ...... Disables large file support.
+ -largefile ......... Enables Qt to access files larger than 4 GB.
@ -6375,43 +6353,6 @@ if [ "$CFG_PROCESS" != "no" ]; then
else
"$outpath/bin/qmake" "$relpath"
fi
if [ "$OPT_FAST" = "yes" ]; then
PART_ROOTS=
for part in $CFG_BUILD_PARTS; do
case "$part" in
examples|tests) PART_ROOTS="$PART_ROOTS $part" ;;
esac
done
if [ "x$PART_ROOTS" != "x" ]; then
echo
echo "Creating stub makefiles. Please wait..."
QMAKE="$outpath/bin/qmake"
[ "$CFG_DEBUG_RELEASE" = "no" ] && first_tgt="first_target: first" || first_tgt=
(cd "$relpath" && find $PART_ROOTS -name '*.pro') | grep -v /testdata/ | while read p; do
d=${p%/*}
test -f "$outpath/$d/Makefile" && continue
echo " for $relpath/$p"
mkdir -p "$outpath/$d" || exit
cat > "$outpath/$d/Makefile" <<EOF || exit
# $outpath/$d/Makefile: generated by configure
#
# WARNING: This makefile will be replaced with a real makefile.
# All changes made to this file will be lost.
QMAKE = "$QMAKE"
$first_tgt
all clean install qmake first Makefile: FORCE
\$(QMAKE) $QMAKE_SWITCHES "$relpath/$p"
\$(MAKE) \$@
FORCE:
EOF
done || exit
echo "Done"
fi
fi
fi
#-------------------------------------------------------------------------------

150
dist/changes-5.0.0 vendored
View File

@ -11,6 +11,8 @@ information about a particular change.
* Source incompatible changes *
****************************************************************************
- The Qt 3 support module and all related code was removed.
- QAtomicInt's and QAtomicPointer's non-atomic convenience methods
(i.e., operator=, operator int / operator T*, operator!, operator==,
operator!= and operator->) have been removed as they did implicit
@ -282,23 +284,6 @@ information about a particular change.
- QIconEngineV2 was merged into QIconEngine
You might need to adjust your code if it used a QIconEngine.
- qmake
* Projects which explicitly set an empty TARGET are considered broken now.
* The makespec and .qmake.cache do not see build pass specific variables any more.
* load()/include() with a target namespace and infile()/$$fromfile() now start with
an entirely pristine context.
* Configure's -sysroot and -hostprefix are now handled slightly differently.
The QT_INSTALL_... properties are now automatically prefixed with the sysroot;
the raw values are available as QT_INSTALL_.../raw and the sysroot as QT_SYSROOT.
The new QT_HOST_... properties can be used to refer to the Qt host tools.
* Several functions and built-in variables were modified to return normalized paths.
* The -(no-)exception flags in configure have been removed. Qt modules are now compiled
without exceptions by default, as they do not use them and can neither handle them
properly. Qt Core still has exceptions enabled to correctly throw bad_alloc exceptions
in our tool classes.
Whether code should be compiled with exception support enabled or disabled can be
controlled by a CONFIG += exceptions/exceptions_off setting in the .pro file.
- QTextCodecPlugin has been removed since it is no longer used. All text codecs
are now built into QtCore.
@ -919,9 +904,66 @@ Qt for Windows CE
- Build System
* Remove qttest_p4.prf file. From now on we should explicitly enable the
things from it which we want. Autotest .pro files should stop using
'load(qttest_p4)' and start using 'CONFIG+=testcase' instead.
* Qt has been split into numerous repositories. Configure covers mostly only qtbase's options.
* Qt will now install CMake configuration files for all its libraries.
- configure
* The Mac OS X -dwarf2 configure argument has been removed. DWARF2 is always
used on Mac OS X now.
* The following options have been added: (-no)-force-asserts, (-no)-strip, (-no)-gui &
(-no)-widgets, -device & -device-option, -archdatadir, -libexecdir & -qmldir,
and numerous changes relating to specific Qt features and dependencies.
* Configure will no longer call "qmake -recursive" by default, as the subsequent
build invokes qmake as needed. Use -fully-process to restore the old behavior.
- qmake
* default_pre.prf is now evaluated per subproject & build pass, symmetrically
to default_post.prf.
* .qmake.conf files (.qmake.cache equivalent in source tree) are read now.
* Project-specific mkspecs/ and features/ directories are supported now.
QMAKEPATH and QMAKEFEATURES can be set in .qmake.{config,cache} to specifiy their
location, and qmake will find them in the project's top-level directory automatically.
* Mixing host and target subprojects is now supported. "default-host" makespec
was added; option(host_build) enables its use.
* QMAKE_MOC_OPTIONS variable is now available for passing additional parameters
to the moc.
* The CROSS_COMPILE variable and property can be used to parametrize the device
and mingw makespecs.
* QMAKE_RPATHLINKDIR (complementary to QMAKE_RPATHDIR) is now understood.
* The "aux" TEMPLATE was added. Does not work with vcproj and xcode output files.
* The properties QT_INSTALL_ARCHDATA, QT_INSTALL_LIBEXECS, QT_INSTALL_QML,
QMAKE_SPEC & QMAKE_XSPEC were added. QT_INSTALL_DEMOS is obsolete.
* The following functions have been added: $$sort_depends, $$resolve_depends,
$$enumerate_vars, $$reverse, $$val_escape, $$format_number, $$shadowed,
$$clean_path, $$system_path, $$shell_path, $$absolute_path, $$relative_path,
$$system_quote, $$shell_quote, cache, write_file, touch, mkpath & log.
defined can now query variables; $$cat and $$system support more splitting modes.
qtCompileTest (available from configure.prf) was added.
* Removed qttest_p4.prf. Use CONFIG+=testcase and other flags instead.
* QMAKE_SUBSTITUTES can now copy files verbatim.
* MSVC desktop builds now use -Zc:wchar_t.
* The following variables were added: QMAKESPEC, _QMAKE_CONF_ & _QMAKE_SUPER_CACHE_.
* QDBUSXML2CPP_{INTERFACES,ADAPTORS}_{HEADER,SOURCE}_FLAGS are now understood,
and DBUS_{INTERFACES,ADAPTORS} support file groups with individual flags now.
* QT_PRIVATE and PKGCONFIG_PRIVATE (analogous to LIBS_PRIVATE resp. PKGCONFIG) are now understood.
* INSTALLS entries now support copying with subdirectory (e.g., entry.base = $$dirname(PWD)).
* Defining QTPLUGIN in dynamically linked projects does not hurt any more.
* CONFIG+=import_plugins will now cause plugin imports for QTPLUGIN being auto-generated.
* Debug info generation can now be enabled also for release builds (CONFIG+=force_debug_info).
* The following CONFIG flags have been deprecated in favor of QT module entries:
qtestlib, qdbus, help, designer, uitools, qaxserver & qaxcontainer (the leading 'q'
was stripped from the affected modules).
* The IN_PWD alias for PWD was deprecated.
* QMAKE_{DIST,}CLEAN support normalized path separators now.
* CONFIG+=depend_includepath is on by default now. DEPENDPATH is unnecessary in most projects.
* Makespecs should be adjusted in the following ways:
* The QMAKE_INCDIR_QT, QMAKE_LIBDIR_QT, QMAKE_MOC, QMAKE_UIC, QMAKE_IDC, TEMPLATE & QT
variables should not be defined any more. Furthermore, QMAKE_LIBS_X11SM is obsolete.
* The qt, warn_on, release, & link_prl CONFIG flags should not be set any more.
* The QMAKE_PLATFORM & QMAKE_COMPILER variables should be defined now.
Several other variables should be defined by including files from mkspecs/common/.
- Assistant
@ -932,6 +974,11 @@ Qt for Windows CE
- Linguist
* The integration with Mac OS' document handling was improved
* lupdate can now treat other .ts files as sources
* lupdate's CODECFORTR is deprecated and will be removed soon. All source code
written with Qt is expected to use UTF-8 encoding.
- rcc
@ -944,20 +991,6 @@ Qt for Windows CE
- uic
- uic3
- qmake
* QMAKE_MOC_OPTIONS variable is now available for passing additional parameters
to the moc.
- configure
* The Mac OS X -dwarf2 configure argument has been removed. DWARF2 is always
used on Mac OS X now.
- qtconfig
@ -1006,6 +1039,10 @@ Qt for Windows CE
in the URL by themselves. Now, it will return "%25", like
QUrl::toEncoded().
- QLibraryInfo
* location() always returns paths with normalized separators now.
- QVariant
* Definition of QVariant::UserType changed. Currently it is the same as
@ -1037,3 +1074,48 @@ Qt for Windows CE
* The static function QMessageBox::question has changed the default argument
for buttons. Before the default was to have an Ok button. That is changed
to having a yes and a no button.
- qmake & configure
* The project file parser has been rewritten from scratch. Invalid syntax will be
rejected more aggressively, and interpretation may have changed in some corner cases.
* Projects which explicitly set an empty TARGET are considered broken now.
* The makespec and .qmake.cache do not see build pass specific variables any more.
* load()/include() with a target namespace and infile()/$$fromfile() now start with
an entirely pristine context.
* Configure's -sysroot and -hostprefix are now handled slightly differently.
The QT_INSTALL_... properties are now automatically prefixed with the sysroot;
the raw values are available as QT_INSTALL_.../raw and the sysroot as QT_SYSROOT.
The new QT_HOST_... properties can be used to refer to the Qt host tools.
-no-gcc-sysroot can be used for non-standard sysroot configurations.
* The QMAKE_MKSPECS property became unavailable at the command line. Query QT_HOST_DATA instead.
* The TEMPLATE_PREFIX variable is gone. Use contains(TEMPLATE, vc.*) instead.
* The "default" makespec symlink/directory is gone. Use qmake -query QMAKE_XSPEC instead.
* DEPENDPATH does not end up in VPATH any more. Some SOURCES may not be found any more.
* Several functions and built-in variables were modified to return normalized paths.
* The -(no-)exception flags in configure have been removed. Qt modules are now compiled
without exceptions by default, as they do not use them and can neither handle them
properly. Qt Core still has exceptions enabled to correctly throw bad_alloc exceptions
in our tool classes.
Whether code should be compiled with exception support enabled or disabled can be
controlled by a CONFIG += exceptions/exceptions_off setting in the .pro file.
* The -no/-stl configure options are gone. Qt always uses the STL now.
* The -no/-fast configure options are gone.
* The -prefix-install configure option is gone. Use -prefix, etc. instead.
* The -make option of the Windows configure was renamed to -make-tool.
-make now complements -no-make, like in the Unix version.
* The object_with_source CONFIG flag was removed. Use object_parallel_to_source instead.
* Support for universal binaries on Mac OS has been removed.
* The processor architecture handling changed significantly. This affects the -arch & -*-endian
configure options, the QT_ARCH qmake variable, and more.
* No "make_default" make targets will be generated any more. Use "make_first" instead.
* The "qmake" make targets are non-recursive now. Use "qmake_all" to recurse.
* load() with paths relative to the current project is not supported any more.
Use include() instead.
* Persistent qmake properties are not versioned any more. Also, the vendor changed to
"QtProject", so old settings are lost.
* Support for the Borland toolchain was removed. Numerous obsolete makespecs were culled.
* setcepaths.bat is gone. QMake-generated Makefiles are self-contained now.
* moc_dir, rcc_dir and some other tool variables are not defined in Qt's .pc files any more;
the generic host_bins is defined instead.

View File

@ -51,6 +51,10 @@ MODULE_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules-inst/qt_lib_$${MODULE}.pri
!build_pass {
# Create a module .pri file
unix:!static: \
module_rpath = "QT.$${MODULE}.rpath = $$[QT_INSTALL_LIBS/raw]"
else: \
module_rpath =
!isEmpty(QT_FOR_PRIVATE) {
contains(QT_FOR_PRIVATE, .*-private$):error("QT_FOR_PRIVATE may not contain *-private.")
module_privdep = "QT.$${MODULE}.private_depends = $$QT_FOR_PRIVATE"
@ -82,10 +86,9 @@ MODULE_PRI = $$MODULE_QMAKE_OUTDIR/mkspecs/modules-inst/qt_lib_$${MODULE}.pri
"QT.$${MODULE}.bins = \$\$QT_MODULE_BIN_BASE" \
"QT.$${MODULE}.includes = $$MODULE_INCLUDES" \
"QT.$${MODULE}.private_includes = $$MODULE_PRIVATE_INCLUDES" \
"QT.$${MODULE}.sources = $$val_escape(_PRO_FILE_PWD_)" \
"QT.$${MODULE}.libs = \$\$QT_MODULE_LIB_BASE" \
"QT.$${MODULE}.libexecs = \$\$QT_MODULE_LIBEXEC_BASE" \
"QT.$${MODULE}.rpath = $$[QT_INSTALL_LIBS/raw]" \
$$module_rpath \
"QT.$${MODULE}.plugins = \$\$QT_MODULE_PLUGIN_BASE" \
"QT.$${MODULE}.imports = \$\$QT_MODULE_IMPORT_BASE" \
"QT.$${MODULE}.qml = \$\$QT_MODULE_QML_BASE" \

View File

@ -59,7 +59,6 @@
# Create a forwarding module .pri file
MODULE_FWD_PRI_CONT = \
"QT_MODULE_BASE = $$MODULE_BASE_DIR" \
"QT_MODULE_BIN_BASE = $$MODULE_BASE_OUTDIR/bin" \
"QT_MODULE_INCLUDE_BASE = $$MODULE_BASE_OUTDIR/include" \
"QT_MODULE_IMPORT_BASE = $$MODULE_BASE_OUTDIR/imports" \

View File

@ -1,22 +0,0 @@
CONFIG -= thread_off
# #### These need to go
debug {
contains(DEFINES, QT_DLL) {
QMAKE_CFLAGS += $$QMAKE_CFLAGS_MT_DLLDBG
QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_MT_DLLDBG
} else {
QMAKE_CFLAGS += $$QMAKE_CFLAGS_MT_DBG
QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_MT_DBG
}
} else {
contains(DEFINES, QT_DLL) {
QMAKE_CFLAGS += $$QMAKE_CFLAGS_MT_DLL
QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_MT_DLL
} else {
QMAKE_CFLAGS += $$QMAKE_CFLAGS_MT
QMAKE_CXXFLAGS += $$QMAKE_CXXFLAGS_MT
}
}
QMAKE_LIBS += $$QMAKE_LIBS_RTMT

View File

@ -1,2 +0,0 @@
CONFIG -= thread
QMAKE_LIBS += $$QMAKE_LIBS_RT

View File

@ -66,6 +66,7 @@ QXcbScreen::QXcbScreen(QXcbConnection *connection, xcb_screen_t *scr,
, m_orientation(Qt::PrimaryOrientation)
, m_number(number)
, m_refreshRate(60)
, m_forcedDpi(-1)
{
if (connection->hasXRandr())
xcb_randr_select_input(xcb_connection(), screen()->root, true);
@ -82,6 +83,9 @@ QXcbScreen::QXcbScreen(QXcbConnection *connection, xcb_screen_t *scr,
if (m_availableGeometry.isEmpty())
m_availableGeometry = QRect(QPoint(), m_virtualSize);
readXResources();
#ifdef Q_XCB_DEBUG
qDebug();
qDebug("Screen output %s of xcb screen %d:", m_outputName.toUtf8().constData(), m_number);
@ -243,6 +247,9 @@ QImage::Format QXcbScreen::format() const
QDpi QXcbScreen::logicalDpi() const
{
if (m_forcedDpi > 0)
return QDpi(m_forcedDpi, m_forcedDpi);
return QDpi(Q_MM_PER_INCH * m_virtualSize.width() / m_virtualSizeMillimeters.width(),
Q_MM_PER_INCH * m_virtualSize.height() / m_virtualSizeMillimeters.height());
}
@ -474,4 +481,41 @@ QPixmap QXcbScreen::grabWindow(WId window, int x, int y, int width, int height)
return result;
}
void QXcbScreen::readXResources()
{
int offset = 0;
QByteArray resources;
while(1) {
xcb_get_property_reply_t *reply =
xcb_get_property_reply(xcb_connection(),
xcb_get_property_unchecked(xcb_connection(), false, screen()->root,
XCB_ATOM_RESOURCE_MANAGER,
XCB_ATOM_STRING, offset/4, 8192), NULL);
bool more = false;
if (reply && reply->format == 8 && reply->type == XCB_ATOM_STRING) {
resources += QByteArray((const char *)xcb_get_property_value(reply), xcb_get_property_value_length(reply));
offset += xcb_get_property_value_length(reply);
more = reply->bytes_after != 0;
}
if (reply)
free(reply);
if (!more)
break;
}
QList<QByteArray> split = resources.split('\n');
for (int i = 0; i < split.size(); ++i) {
const QByteArray &r = split.at(i);
if (r.startsWith("Xft.dpi:\t")) {
bool ok;
int dpi = r.mid(sizeof("Xft.dpi:")).toInt(&ok);
if (ok)
m_forcedDpi = dpi;
break;
}
}
}
QT_END_NAMESPACE

View File

@ -96,6 +96,7 @@ public:
void updateGeometry(xcb_timestamp_t timestamp);
void updateRefreshRate();
void readXResources();
private:
xcb_screen_t *m_screen;
xcb_randr_crtc_t m_crtc;
@ -114,6 +115,7 @@ private:
QMap<xcb_visualid_t, xcb_visualtype_t> m_visuals;
QXcbCursor *m_cursor;
int m_refreshRate;
int m_forcedDpi;
};
QT_END_NAMESPACE

View File

@ -210,7 +210,6 @@ Configure::Configure(int& argc, char** argv)
dictionary[ "BUILD_QMAKE" ] = "yes";
dictionary[ "VCPROJFILES" ] = "yes";
dictionary[ "QMAKE_INTERNAL" ] = "no";
dictionary[ "FAST" ] = "no";
dictionary[ "PROCESS" ] = "partial";
dictionary[ "WIDGETS" ] = "yes";
dictionary[ "RTTI" ] = "yes";
@ -802,11 +801,6 @@ void Configure::parseCmdLine()
dictionary[ "NATIVE_GESTURES" ] = "no";
#if !defined(EVAL)
// Others ---------------------------------------------------
else if (configCmdLine.at(i) == "-fast")
dictionary[ "FAST" ] = "yes";
else if (configCmdLine.at(i) == "-no-fast")
dictionary[ "FAST" ] = "no";
else if (configCmdLine.at(i) == "-widgets")
dictionary[ "WIDGETS" ] = "yes";
else if (configCmdLine.at(i) == "-no-widgets")
@ -1649,11 +1643,6 @@ bool Configure::displayHelp()
desc("LTCG", "yes", "-ltcg", "Use Link Time Code Generation. (Release builds only)");
desc("LTCG", "no", "-no-ltcg", "Do not use Link Time Code Generation.\n");
desc("FAST", "no", "-no-fast", "Configure Qt normally by generating Makefiles for all project files.");
desc("FAST", "yes", "-fast", "Configure Qt quickly by generating Makefiles only for library and "
"subdirectory targets. All other Makefiles are created as wrappers "
"which will in turn run qmake.\n");
desc( "-make <part>", "Add part to the list of parts to be built at make time");
for (int i=0; i<defaultBuildParts.size(); ++i)
desc( "", qPrintable(QString(" %1").arg(defaultBuildParts.at(i))), false, ' ');
@ -1790,7 +1779,7 @@ bool Configure::displayHelp()
desc("PROCESS", "partial", "-process", "Generate top-level Makefiles/Project files.");
desc("PROCESS", "full", "-fully-process", "Generate Makefiles/Project files for the entire Qt\ntree.");
desc("PROCESS", "no", "-dont-process", "Do not generate Makefiles/Project files. This will override -no-fast if specified.\n");
desc("PROCESS", "no", "-dont-process", "Do not generate Makefiles/Project files.\n");
desc("RTTI", "no", "-no-rtti", "Do not compile runtime type information.");
desc("RTTI", "yes", "-rtti", "Compile runtime type information.");
@ -3755,43 +3744,6 @@ void Configure::buildQmake()
}
#endif
void Configure::findProjects(const QString& dirName)
{
if (dictionary[ "PROCESS" ] != "no") {
QDir dir(dirName);
QString entryName;
int makeListNumber;
ProjectType qmakeTemplate;
const QFileInfoList &list = dir.entryInfoList(QStringList(QLatin1String("*.pro")),
QDir::AllDirs | QDir::Files | QDir::NoDotAndDotDot);
for (int i = 0; i < list.size(); ++i) {
const QFileInfo &fi = list.at(i);
if (fi.fileName() != "qmake.pro") {
entryName = dirName + "/" + fi.fileName();
if (fi.isDir()) {
findProjects(entryName);
} else {
qmakeTemplate = projectType(fi.absoluteFilePath());
switch (qmakeTemplate) {
case Lib:
case Subdirs:
makeListNumber = 1;
break;
default:
makeListNumber = 2;
break;
}
makeList[makeListNumber].append(new MakeItem(sourceDir.relativeFilePath(fi.absolutePath()),
fi.fileName(),
"Makefile",
qmakeTemplate));
}
}
}
}
}
void Configure::appendMakeItem(int inList, const QString &item)
{
QString dir;
@ -3813,9 +3765,8 @@ void Configure::generateMakefiles()
if (spec != "win32-msvc.net" && !spec.startsWith("win32-msvc2") && !spec.startsWith(QLatin1String("wince")))
dictionary[ "VCPROJFILES" ] = "no";
int i = 0;
QString pwd = QDir::currentPath();
if (dictionary["FAST"] != "yes") {
{
QString dirName;
bool generate = true;
bool doDsp = (dictionary["VCPROJFILES"] == "yes");
@ -3848,51 +3799,6 @@ void Configure::generateMakefiles()
dictionary[ "DONE" ] = "error";
}
}
} else {
findProjects(sourcePath);
for (i=0; i<3; i++) {
for (int j=0; j<makeList[i].size(); ++j) {
MakeItem *it=makeList[i][j];
if (it->directory == "tools/configure")
continue; // don't overwrite our own Makefile
QString dirPath = it->directory + '/';
QString projectName = it->proFile;
QString makefileName = buildPath + "/" + dirPath + it->target;
// For shadowbuilds, we need to create the path first
QDir buildPathDir(buildPath);
if (sourcePath != buildPath && !buildPathDir.exists(dirPath))
buildPathDir.mkpath(dirPath);
QStringList args;
args << QDir::toNativeSeparators(buildPath + "/bin/qmake.exe");
args << sourcePath + "/" + dirPath + projectName;
cout << "For " << qPrintable(QDir::toNativeSeparators(dirPath + projectName)) << endl;
args << "-o";
args << it->target;
QDir::setCurrent(dirPath);
QFile file(makefileName);
if (!file.open(QFile::WriteOnly | QFile::Text)) {
printf("failed on dirPath=%s, makefile=%s\n",
qPrintable(QDir::toNativeSeparators(dirPath)),
qPrintable(QDir::toNativeSeparators(makefileName)));
continue;
}
QTextStream txt(&file);
txt << "all:\n";
txt << "\t" << args.join(' ') << "\n";
txt << "\t$(MAKE) -$(MAKEFLAGS) -f " << it->target << "\n";
txt << "first: all\n";
txt << "qmake: FORCE\n";
txt << "\t" << args.join(' ') << "\n";
txt << "FORCE:\n";
}
}
}
QDir::setCurrent(pwd);
} else {

View File

@ -85,7 +85,6 @@ public:
void generateSystemVars();
#endif
void showSummary();
void findProjects( const QString& dirName );
QString firstLicensePath();
#if !defined(EVAL)