summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'custom-command-byproducts'Brad King2014-11-2546-30/+469
|\ | | | | | | | | | | 557aef0b ExternalProject: Add options to specify BYPRODUCTS (#14963) e15a7075 Add an option for explicit BYPRODUCTS of custom commands (#14963)
| * ExternalProject: Add options to specify BYPRODUCTS (#14963)Brad King2014-11-175-0/+44
| | | | | | | | | | | | | | The external project's build process may generate byproducts on which other rules in the driving project's build later depend. Provide a way for the driving project to specify what byproducts it expects to be made available by the custom commands that drive the external project.
| * Add an option for explicit BYPRODUCTS of custom commands (#14963)Brad King2014-11-1443-30/+425
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A common idiom in CMake-based build systems is to have custom commands that generate files not listed explicitly as outputs so that these files do not have to be newer than the inputs. The file modification times of such "byproducts" are updated only when their content changes. Then other build rules can depend on the byproducts explicitly so that their dependents rebuild when the content of the original byproducts really does change. This "undeclared byproduct" approach is necessary for Makefile, VS, and Xcode build tools because if a byproduct were listed as an output of a rule then the rule would always rerun when the input is newer than the byproduct but the byproduct may never be updated. Ninja solves this problem by offering a 'restat' feature to check whether an output was really modified after running a rule and tracking the fact that it is up to date separately from its timestamp. However, Ninja also stats all dependencies up front and will only restat files that are listed as outputs of rules with the 'restat' option enabled. Therefore an undeclared byproduct that does not exist at the start of the build will be considered missing and the build will fail even if other dependencies would cause the byproduct to be available before its dependents build. CMake works around this limitation by adding 'phony' build rules for custom command dependencies in the build tree that do not have any explicit specification of what produces them. This is not optimal because it prevents Ninja from reporting an error when an input to a rule really is missing. A better approach is to allow projects to explicitly specify the byproducts of their custom commands so that no phony rules are needed for them. In order to work with the non-Ninja generators, the byproducts must be known separately from the outputs. Add a new "BYPRODUCTS" option to the add_custom_command and add_custom_target commands to specify byproducts explicitly. Teach the Ninja generator to specify byproducts as outputs of the custom commands. In the case of POST_BUILD, PRE_LINK, and PRE_BUILD events on targets that link, the byproducts must be specified as outputs of the link rule that runs the commands. Activate 'restat' for such rules so that Ninja knows it needs to check the byproducts, but not for link rules that have no byproducts.
* | CMake Nightly Date StampKitware Robot2014-11-251-1/+1
| |
* | CMake Nightly Date StampKitware Robot2014-11-241-1/+1
| |
* | CMake Nightly Date StampKitware Robot2014-11-231-1/+1
| |
* | CMake Nightly Date StampKitware Robot2014-11-221-1/+1
| |
* | CMake Nightly Date StampKitware Robot2014-11-211-1/+1
| |
* | Merge topic 'fix-CMP0054-MSVC'Brad King2014-11-205-11/+11
|\ \ | | | | | | | | | | | | | | | | | | fa1a066a Merge branch 'backport-fix-CMP0054-MSVC' into fix-CMP0054-MSVC 4d52cd36 Avoid if() quoted auto-dereference when checking for "MSVC" 543c4304 Avoid if() quoted auto-dereference when checking for "MSVC"
| * \ Merge branch 'backport-fix-CMP0054-MSVC' into fix-CMP0054-MSVCBrad King2014-11-190-0/+0
| |\ \
| | * | Avoid if() quoted auto-dereference when checking for "MSVC"Fraser Hutchison2014-11-195-12/+12
| | | | | | | | | | | | | | | | | | | | When testing CMAKE_<LANG>_COMPILER_ID values against "MSVC", do not allow the definition of the "MSVC" variable to be expanded.
| * | | Avoid if() quoted auto-dereference when checking for "MSVC"Fraser Hutchison2014-11-195-11/+11
| | | | | | | | | | | | | | | | | | | | When testing CMAKE_<LANG>_COMPILER_ID values against "MSVC", do not allow the definition of the "MSVC" variable to be expanded.
* | | | Merge topic 'FindJava-no-osx-stub'Brad King2014-11-201-1/+4
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | dd378258 FindJava: Do not accept OS X stub 'java' as Java
| * | | | FindJava: Do not accept OS X stub 'java' as JavaBrad King2014-11-191-1/+4
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | OS X provides a stub 'java' to inform callers that Java is not present. When checking the 'java -version' output, look for such a message and if found pretend 'java' was not found. Suggested-by: Sean McBride <sean@rogue-research.com>
* | | | CMake Nightly Date StampKitware Robot2014-11-201-1/+1
| |/ / |/| |
* | | CMake Nightly Date StampKitware Robot2014-11-191-1/+1
| | |
* | | Merge topic 'vs-check-phone-store-tools'Brad King2014-11-187-35/+242
|\ \ \ | | | | | | | | | | | | | | | | | | | | 689cd0d4 VS: Do not produce WinMD file for OBJECT libraries (#15228) b20a32ac VS: Improve error messages when compiler is not detected (#15228)
| * | | VS: Do not produce WinMD file for OBJECT libraries (#15228)Gilles Khouzam2014-11-171-1/+2
| | | | | | | | | | | | | | | | | | | | They are implemented as static libraries for the IDE so treat them the same.
| * | | VS: Improve error messages when compiler is not detected (#15228)Gilles Khouzam2014-11-146-34/+240
| |/ / | | | | | | | | | | | | | | | | | | | | | CMake requires both the Desktop SDK and the correct platform SDK (Windows Phone or Windows Store) to be installed when targeting the Windows mobile platforms. Verify that the right platform components are installed and give a more detailed error message when something is wrong.
* | | Merge topic 'update-curl'Brad King2014-11-181-9/+9
|\ \ \ | | | | | | | | | | | | | | | | 46bbf947 curl: Check for OpenSSL headers independently
| * | | curl: Check for OpenSSL headers independentlyBrad King2014-11-171-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use check_include_file instead of check_include_file_concat to look for OpenSSL headers. They do not need to participate in a sequence of dependent system headers. Also they may cause winsock.h to be included before ws2tcpip.h, causing the latter to not be detected in the sequence.
* | | | Merge topic 'FindCurses-no-cur_colr'Brad King2014-11-181-5/+0
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | d931ba60 FindCurses: Drop search for deprecated HP-UX cur_colr library
| * | | | FindCurses: Drop search for deprecated HP-UX cur_colr libraryÅdne Hovda2014-11-171-5/+0
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit b22e2de8 (HPUX support, 2001-11-05) the FindCurses module searches for a 'cur_colr' library, but that is not needed anymore. AFAICT, the cur_colr package was introduced in HP-UX 10.00 and marked as deprecated in 10.30 by X/OPEN curses (which replaced the even older HP curses in 10.10). In order to use cur_colr after 10.10 you should use the /usr/include/curses_colr when compiling. Since FindCurses doesn't even search that path the headers cannot possibly match out of the box. If users want cur_colr they can set the cache entries by hand. There is no 64-bit version of cur_colr in 11.11PA and it will be gone completely in 11.31PA: http://h21007.www2.hp.com/portal/download/files/unprot/STK/HPUX_STK/impacts/i964.html It is simplest to drop cur_colr support from FindCurses since it was only partially implemented anyway.
* | | | Merge topic 'doc-sphinx-cmake-fixup'Brad King2014-11-181-0/+1
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | 5cda2205 Utilities/Sphinx: Add missing call to note_explicit_target
| * | | | Utilities/Sphinx: Add missing call to note_explicit_targetBrad King2014-11-171-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Sphinx calls document.note_explicit_target with any nodes.target() it creates. Add such a call when we create a document target in CMakeTransform.
* | | | | CMake Nightly Date StampKitware Robot2014-11-181-1/+1
| | | | |
* | | | | Merge topic 'doc-target_include_directories-fixup'Brad King2014-11-171-2/+2
|\ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | 1d22ee67 Help: target_include_directories does not allow target names
| * | | | | Help: target_include_directories does not allow target namesBrad King2014-11-171-2/+2
| | |/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since commit v2.8.11~227^2~1 (Don't allow targets args in the new target commands, 2013-01-29) the target_include_directories command does not support target names on the right hand side, but that commit forgot to remove it from the docs. It was never released with such support. Update the command documentation now.
* | | | | Merge topic 'ninja-minor-refactoring'Brad King2014-11-175-38/+27
|\ \ \ \ \ | | |_|_|/ | |/| | | | | | | | | | | | | | | | | | | | | | | 67bd514a Ninja: Refactor restat to be a string internally ef42e57d Ninja: Use a TARGET_FILE variable to hold the link output file 592644c4 Tests/BuildDepends: Drop unneeded help for Ninja
| * | | | Ninja: Refactor restat to be a string internallyBrad King2014-11-144-15/+15
| | | | | | | | | | | | | | | | | | | | | | | | | This will allow values other than "" and "1" to be generated in the rules.ninja file.
| * | | | Ninja: Use a TARGET_FILE variable to hold the link output fileBrad King2014-11-141-18/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use an explicit "$TARGET_FILE" variable instead of "$out" so that we can have multiple output files while still only referencing the main one in command lines.
| * | | | Tests/BuildDepends: Drop unneeded help for NinjaBrad King2014-11-141-5/+1
| | | | | | | | | | | | | | | | | | | | | | | | | The extra post-modification invocations of 'ninja' does not seem to be needed anymore for the BuildDepends test to pass.
* | | | | Merge branch 'release'Brad King2014-11-170-0/+0
|\ \ \ \ \
| * \ \ \ \ Merge branch 'vs14-is-2015' into releaseBrad King2014-11-175-18/+38
| |\ \ \ \ \
| * \ \ \ \ \ Merge branch 'kwsys-SharedForward-vs14' into releaseBrad King2014-11-171-1/+1
| |\ \ \ \ \ \
* | \ \ \ \ \ \ Merge topic 'kwsys-SharedForward-vs14'Brad King2014-11-170-0/+0
|\ \ \ \ \ \ \ \ | | |/ / / / / / | |/| | | | | | | | | | | | | | | | | | | | | | 480ed9cd KWSys SharedForward: Hard-code the ldpath buffer size to below VS 14 limit
| * | | | | | | KWSys SharedForward: Hard-code the ldpath buffer size to below VS 14 limitBrad King2014-11-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Visual Studio 14 (2015) complains if a static character array is declared with more than 65535 elements. This limit should be large enough for SharedForward clients, so just hard-code that instead of trying to compute a limit.
* | | | | | | | Merge topic 'update-kwsys'Brad King2014-11-171-1/+1
|\ \ \ \ \ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | afc557d1 Merge branch 'upstream-kwsys' into update-kwsys c5fcbe00 KWSys 2014-11-14 (dec9c30b)
| * \ \ \ \ \ \ \ Merge branch 'upstream-kwsys' into update-kwsysBrad King2014-11-171-1/+1
| |\ \ \ \ \ \ \ \ |/ / / / / / / / /
| * | | | | | | | KWSys 2014-11-14 (dec9c30b)KWSys Robot2014-11-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Extract upstream KWSys using the following shell commands. $ git archive --prefix=upstream-kwsys/ dec9c30b | tar x $ git shortlog --no-merges --abbrev=8 --format='%h %s' 5843f590..dec9c30b Brad King (1): dec9c30b SharedForward: Hard-code the ldpath buffer size to below VS 14 limit Change-Id: I3430e77f71e68c2eb4f29369080c97afb1613c33
* | | | | | | | | Merge topic 'console-pool'Brad King2014-11-1725-36/+172
|\ \ \ \ \ \ \ \ \ | | |_|_|_|/ / / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2d75d7e5 Help: Add notes for topic 'console-pool' f42d86f0 Ninja: Implement USES_TERMINAL using the console pool if available f281ae01 Ninja: Remove unused declaration d5eae556 Ninja: factor out the test for console pool support 4d1fedf4 Give the interactive cache editor the USES_TERMINAL property fe5d6e8c Add USES_TERMINAL option for custom commands ad6ee426 Rename doing_verbatim to doing_nothing
| * | | | | | | | Help: Add notes for topic 'console-pool'Peter Collingbourne2014-11-141-0/+8
| | | | | | | | |
| * | | | | | | | Ninja: Implement USES_TERMINAL using the console pool if availablePeter Collingbourne2014-11-144-0/+13
| | | | | | | | |
| * | | | | | | | Ninja: Remove unused declarationPeter Collingbourne2014-11-141-1/+0
| | | | | | | | |
| * | | | | | | | Ninja: factor out the test for console pool supportPeter Collingbourne2014-11-142-3/+10
| | | | | | | | |
| * | | | | | | | Give the interactive cache editor the USES_TERMINAL propertyPeter Collingbourne2014-11-142-13/+16
| | | | | | | | |
| * | | | | | | | Add USES_TERMINAL option for custom commandsPeter Collingbourne2014-11-1417-17/+123
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Teach the add_custom_command and add_custom_target commands a new USES_TERMINAL option. Use it to tell the generator to give the command direct access to the terminal if possible.
| * | | | | | | | Rename doing_verbatim to doing_nothingPeter Collingbourne2014-11-141-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We are about to introduce another property here, so give this a better name.
* | | | | | | | | Merge topic 'test-custom-command-errors'Brad King2014-11-1729-0/+85
|\ \ \ \ \ \ \ \ \ | |/ / / / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | 39baf728 Tests: Test add_custom_command and add_custom_target error cases
| * | | | | | | | Tests: Test add_custom_command and add_custom_target error casesBrad King2014-11-1429-0/+85
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add RunCMake.add_custom_command and RunCMake.add_custom_target tests to cover the error messages for these commands.