summaryrefslogtreecommitdiffstats
path: root/Source
Commit message (Collapse)AuthorAgeFilesLines
* CMake 3.2.2v3.2.2Brad King2015-04-131-1/+1
|
* Merge branch 'custom-command-multiple-outputs' into releaseBrad King2015-04-103-31/+47
|\
| * Makefile: Fix multiple custom command outputs with one missingBrad King2015-04-102-26/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * KWSys SystemTools: Teach Touch with !create to succeed on missing fileBrad King2015-04-101-5/+12
| |
* | file(LOCK): Close file descriptor/handle when releasing a lockBetsy McPhail2015-03-252-0/+7
|/ | | | | | | | | | | | 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>
* CMake 3.2.1v3.2.1Brad King2015-03-101-1/+1
|
* Merge branch 'ninja-check-root-robustly' into releaseBrad King2015-03-092-3/+2
|\
| * Ninja: Improve internal check for generating at the top-level (#15436)Brad King2015-03-092-3/+2
| | | | | | | | | | Simply check for whether the local generator has a parent instead of depending on a string comparison of directory names.
* | Merge branch 'configure_file-NEWLINE_STYLE-no-warn' into releaseBrad King2015-03-091-0/+7
|\ \
| * | configure_file: Do not warn about newline style argumentsBrad King2015-03-091-0/+7
| |/ | | | | | | | | | | | | 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.
* | Merge branch 'custom-command-multiple-outputs' into releaseBrad King2015-03-076-74/+88
|\ \
| * | Makefile: Fix multiple custom command outputs regression (#15116)Brad King2015-03-076-74/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | CMake 3.2.0v3.2.0Brad King2015-03-031-1/+1
|/ /
* | Merge branch 'backport-KWSys-SystemTools-CopyFileAlways-fix' into releaseBrad King2015-03-021-0/+4
|\ \
| * | KWSys SystemTools: Update CopyFileAlways stream library workaroundsPaul Martin2015-03-021-0/+4
| |/ | | | | | | | | On some stream libraries failbit is not set when trying to read past EOF. Instead, always exit the copy loop when gcount() is zero.
* | Merge branch 'fix-crash-on-bad-LANG_STANDARD' into releaseBrad King2015-02-281-1/+8
|\ \
| * | Diagnose invalid <LANG>_STANDARD value instead of crashing (#15426)Brad King2015-02-281-1/+8
| |/
* | Merge branch 'install-manifest-optimize' into releaseBrad King2015-02-262-12/+10
|\ \
| * | install: Write the entire installation manifest at onceRobert Goulet2015-02-262-12/+10
| |/ | | | | | | | | Avoid a separate open/close for each file installed. Use a single file(WRITE) instead of a loop with file(APPEND).
* | VS: Do not generate a BOM in .sln filesBrad King2015-02-242-10/+0
|/ | | | | | Revert commit v3.2.0-rc1~165^2 (Encoding: Write Visual Studio solution file with BOM, 2014-12-26). The BOM breaks the VS IDE version selector when loading the .sln from Windows Explorer.
* CMake 3.2.0-rc2v3.2.0-rc2Brad King2015-02-231-1/+1
|
* Merge branch 'private-FindJsonCpp' into releaseBrad King2015-02-201-0/+117
|\
| * FindJsonCpp: Drop new module due to upstream jsoncpp providing packageBrad King2015-02-201-0/+117
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Since jsoncpp 0.7.0 (2014-11-20) the upstream may provide a CMake package configuration file such that find_package(jsoncpp) will find a jsoncppConfig.cmake file. In order to avoid conflicting with this (especially on case-insensitive filesystems), and since we always prefer projects to provide package config files (that they maintain), it is better to not provide FindJsonCpp publicly. Move FindJsonCpp into a private source directory that is not installed so that we can still use it for building CMake itself. Reported-by: Ryan Pavlik <ryan.pavlik@gmail.com>
* | cmake-gui: Reset generator platform and toolset on configure (#15411)Brad King2015-02-191-0/+2
|/ | | | | | | | At the start of each configure step we already reset the generator selection (CMAKE_GENERATOR) to match that loaded for the current project. Add missing code to reset the generator platform and toolset (CMAKE_GENERATOR_PLATFORM and CMAKE_GENERATOR_TOOLSET) also so that they do not leak across projects.
* Merge branch 'makefile-missing-comment' into releaseBrad King2015-02-101-1/+1
|\
| * Makefile: Fix regression in target-bound custom command COMMENT outputNils Gladitz2015-02-101-1/+1
| | | | | | | | | | Fix a logic typo introduced by commit v3.1.0-rc1~781^2 (Generalize cmCustomCommandGenerator to more fields, 2014-03-10).
* | Merge branch 'no-global-setlocale' into releaseBrad King2015-02-068-10/+39
|\ \
| * \ Merge branch 'backport-no-global-setlocale' into no-global-setlocaleBrad King2015-02-068-10/+39
| |\ \ | | | | | | | | | | | | Resolve conflict in Source/CMakeLists.txt by taking both changes.
| | * | Add setlocale() calls around use of libarchive APIs (#14934, #15377)Brad King2015-02-064-0/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The libarchive APIs use nl_langinfo(CODESET) for iconv so they need the locale to be set for LC_CTYPE. However, the rest of CMake does not define any behavior for non-ASCII character classification/conversion so we do not want to setlocale() globally. Add a RAII class to save, set, and restore the locale around calls to libarchive APIs. Inspired-by: Clinton Stimpson <clinton@elemtech.com>
| | * | Do not call setlocale() globally in CMake applications (#15377)Brad King2015-02-064-10/+0
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Revert the changes made by commit v3.1.0-rc1~406^2~1 (Encoding: Add setlocale() to applications, 2014-05-30) and commit v3.1.0-rc1~406^2 (Encoding: Change to only set LC_CTYPE, 2014-06-11), and other setlocale calls added later in their spirit. CMake has not been taught how to deal with non-C locales everywhere. We do not define any functionality for character conversions for non-ASCII strings. Another solution will be needed to address the original problem motivating addition of setlocale() calls.
| | * CMake 3.1.2v3.1.2Brad King2015-02-041-1/+1
| | |
| | * Merge branch 'fix-default-install-config' into release-3.1Brad King2015-02-031-9/+5
| | |\
| | * \ Merge branch 'backport-fix-cpack-symlink-create-dir' into release-3.1Brad King2015-01-301-0/+12
| | |\ \
| | | * | CPack: Fix packaging of source tarballs with symbolic linksBill Hoffman2015-01-301-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When staging the package installation, if the first file in a directory happens to be a symbolic link, make sure we create the directory before trying to create the link.
| | * | | Merge branch 'ctest-update-gmake-error-match' into releaseBrad King2015-01-281-2/+2
| | |\ \ \
| | * \ \ \ Merge branch 'fix-OBJECT_DEPENDS-after-path-normalization' into releaseBrad King2015-01-282-0/+16
| | |\ \ \ \
| | * | | | | KWSys Directory: Check opendir return value before using it (#15367)Brad King2015-01-231-0/+5
| | | |_|/ / | | |/| | | | | | | | | | | | | | | In Directory::GetNumberOfFilesInDirectory add a missing check for NULL.
* | | | | | CMake 3.2.0-rc1 version updateBrad King2015-02-051-3/+3
|/ / / / /
* | | | | Merge topic 'fix-C-standard-features'Brad King2015-02-051-8/+22
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fb3487a9 Features: Fix C90 feature detection. 6027798a Features: Allow setting standard dialect below the default. 9d767810 Features: Populate CMAKE_<LANG>_STANDARD_DEFAULT only for supported compilers. 72537e44 Features: Add dialect compile flags only if default is known. 82c9d686 AppleClang: Remove redundant UNIX condition.
| * | | | | Features: Allow setting standard dialect below the default.Stephen Kelly2015-02-041-1/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If the requested standard dialect is older than the default dialect then we must use a flag because we cannot decay to a newer standard.
| * | | | | Features: Add dialect compile flags only if default is known.Stephen Kelly2015-02-041-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The CMAKE_<LANG>_STANDARD_DEFAULT variable indicates whether the compiler has any notion of standard levels and that CMake knows about them. If no language standard levels are available, skip all logic to attempt to add a flag for the level. Also fail with an internal error if a bad default value is set.
* | | | | | CMake Nightly Date StampKitware Robot2015-02-051-1/+1
| | | | | |
* | | | | | Merge topic 'fix-default-install-config'Brad King2015-02-041-9/+5
|\ \ \ \ \ \ | | |_|_|_|/ | |/| | | | | | | | | | | | | | | | dea42d92 install: Fix regression in default configuration selection
| * | | | | install: Fix regression in default configuration selectionBen Boeckel2015-02-031-9/+5
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The refactoring in commit v3.1.0-rc1~812^2~16 (stringapi: Pass configuration names as strings, 2014-02-09) broke the code path in cmLocalGenerator::GenerateInstallRules that intends to pick a default install configuration for multi-config generators. Fix the logic to select an empty default configuration only when using a single-config generator whose CMAKE_BUILD_TYPE is not set. Inspired-by: Roman Wüger <roman.wueger@gmx.at> Reported-by: NoRulez <norulez@me.com>
* | | | | Merge topic 'Qt-AUTOUIC-file-origin'Brad King2015-02-041-1/+2
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 2fed8e17 QtAutogen: Issue error message with origin file (#15342).
| * | | | | QtAutogen: Issue error message with origin file (#15342).Stephen Kelly2015-02-031-1/+2
| | | | | |
* | | | | | CMake Nightly Date StampKitware Robot2015-02-041-1/+1
|/ / / / /
* | | | | Merge topic 'make-NOTPARALLEL-not-PHONY'Brad King2015-02-031-1/+1
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 3cec0c75 Makefile: Generate .NOTPARALLEL without .PHONY (#14312)
| * | | | | Makefile: Generate .NOTPARALLEL without .PHONY (#14312)Brad King2015-01-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In commit v3.0.0-rc1~222^2 (Makefile: Allow "gmake target1 target2 -j", 2013-12-18) we added generation of a .NOTPARALLEL rule and told the generator it is "symbolic" because the file will never be created. This causes ".PHONY" to be used. However, "clearmake" does not support parsing of .PHONY specifically for .NOTPARALLEL, so simply drop it. This should not affect the role of the .NOTPARALLEL rule for GNU make.
* | | | | | CMake Nightly Date StampKitware Robot2015-02-031-1/+1
| |_|/ / / |/| | | |