| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Expressions like
!if defined(foo) && defined(bar)
checked for the existence of the macro "foo) && defined(bar" due to an
overly greedy regular expression in the lexer of the preprocessor.
NMake macro names cannot contain parentheses, so we can change the regex
to not eat the closing parenthesis.
The lexer was regenerated with flex 2.6.4.
Fixes: QTCREATORBUG-24134
Change-Id: I0e5f4f5b5603cf1d2a53ad6ff9224e18e5649a7d
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
|
|
|
|
|
| |
Change-Id: I68904627c2fe12fdf08ef42c6fbe8c3eb3332646
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When run on a codebase with a large dependency tree
the cycle checking can take an enormous amount of time.
In my tests, attempting to make JOM work with ghostscript's
makefiles, it can basically take forever (I gave up after
10 minutes).
There is a simple fix for this, implemented here. Once we have
cycle checked downwards from a given node, we know that whenever
we reach that node again, we need not bother to recheck it as
the results will be no different.
Hence whenever we successfully return from the recursive call,
set a flag meaning "NoCyclesRootedAtThisNode". Whenever we
step into a node, if that flag is set, there is no need to
recurse at all.
This is sufficient to make the cycle checking instant for the
Ghostscript makefiles.
This does mean that we are left with a 'dirty' tree, in that
the NoCyclesRootedAtThisNode flags are left set. I don't think
this is an issue, (does Parser:apply ever get called more than
once? And if it does, might the tree have changed between calls?)
but just in case, I have introduced another pass where we run
through the tree clearing the nodes.
Task-number: QTCREATORBUG-29412
Change-Id: I957cfb15df04b62e1a01476e3fd76b1e5b544a26
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There is no point in repeatedly traversing downwards from a
node once we've constructed the rules for it.
If a node has rules, just exit.
This vastly reduces the time spent on complicated Makefiles like
Ghostscript.
Task-number: QTCREATORBUG-29412
Change-Id: I1607745e46609800fc8ffff1ccafce1979af42eb
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
| |
Change-Id: I5abc561276d95d6ab433be9d5cd741e3bdb95114
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
| |
Change-Id: I3608d3fe46d4e72953edc6198bb7b8d2e977f1c7
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
| |
The expandWildcards function assumed that every passed path is relative
and unconditionally prepended dirPath.
Fixes: QTCREATORBUG-27645
Change-Id: I9759e3885cc3d4890a06093b6f80974fdcefc086
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
| |
Change-Id: I59c62ddc00d71e5a4574fbf9186ea4145c46761b
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
| |
This variable should use native separators.
Fixes: QTCREATORBUG-23559
Change-Id: If17a38b381e95a86fb86a6bda1fde8612bec83ef
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The jom executable was missing version, copyright and product
information. Add a Windows resource that contains this information.
The version number is now centrally placed in the text file
src/app/version.txt and is read by the QMake and CMake project files
to generate a Windows rc file.
Fixes: QTCREATORBUG-23290
Change-Id: I7479dc6c489162b7fc932088c242b3fd69f43396
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
|
|
|
|
|
|
|
|
|
| |
Prepend \\?\ to paths passed to FastFileInfo to enable paths that
have more than MAX_PATH characters.
Fixes: QTCREATORBUG-22848
Change-Id: I6c7caae226cc1a05e99a97564cf4d4187a074b45
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
| |
This yields much nicer error messages and is easier to read.
Change-Id: If30baf6a24b52de414d338e7a8368982c3840d8d
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
| |
Change-Id: Ibc906e993046f57447caab8f006f8eb7e669a25d
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
| |
The binary packages don't support XP since ages.
Change-Id: I07df1263cac9672795f925374dba2d974a055419
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
| |
Change-Id: Ic77437a6905de59077f8733d47e8a046803e7865
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
| |
Change-Id: I5dbedddc4f7e0a16539c7bce45d6e5712ce02d7c
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Setting a variable FooBar=2 on the command line explicitly defines the
macro FooBar, but also implicitly defines the macro FOOBAR.
Explicitly set macros are not overridden. The first definition wins.
Implicitly set macros are overridden. The last definition wins.
Fixes: QTCREATORBUG-22176
Change-Id: I5324ba20295a1fade5e98302d698a826400fa80c
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
| |
Change-Id: I37d95107bcb346f9be5d7a7d18ebda480a14c3fb
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
| |
NMake allows Makefiles without targets and exits with code 0.
Change-Id: If6ab21f7bd4ee640b7d1b7499fe9a3e34abef4b0
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
| |
Change-Id: I7b39eba605137e6c902586ed2739d910991daed6
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
| |
Everything after the number was ignored. For example, the command line
option /lj1us would be treated as /lj1.
Change-Id: Id55578a47ed715ad124d9941bf0e3413d1ff23af
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
|
|
|
|
|
| |
Change-Id: Ifa8f599f00cd6535eaf4fd4e21f5977b68519ae5
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
| |
Change-Id: I121cb1dd1b0f12a1bade5c2b21a4ad8af4b38eaa
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
| |
The double backslash at EOL shall not be altered.
Task-number: QTCREATORBUG-20550
Change-Id: Ib4cc73da7a6634233d222945f01dd7974d112971
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Line continuations in preprocessor directives are now handled correctly
such that assignments like the following are possible:
VAR=foo\
!IF 1
bar\
!EL\
SE
baz\
!ENDIF
zap
which evaluates to
VAR=foo bar zap
Task-number: QTCREATORBUG-8621
Task-number: QTCREATORBUG-18001
Change-Id: I3f86c6e3b13cbc04451fcfb267c5c43946b8e85c
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
| |
Do not use one monolithic file for the whole of jom.
Also, modernize the project files.
Change-Id: Iea764aa40bfa6f0064d864521a0726ca107df486
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
|
|
|
|
|
|
| |
Change-Id: Ifa4eeb08de5e372112fc3200043cd23a6f299b2c
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
|
|
|
|
|
|
| |
Change-Id: I273c764fb25bb5b54d72511e2f84a7b013898597
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
| |
Sync defines from jom[lib].pro.
Remove the wchar_t hack.
Change-Id: I48693d244bb8f0a4b80208f122df77bf33f3b5b8
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
| |
This prevents Qt from loading qt.conf from Qt's prefix path.
Change-Id: Id8357e4e892bddba581eec8e6ea301ecc2ff6702
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
|
|
|
|
|
| |
Change-Id: Ie299f4b827cba12734b9fa3947d655bcf337daf7
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
This option only worked for top-level makefiles and is therefore not very
useful for real-world builds. It would be quite some effort to make it
work for recursive builds.
Drop support for this option. A proper replacement is the /U option to
display the content of inline files.
Change-Id: Ibf24bd1e89ad10adb82d660ece25b1baae322b55
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
| |
Change-Id: I1db422e0d4915573d9d841adb7af8556c4a1dda6
Reviewed-by: Konstantin Podsvirov <konstantin@podsvirov.pro>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
|
|
|
|
|
|
| |
Change-Id: Iee2d7fcde2ef0f6ec773c470b41aa666040cfaee
Reviewed-by: Konstantin Podsvirov <konstantin@podsvirov.pro>
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
| |
Changes:
- fix src/jomlib/jobserver.cpp for 64bit build;
- rename files src/jomlib/processXXX -> src/jomlib/jomprocessXXX;
- fix CMake and QMake projects to build with MinGW.
Task-number: QTCREATORBUG-17709
Change-Id: Ib88659f991cec3b50d29e0035aba6fe383c5e21a
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
| |
Change-Id: I94183a0024beba2a3b1f4b6d1fc1a22d3a06e10a
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
| |
Change-Id: I6d4e452bad42ec2d0a66c0e5875f2645727d6b5e
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Do not walk the process tree up to find if some parent is called
"jom.exe" to find out whether we're a sub-jom, because this fails if a
non-jom which is called "jom.exe" calls the real "jom.exe". This is the
case for chocolatey shims. Instead, simply check for the existence of
the _JOMSRVKEY_ variable which is set by the top-level jom.
Task-number: QTCREATORBUG-15494
Change-Id: I90db7cf4b34cb6c3a03764cb5137f1f6e4af223d
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
With the /k option given, jom tried to build all targets, even
targets that depended on failed targets. Thus it behaved the same as
/i (ignore exit codes), which is wrong.
Task-number: QTCREATORBUG-17131
Change-Id: I1dcbabbf423042de44222a600f7a1b8be1203f45
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
|
|
| |
When aborting the make process, because a target failed or such, it
could happen that the job client was still acquiring a token from the
job server. The user saw the disturbing message "JobClient destroyed
while still acquiring". Wait in this case until the acquisition is done
and release the job client afterwards.
Task-number: QTCREATORBUG-17182
Change-Id: I4a0c256d365a23887560d511b0f157a9f36a0df2
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
| |
Both occurrences were used to remove one element from a container.
Replace with removeOne to simplify the code.
Change-Id: I8010acd3b461a04a7d5c72ed2ba9b1aee45c883d
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
|
|
|
|
| |
When specifying a Makefile with an absolute path with /F error messages
would contain a bogus path to the Makefile (current dir + makefile
path). Fix this by using QDir::absoluteFilePath.
Change-Id: Ib843ec2334069bce0350bfd23766b7a7a027a2be
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
|
|
|
|
|
| |
Change-Id: I5e9fed4e0a35ccc2b1b0a56ae27c309711b38ae5
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
| |
Change-Id: I123657499b097473eef84cd493d16b7e8814d16c
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
In ibjom.bat and xgejom.bat ERRORLEVEL wasn't properly propagated to the
calling script because of the setlocal/endlocal pair that's used within.
Use the absurd enabledelayedexpansion trick that seems to be the canonical fix.
Task-number: QTCREATORBUG-16619
Change-Id: Icae4b977309e8a55806fbd3511661366fcefe432
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
| |
Change-Id: Ifc5501cd8d91d978a1a378b3a73116357f1e7066
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
| |
Change-Id: Ic50996b4299ddae49a853466a679689943bc10ca
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
| |
This is a small performance improvement.
Change-Id: I3283f1ec40227b11952557fd2d0cfd32de6824cc
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
|
|
|
|
|
| |
Fix warning C4477: 'fprintf': format string '%u' requires an argument
of type 'unsigned int', but variadic argument 1 has type 'qint64'
QCoreApplication::applicationPid() returns qint64.
Change-Id: I46c21ae16e3b53b2e9e58ba1cc2646245f9bc78f
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|
|
|
|
|
| |
Change-Id: I1d9816d0092c0f6875120fe34e23a453e8b96aa9
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
|