- 22 Jun, 2015 2 commits
-
-
Brad King authored
-
Brad King authored
The fix in commit v3.2.3~3^2 (Fix assertion failure on unmatched foreach in function, 2015-05-18) broke handling of unmatched non-loop blocks because it assumed all function blockers removed during error unwinding were for loops, essentially switching the set of mishandled cases. The purpose of the loop block push/pop operations is to define a scope matching the lifetime of the loop function blockers. Since our function blockers already have the proper lifetime, simply move the push/pop operations to their constructor/destructor. Extend the RunCMake.Syntax test with a case covering this.
-
- 01 Jun, 2015 3 commits
- 27 May, 2015 2 commits
-
-
Brad King authored
-
The regex update in commit v3.1.2~4^2 (ctest_build: Update GNU make error message matching, 2015-01-28) broke matching of the messages it updated. Remove the escape character before the square brackets added by that commit.
-
- 18 May, 2015 2 commits
-
-
Brad King authored
-
Brad King authored
The lexical scope counting added by commit v3.2.0-rc1~332^2~1 (Track nested loop levels in CMake language with a stack of counters, 2014-11-18) forgot to account for scopes popped by error messages about unclosed scopes. Teach the error handler to pop the lexical scope it reports as unclosed. Re-order the lexical scope RAII object to be inside the variable scope RAII object scope so that the lexical scope is fully closed before we check assertions about variable scopes. Extend the RunCMake.Syntax test with a case covering this.
-
- 04 May, 2015 2 commits
-
-
Brad King authored
-
Brad King authored
The part of the MS C Runtime library that applications need to distribute has been renamed from "msvcr*.dll" to "vcruntime*.dll" starting with VS 2015. See the Visual C++ Team Blog: Introducing the Universal CRT http://blogs.msdn.com/b/vcblog/archive/2015/03/03/introducing-the-universal-crt.aspx
-
- 01 May, 2015 2 commits
-
-
Brad King authored
-
Brad King authored
When given the command line tool a\ b c mingw32-make incorrectly passes "a b" and "c" to the tool. When given the command line tool a\ b "c" mingw32-make correctly passes "a\", "b", and "c" to the tool. Since commit v3.1.0-rc1~861^2 (MSVC: Add properties to configure compiler PDB files, 2014-02-24) we pass the compiler pdb option to MS-style compiler tools as "/Fd<dir>\" but mingw32-make may consume the backslash as escaping a following space as described above. Workaround this problem by changing the backslash to a forward slash as had been used prior to the above commit.
-
- 13 Apr, 2015 1 commit
-
-
Brad King authored
-
- 10 Apr, 2015 3 commits
-
-
Brad King authored
-
Brad King authored
The use of "cmake -E touch_nocreate" added in commit v3.2.1~4^2 (Makefile: Fix multiple custom command outputs regression, 2015-03-06) caused builds to fail when one of the outputs is intentionally not created. This was fixed by our parent commit by making touch_nocreate succeed when the file is missing. Add a test case covering it. For the Watcom WMake generator, check for the SYMBOLIC source file property separately on each output. The mark is needed on outputs that are not really created to tell 'wmake' not to complain that it is missing. The mark is also needed on outputs that are created or 'wmake' will not consider them out of date when they exist. Inspired-by:
Ben Boeckel <ben.boeckel@kitware.com>
-
Brad King authored
-
- 09 Apr, 2015 5 commits
-
-
Brad King authored
-
Brad King authored
-
Brad King authored
The GNU 3.3 optimizer causes bad behavior in liblzma, so disable it.
-
Brad King authored
Somehow the XL compiler optimizations create incorrect behavior in liblzma and lead to crashes or truncated output during compression.
-
Port upstream LibArchive commit "compute string pointers after concatenation" (2014-09-25) and commit "Move variables to top of function for non-C99 compilers" (2014-11-15) to our CMake copy. Otherwise we may compute a pointer to memory that is about to be freed and then compute a bad size to give to CryptGenRandom. Inspired-by:
Tim Kientzle <kientzle@gmail.com>
-
- 01 Apr, 2015 2 commits
- 26 Mar, 2015 5 commits
-
-
Brad King authored
-
Brad King authored
Our Windows API header checks are conditioned on if(NOT UNIX) but libarchive checks HAVE_WINDOWS_H anyway so the result leaks into the cache and influenes the curl build. Set the check results to false explicitly for curl when not on Windows to tolerate this. Reported-by:
Vyacheslav Karpukhin <Vyacheslav.Karpukhin@jetbrains.com>
-
Brad King authored
-
Brad King authored
-
Brad King authored
Replace an old hack of the form 'if("${VAR}" MATCHES "^${VAR}$")' with the much simpler 'if(NOT DEFINED ${VAR})'. This was exposed by a CMP0054 warning.
-
- 25 Mar, 2015 1 commit
-
-
The file lock functionality added in commit v3.2.0-rc1~297^2~1 (file: Add LOCK subcommand to do file and directory locking, 2014-11-26) forgot to close the lock file descriptors. Eventually it was possible to run out of file descriptors and locks could not longer be acquired. Fix this by closing the file descriptor or handle when we are done with it. Also set the member back to the initial value from the constructor to leave everything in a consistent state (useful for debugging). Co-Author: Ruslan Baratov <ruslan_baratov@yahoo.com>
-
- 10 Mar, 2015 1 commit
-
-
Brad King authored
-
- 09 Mar, 2015 7 commits
-
-
Brad King authored
-
Brad King authored
Protect against variables named "CSHARP", "PERL", "PYTHON", or "UNKNOWN" when CMP0054 is not set to NEW. Reported-by:
Tuukka Pasanen <tuukka@iocaste.ilmi.fi>
-
Brad King authored
-
Brad King authored
Simply check for whether the local generator has a parent instead of depending on a string comparison of directory names.
-
Brad King authored
-
Brad King authored
Move the test cases from Tests/CMakeTests/ConfigureFileTest.cmake.in over to use the RunCMake.configure_file infrastructure. This does much more robust verification of CMake output for each test case, and would have caught the regression fixed in our parent commit.
-
Brad King authored
The unknown argument warning added by commit v3.2.0-rc1~452^2 (configure_file: Warn about unknown arguments, 2014-10-31) failed to account for options handled by the NewLineStyle member instead of directly in the main loop. Simply whitelist them for now.
-
- 06 Mar, 2015 2 commits
-
-
Brad King authored
-
Brad King authored
In commit v3.2.0-rc1~272^2~2 (Makefile: Fix rebuild with multiple custom command outputs, 2014-12-05) we changed the generated makefile pattern for multiple outputs from out1: depends... commands... out2: out1 to out1 out2: depends... commands... This was based on the incorrect assumption that make tools would treat this as a combined output rule and run the command(s) exactly once for them. It turns out that instead this new pattern is equivalent to out1: depends... commands... out2: depends... commands... so the commands may be run more than once. Some documents suggest using a "dedicated witness" stamp file: stamp: depends... rm -f stamp touch stamp.tmp commands... mv stamp.tmp stamp out1 out2: stamp However, if the commands fail the error message will refer to the stamp instead of any of the real outputs, which may be confusing to readers. Also, this approach seems to have the same behavior of the original approach that motiviated the above commit: multiple invocations are needed to bring consumers of the outputs up to date. Instead we can return to the original approach but add an explicit touch to each extra output rule: out1: depends... commands... out2: out1 touch -c out2 This causes make tools to recognize that all outputs have changed and therefore to execute any commands that consume them.
-