first replaceExtraCompilerVariables(..., NoShell), then fix the final result.
Change-Id: If8cebeaa59f48d91b33b5a74e6a48a0d2d049643
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
it makes no sense to call it on paths that are fixified right before or
after, as fileFixify() calls it itself.
and verifyExtraCompiler() calls normalizePath() on its file argument.
Change-Id: I8fb21e129fd29428d1855de73483087842bc1bdd
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
in most cases, it actually means normalizePath() (because the file name is
used with qt i/o functions afterwards).
this affects QMakeLocalFile::local() as well, so many not immediately
obvious places are affected as well.
there was also one case of fixPathToTargetOS() falling into this category.
this is mostly a no-op, as the qt functions are agnostic to the path
separator.
in some other cases (in particular in the vcproj generator), it actually
means fixPathToTargetOS().
this is mostly a no-op as well, as the two functions are equal except on
msys anyway.
in the <meta file>FileName() functions, the use of a fixPath*() function
is bogus in the first place - fileFixify() already does
fixPathToTargetOS(), and this is correct when the file name is used
verbatim in a make command (which it is). otherwise it's irrelevant.
Change-Id: I26712da8f888c704f8b7f42dbe24c941b6ad031d
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
there is no reason why there should be unexpected leading or trailing
whitespace in an extra compiler's .depends list.
Change-Id: I46be75063180131e135fc6eea0238a482073618a
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
instead of quoting more or less random variable contents early,
consistently quote everything only right before it is needed. this way
we can be sure that everything is correctly quoted, but not over-quoted.
this removed the need for the insanity that unescapeFilePath() and
similar ad-hoc contraptions were.
this had the somewhat counter-intuitive effect that it was possible to
remove escapeFilePath() calls from PBX::writeSettings() calls - these
were actually only unescaping.
[ChangeLog][qmake][Important Behavior Changes] A lot of quoting issues
have been fixed. As a side effect, qmake has become more sensitive to
over-quoted file names in project files.
(*) ok, maybe not. close enough.
Task-number: fatal: out of memory
Change-Id: I8c51cfffb59ccd156b46bd5c56754c480667443a
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
fixing and escaping is now a tri-state option:
- none (this removes the need to unescape the result right afterwards in
some cases)
- local shell (for system())
- target shell (for Makefile)
Change-Id: I5b78d9b70630fe4484dc964eff5f62793da35764
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Use of FileFixifyAbsolute with non-default in_dir and out_dir
is not defined (and produces bogus results).
Using FileFixifyRelative when handling QMAKE_BUNDLE_DATA as a relative
path is fine.
Change-Id: I49902dc9f5b8029d092a4419c0cff5483e419c30
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Change-Id: I503e4e4c50a147cc1d81019228593f502132f28a
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Topi Reiniö <topi.reinio@digia.com>
Commit 8ee2e497 introduced a regression for CONFIG-=flat vcxproj files.
Files with custom build steps (e.g. foo.h with Q_OBJECT) were written
into top-level filters ("Header Files" instead of
"Header Files\my\sub\dir").
The assumption that the parameter filtername always equals
VCFilter::name was wrong.
Change-Id: Id5178550310d06b73e42f18597a27012ddd89bb7
Task-number: QTBUG-44413
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
We already have saved this information in the loop above.
Change-Id: Ic0e0a66b01e9ee001932d7d798d848abc746ef95
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Commit 4f21eb03 broke the generation of non-flat vcxprojs.
XTreeNode passes filter names to outputFileConfigs that have
the source subdirectory suffixed (e.g. "Generated Files\subdir").
Function filterByName must be called with the substring before the
backslash.
Change-Id: Ic259e6316ab0727828773b13e0d8ad0cc7f0808f
Task-number: QTBUG-41746
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
This reverts commit e5a8134765.
A much simpler fix for QTBUG-41746 is about to follow.
Change-Id: I1eea1785e00b4d7d470108d8dc3272a2af438ef4
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
The VS integration does not exist anymore and has been replaced by
the Qt VS Add-in years ago.
Change-Id: I0202b0b2909318ed8869a738ec87b507c4c746af
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Qt copyrights are now in The Qt Company, so we could update the source
code headers accordingly. In the same go we should also fix the links to
point to qt.io.
Outdated header.LGPL removed (use header.LGPL21 instead)
Old header.LGPL3 renamed to header.LGPL3-COMM to match actual licensing
combination. New header.LGPL-COMM taken in the use file which were
using old header.LGPL3 (src/plugins/platforms/android/extract.cpp)
Added new header.LGPL3 containing Commercial + LGPLv3 + GPLv2 license
combination
Change-Id: I6f49b819a8a20cc4f88b794a8f6726d975e8ffbe
Reviewed-by: Matti Paaso <matti.paaso@theqtcompany.com>
qmake seems to be adding current date/time to the .la files for no
reason, so let's stop do that.
This way, two invocations of qmake actually gives bit for bit similar
output of .la files.
Change-Id: I93c7c4075cc1e05214849eec8629f41ce01e5914
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
these reflect the on-target paths (unlike /raw, which are host paths, just
without the -sysroot). this is necessary for anything deployment-related,
starting with RPATH.
Change-Id: I13d598995d0e4d6cb0dc1fc7938b8631cf3e3a95
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
it makes no sense to test for OBJECTS_DIR emptiness when we are going to
use DESTDIR instead.
Change-Id: I0f7115fc8a9fe2a996417d5f50bd0165773129fa
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
that makes no sense at all. and OBJECTS_DIR is not resolved, either.
Change-Id: Ie76b9de6bb11ae42945255f2e168943066d2f60d
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
... as newer versions of nmake (and jom, for compatibility) have botched
circumflex processing (they simply don't do it when shortcutting the shell
evaluation).
as a side effect, the output is also more readable if the string contains
quotes.
Change-Id: I0506b59ceecb70da258c482f9973156b2803066d
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
double quotes cause mingw32-make to switch from direct execution to going
through the shell, so avoid them.
Change-Id: I05b71a050e425a1b327f747fab01755ff528ba0b
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
MakefileGenerator::init() fixifies the variable, so there is no point in
the windows generator adjusting path separators as well.
Change-Id: I9331631125ee16ce4d64e38153f3c67f2f78b16b
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
this is admittedly a rather improbable use case, so unlikely to have any
real world effect.
Change-Id: If98f0de90043525f0555f8ddf98f8b4352e5a0a7
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
it always returned true nowadays.
an obvious followup effect is that the return value of parsedProBlock()
doesn't need to be null-checked any more as well.
Change-Id: I782785cab9b721a78a342a010921a73e642ebe7f
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
... because it also fixes the path, and we'll need the "plain" name later.
Change-Id: I86da8f53e44a68005c413c4b78b1b1682746e22e
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
we (supposedly) fully support QMAKE_EXTRA_COMPILERS, so there is no need
for any special casing here.
Change-Id: I4e9d389320a3e5ad0acbf73823ff1e6f7b9c370f
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
it's debugging code which is used only once (if even uncommented).
Change-Id: Ie57347017dd24f4acecff2a7132f82898dea3122
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
more efficient use of string functions.
Change-Id: I3d95d6379eaab025b18449b706f93631a2132aad
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
the path is processed, and afterwards fixForOutput()ed again. the first
call makes no sense (even if it registered some variables that are gone
in the second call, that would be pointless exactly because they are gone).
Change-Id: I251f1e4858bec36f3a7a9427c2ba78031b35a2d3
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
commands come already fully expanded and quoted from the project.
Change-Id: I239d5c305f5f65d32c832bc09bfd1c322051e149
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
no other generator does it. if it actually buys anything, it should be
re-instantiated differently.
Change-Id: I8431702ac7d558d65fd28a7f9e36bb49db2eb253
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
the logic was such that if the bundle name already had the specified
extension which was not the default extension, the default extension
would be appended, too. i don't think that was the intention ...
now we simply put the default into QMAKE_BUNDLE_EXTENSION if its empty -
the variable is not used anywhere else where it would be expected to
preserve its emptiness, so this is safe.
Change-Id: Ied34d10f9fe60756bddc0037dcb2f1d3bbfd3e12
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
there is no reference to it anywhere.
Change-Id: I72403be6c8294d9b2e64075ebd428eba24d97097
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
this isn't some fuzzy logic, the call sequence is well determined.
Change-Id: I1696b49ed687da83d2969efcfe23ac6565630020
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
it never left the rudimentary stage. should it ever be re-added, it
needs to be done basically from scratch anyway.
Change-Id: I76858c8a2c90235f228f7a6e5a178a10a2669d37
Reviewed-by: Rolland Dudemaine <rolland@ghs.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Use x86 for a 32 bit build of qmake and x86_64 for 64 bit.
This is needed for shells that do not set VCINSTALLDIR.
Change-Id: I0843c1a590161669530b99f45ab59d523e6596c3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@theqtcompany.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
When there are source files with the same file name in different
directories of the project, then nmake's inference rules might pick up
the wrong source file. Note that this even happens when only one of those
files is in SOURCES. The existence of conflicting file names is enough
to cause hard-to-find build failures.
The usual work-around for this situation is CONFIG+=no_batch.
This is now done automatically when a conflict situation is detected and
a warning message is printed.
Task-number: QTBUG-13496
Change-Id: Icd81027407d3d489dbc50231e5ed8bcb91f8d2bc
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
When using the cross-compiler toolchain for 32 bit on a 64 bit machine,
qmake generated a 64 bit VS project.
This was because qmake didn't know about the amd64_x86 cross-compiler,
and qmake did not use the first MSVC bin directory it found in PATH.
Task-number: QTBUG-43457
Change-Id: I50c6f7bb9afe44a58321c670d680dbcc7cd07223
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
In ancient times, the existence of QMAKE_RUN_CXX_IMP determined the
use of implicit rules. The code path for implicit rules was turned
off in 2006 (0287fe3c), which probably was a refactoring artifact.
Later, implicit rules were enabled again using a different approach.
These days, the non-existence of QMAKE_RUN_CXX determines the use of
implicit rules.
We remove the dead code path now and rely on the latter condition.
One part of the dead code is a feature that turns off inference rules if
the OBJECTS_DIR is set or source file names do not match expectations.
If somebody ever missed this, it has been reimplemented otherwise.
Or not.
Change-Id: If3ce9904d9c1df6e4048c58c2452854cce7fa206
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Instead of trying to load in ltcg.prf and cache the value.
Change-Id: If485ff68fc6ff9d9cf7009cd72d5e702d0199c7f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
This just reindents and makes it easier to read what's going on.
Change-Id: Id0afcdfb8f468b4553bba8c5a572a1d0115b0886
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
instead of having each generator do its own magic (little surprisingly,
with different outcomes), add "stuff" to the search path in one place
used by all generators. this has several consequences:
- (unless disabled via CONFIG+=no_include_pwd) $$PWD is now consistently
prepended by all generators. most notably, this was entirely missing
from the MSVC generators (both nmake and VS) - despite them needing it
most. this also affects Xcode projects.
- $$OUT_PWD (if different from $$PWD) is now added right after $$PWD,
not at the end. this precedence clarification only makes sense, given
that qmake tries to make shadow builds as transparent as possible.
- the qmakespec's dir is now consistently appended. the UNIX and PBX
generators prepended it, while the rest already appended. few files
actually include qplatformdefs.h, so having it late in the search path
seems reasonable.
- the effect of CONFIG+=depend_includepath is now fully consistent with
the actual include path.
Change-Id: I5f7570183351ade29342ea74fef706a0738842bf
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
neither qmake_getpwd()'s return value nor a fileFixify()'d version of it
can be empty.
Change-Id: Ic3b7d20becc57209b9dbe71ad9dc8e7547d435b1
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
This is not used or referenced anywhere
Change-Id: I02e1aa76631627f64e5d1f9b36a13cdb5677e93f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
These mkspecs are not supported and no longer compile. Related support in
qmake has also been removed.
Change-Id: I7706dcfa5471e55e2ae3d580d65e9371e2c652d5
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Oliver Wolff <oliver.wolff@theqtcompany.com>
Tested with the Preview release of November 2014.
Differences to the 2013 detection and support:
- Option -Zc:strictStrings is present in both debug and release mode
and is passed to qmake's own build
- New warnings 4456, 4457 and 4458 (shadowing) are disabled
- Compiler supports -arch:AVX2
Change-Id: I9572ff4d4aded4004c1fa5d6f13ffee5462043d6
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
On Windows, the application manifest file can be linked with the
executable, to specify for example the requested privileges of the
application. On MSVC nmake, the manifest is already handled in
NmakeMakefileGenerator::writeBuildRulesPart, but it is not compatible
with MinGW. On MinGW, this manifest file has to be referenced in the
Rc File. This patch simply handles the existing variable
"QMAKE_MANIFEST" which defines the appropriate line RT_MANIFEST in
the RC file.
Task-number: QTBUG-42454
Change-Id: I921606e002ffe3801c537f30ac2365891f97d5c9
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Running 'make distclean' should remove all files generated by qmake,
including .qmake.stash/super. These files are considered owned by
a particular project (and hence a candidate for distclean), if it
lives in the same directory as the output dir of the project.
Task-number: QTBUG-42678
Change-Id: I224e9bac039eeacb6561e18acc7f8e867da5dab8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@theqtcompany.com>
We don't need to modify ResourceOutputFileName. The default is fine,
and $(InputName) evaluates to nothing in VS >= 2010.
Change-Id: Ib203d36261e1b5449c5a139b1950bd0d66197297
Task-number: QTBUG-43026
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
This fixes a regression introduced by
04d3a89e20 as it left out the custom build
step for the source code file generated for PCH.
Task-number: QTBUG-42596
Change-Id: I53d5a36b842dcffbde2657910e6a96dca0e99c7b
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
With multi-architecture builds and ONLY_ACTIVE_ARCH set to NO, Xcode will
build the final target for multiple architectures at the same time, but
CURRENT_ARCH will only match one of them, so we failed to set up the
right dependencies for our pre-link step, causing the step to happen
after linking in some cases.
We now build an exhaustive dependency list based on QMAKE_XCODE_ARCHS,
so that ONLY_ACTIVE_ARCH=NO can be used for release builds targeted at
the App Store.
Change-Id: I6702f020a6970807adc624779f6dde09be62beb9
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Refactor the current app CFBundleIdentifier support:
handle frameworks as well. Add @BUNDLEIDENTIFIER@
placeholder to the OS X info.plist.lib templates.
This means the Qt frameworks will now get a valid
CFBundleIdentifier entry the same way as app bundles:
by extracting the identifier prefix from Xcode settings
and appending framework name.
Task-number: QTBUG-32896
Change-Id: Ica8f28332a88e37a823c46fca7a2c373157af020
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Since commmit 0127962e47 the
PBXResourcesBuildPhase is used only for ICONS, because the old
behavior of using it when target path is not given differed from
the documentation and behavior of the makefile generator by using
Contents/Resources as target directory when targeting osx.
The PBXResouceBuildPhase optimizes png, compiles xib or asset catalogs
and copies the rest.
The advantage is that it makes it easy to add resources to the bundle,
the only problem is that the target directory is always the resource
directory.
The copy operation currently used does not compile resources, which
makes adding .xib (for the Launch File required to support iphone 6)
and asset catalogs difficult.
So we restore the old 5.3 behavior for ios, and use the build
resources phase when possible on osx (target Contents/Resources).
On osx this still implies a difference between the makefile
generator and the xcode generator: only the latter compiles resources.
Change-Id: Id1853693e88fc46562b044efdea2bf5f9da2c98c
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
The settings of the librarian were never written.
Creation of static libraries only worked by accident.
Adapted the code from the vcproj code path.
Task-number: QTBUG-30712
Change-Id: I69917f44305eb458647392d222db477fe5a5b7c8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Second attempt. MSVCPROJ_TARGET contains the resolved target name,
including version number and target extension.
We're splitting this value into PrimaryOutput and
PrimaryOutputExtension.
PrimaryOutputExtension is only written if it contains a non-default
value.
Task-number: QTBUG-26782
Change-Id: I4b828dc5dd47322f653585aee1a5767f0cf8bd48
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Commit af760349 in Qt4 broke the possibility of having a
PRECOMPILED_SOURCE in a different directory than the
PRECOMPILED_HEADER.
Do not write the PrecompiledHeaderThrough value for the
PRECOMPILED_SOURCE, but use the project default.
The msbuild code path needed adjustments to write the
UsePrecompiledHeader value, even if PrecompiledHeaderThrough is
empty.
Task-number: QTBUG-41917
Change-Id: I74e621f6618cf056e3967c99a2215f76c346b9ee
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Commit 4f21eb03 utterly broke the project file generation for
VS 2008. The introduced filterByName convenience methods looks for
filter names like "Generated Files", but the code path for
VS <= 2008 used filter names like "GeneratedFiles".
The generated projects were valid but empty.
This commit ensures that both VS generators use the same filter
names.
Task-number: QTBUG-41821
Change-Id: I828fa911bae8d835b073a4c2260316127cc72cda
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Commit 4f21eb03 broke the generation of non-flat vcxprojs.
XTreeNode passes filter names to outputFileConfigs that have
the source subdirectory suffixed (e.g. "Generated Files\subdir").
That's why the original code tested the filter names with
QString::startsWith.
I've changed the signature of outputFileConfigs to take a filterId
parameter which contains the unaltered filter name (e.g.
"Generated Files") that will determine the correct filter.
Task-number: QTBUG-41746
Change-Id: If33428526a098f433cd6ceb8ab6608bd9f94ef17
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
otherwise we'll produce lines with tens of thousands columns when
dealing with QMAKE_BUNDLE_DATA.
Change-Id: Ia2a70f25e4ee1d3fe976027a7c46d234809a3f70
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
According to Apple's documentation [1], framework bundles don't
have a 'Contents' folder. Instead, each version folder gets a
'Resources' folder which contains the Info.plist file, and which
is also symlinked at the top-level framework folder.
[1]: https://developer.apple.com/library/mac/documentation/macosx/conceptual/BPFrameworks/Concepts/FrameworkAnatomy.html
Task-number: QTBUG-32895
Change-Id: I5e55cc097b179012add0ceb7c567dace8e282895
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
the target path may have multiple components, e.g. Headers/private.
obviously, only the first component must be linked in such cases.
Task-number: QTBUG-32895
Change-Id: If632b3b72c170a9fde36e62c165e06ded53deda3
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
multiple QMAKE_BUNDLE_DATA entries can install into the same directory,
but it obviously makes no sense to symlink that repeatedly.
Change-Id: If65f7acdf4e158e33511917a027a380e642e2f28
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
instead of duplicating the plist/icon/bundled_files logic just to obtain
the dependencies, create them as a side effect of the actual target
creation.
Change-Id: I6a0fe26c82c490b1040a7a06d5d0e7a4567ae1af
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
Add @FULL_VERSION@ -> Qt version substitution to
unixmake2.
This makes the Qt-generated Info.plist files compliant
with the bundle signing/validation process.
Task-number: QTBUG-32896
Change-Id: I1818f028c2f740d699629dd78cc0fe6ffaf94a1c
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
We do so by setting a 'no_plist' config property. Can be overridden
with 'force_debug_plist'.
The debug version of Info.plist would overwrite the release version,
and it also happens to contain invalid data. In particular,
CFBundleExecutable would contain the _debug suffixed libname, which
it shouldn't. See the entry about CFBundleExecutable on
https://developer.apple.com/library/ios/documentation/general/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
Task-number: QTBUG-32894
Change-Id: Ideb018e4768a7c4e276e1b07d77937451f6db6a2
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
this allows us to extend its dependencies, which we will make use of later.
Change-Id: I8809bdffb435455338e88e97049b10beeab0468a
Reviewed-by: Morten Johan Sørvig <morten.sorvig@digia.com>
There's a comment in VCXProjectWriter::outputFileConfigs that
states: "We need to check if the file has any custom build step.
If there is one then it has to be included with 'CustomBuild
Include'".
This patch adds the code to the comment...
Task-number: QTBUG-30373
Change-Id: Ibfef3c80630e08c743bfadce299a8b6a0c58411f
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Move common code into a function
and exit early from simple search loop.
Change-Id: I88d1227653e28badc213fbe4ebe1e2a19f6e5793
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
The static CRT, libcpmt.lib, is not shipped with Visual Studio Express
for Windows (unlike VS Express for Windows Desktop or Professional
versions), causing configure and qmake to fail linking if this is the
only VS installed. By removing -MT (which is on by default) and adding
$(CFLAGS_CRT) to the compiler line, -MD can be added to the compiler
flags via the environment, providing a workaround for the issue.
Change-Id: I5613346d60a3a1889c121f04d53b09fbb147fc02
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
Those initializations are done by the constructors already.
Change-Id: Ife58675e2ba4854ef66c813158cb4ed660f530d1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
The fileAdded variable is used to save state between iterations.
There's no need for two variables.
Change-Id: I8144cf7c7b394255459295b82a7ca808bc3951da
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
We don't need the filtername parameter.
Change-Id: I653db4a200c83d095520b47e1451dfe59b956d92
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Files in "Deployment Files" should be added as static content, which
happens to be the fallback in the case where checkDeploymentFiles is
false. Also, the calling code expects that an XML tag is added in all
cases. This did not happen for the "Resource Files" filter when
checkDeploymentFiles was false, which led to unmatched closing tags.
This fixes the issue that files added to RESOURCES in different build
variants produced invalid vcxproj files.
Task-number: QTBUG-30373
Change-Id: Ibb27e67641ba63150938cf826ea1881d182fb841
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Put common code into a function.
Subsequent patches will become easier.
Change-Id: I0d549886585d90e4701a2430503bc0d2d716e341
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Make use of the mythical C++ feature "function" to soothe the brain ache
of anyone who looks into this part of the code.
Change-Id: I740e29f1777d91d3b34a61fa62a5c23c222334b9
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
If creating an asset catalog from Xcode, Xcode will
add it to the "Copy Bundle Reources" phase, if it exists.
Since we don't always generate that phase, Xcode will
silently fail with the result that the asset catalog will
not take effect (no icon, launch images etc).
This patch will ensure that we always create the phase
(like native Xcode project does), which will fix the
problem.
Change-Id: Ief949d63543977f1021db992e0c41714d898e68b
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
When the user adds a compiler option that qmake doesn't understand, a
warning message is printed. One can suppress these warnings now by
adding CONFIG+=suppress_vcproj_warnings to the project file.
Task-number: QTBUG-37520
Change-Id: Ieb7ad2c900329e76636047dff85824ea0456f608
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Gestalt is deprecated so we can't use it long term. At the same time,
the new API is cross platform, so we'll no longer have to parse strings
in -[UIDevice systemVersion] either.
Change-Id: Ic81797174c1a3d50b47b9b209205a6a506cc75ef
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
-qtdoc repo uses "OS X" instead of "Mac OS X" and this caused
broken links.
-more comprehensive change still needs to be done but the new
name is used in the page to maintain consistency. At least within
the page or class.
Change-Id: I8a5650046fc0413cbb18359b743ecd30fd62e417
Task-number: QTBUG-40759
Reviewed-by: Martin Smith <martin.smith@digia.com>
Reviewed-by: Jerome Pasion <jerome.pasion@digia.com>
If defined, the value of this variable is prepended to the built shared
library's SONAME identifier.
For more information, see: qmake/doc/src/qmake-manual.qdoc#qmake-soname-prefix
Task-number: QTBUG-31814
Change-Id: I4bceaf0c93162e4fad6bb424af1b82e74d38acdc
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Defaults qmake behavior is to make all project RPATHDIR paths absolute prior
passing them to linker. We need to make an exception for paths starting with @
such as @executable_path (Apple platforms) or $ such as $ORIGIN (Linux).
Task-number: QTBUG-31814
Change-Id: Ie9887c0046c5030c4128dda945b491a5d389ba34
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Jake Petroules <jake.petroules@petroules.com>
Xcode uses project and group relative file paths, but to keep things
simple for ourselves we use absolute paths everywhere. We now make an
effort to actually make these paths absolute before telling Xcode they
are.
We also make the visual representation of the files inside Xcode be
just the filename, not the full path, like Xcode itself does. This
is among other things a prerequisite for Xcode to stop complaining
about missing launch images for retina 4-inch screens.
Change-Id: I5ff6bf07f61888e3c9fe2f64cbc2beb896b8442d
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
We build "Supporting Files" out of QMAKE_INTERNAL_INCLUDED_FILES, which
is really not supposed to be exposed to the user like that, but since
the variable will hold user-included pri files eg., the Xcode generator
piggy-backs on this variable to list the files.
To make the project view in Xcode a bit cleaner we explicitly exclude
any file living inside the Qt directory, meaning we won't show all the
pri and prf files from Qt's mkspecs directory anymore.
Change-Id: I828700aceac5fdf3ea2b27d9ba3885543c2ad137
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
all else being equal, items with a higher numerical priority will appear
first in the result.
Change-Id: I4ee37ff404a53c4152a1e4fc2fc3c23ef525234d
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
the c'tor always determines the group itself anyway.
Change-Id: Ia8f1e747aaefdab164beae34851aa99cec9b790a
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@digia.com>
At the very least, include the files named in the sources, like
HEADERS. It was quite surprising to send a tarball that included the
.pro file and the .cpp sources, but none of the headers.
On the other hand, the .qmake.cache file need need not be sent either,
despite being include()d in qmake's processing.
Change-Id: I8f48ca3e8040f954f321f4643b01c0f36aafe2d7
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
With MSVC it takes minutes to compile pbuilder_pbx.cpp.
So let's remove this generator that's never used.
Change-Id: I13038d551283d96dfb0baf0b8a8a68c6538193c8
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Better late than never.
Change-Id: If3bbeb4dfe3a8d49ceb02d9c2d0f2eff71595105
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
This file is already listed in QTOBJS.
Change-Id: I5c77620dc5e441435bd31a87a08178e0c82e9c05
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
This allows to use the "test mode" of QStandardPaths in unittests,
to stay away from the user's real settings.
Change-Id: I1cb1f63a4bff35dfe236924c4dcd7cf761ee50c1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Depending on *.o in the Xcode output dir did not actually result in a
proper dependency. In Xcode5 this didn't matter much, as the effect was
that the build phase was run every time, but in Xcode6 the phase was
skipped. We now depend on the object directory itself, which will get
its modification time updated to match any rebuilt object files.
Change-Id: I8fa6f06c9008c4ce8f7fde7706057ce101bb5727
Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
url is set in qtbase/doc/global which is inherited by the
Qt 5 module qdocconf files.
Change-Id: Ieffa174f598f4a3b8ce8be9bfae7ca9b6981f12b
Reviewed-by: Martin Smith <martin.smith@digia.com>
Conflicts:
mkspecs/qnx-x86-qcc/qplatformdefs.h
src/corelib/global/qglobal.h
src/network/socket/qnativesocketengine_winrt.cpp
src/plugins/platforms/android/androidjniaccessibility.cpp
src/plugins/platforms/windows/qwindowswindow.cpp
Manually adjusted:
mkspecs/qnx-armle-v7-qcc/qplatformdefs.h
to include 9ce697f2d5
Thanks goes to Sergio for the qnx mkspecs adjustments.
Change-Id: I53b1fd6bc5bc884e5ee2c2b84975f58171a1cb8e