Commit Graph

17826 Commits

Author SHA1 Message Date
Brad King c3f416726b Merge topic 'ninja-no-circular-phony'
80afe28a Ninja: Do not generate circular phony rules (#15454)
2015-03-20 09:47:46 -04:00
Domen Vrankar a2c068a7ce file: Teach GLOB to list directories optionally
GLOB lists directories by default and GLOB_RECURSE does not.
LIST_DIRECTORIES enables user to control the behavior explicitly for
consistently for both GLOB and GLOB_RECURSE.
2015-03-20 09:45:25 -04:00
Kitware Robot a066f73263 CMake Nightly Date Stamp 2015-03-20 00:01:03 -04:00
Kitware Robot 486e9f4f49 CMake Nightly Date Stamp 2015-03-19 00:01:03 -04:00
Brad King 82a37d3ce5 cmGlobalNinjaGenerator: Drop unused member 2015-03-18 16:15:01 -04:00
Brad King 80afe28a10 Ninja: Do not generate circular phony rules (#15454)
The phony rules added by commit v2.8.12~248^2 (Ninja: Custom Command
file depends don't need to exist before building, 2013-06-07) are
circular, e.g.

  build side-effect: phony side-effect

This is not diagnosed by Ninja as of version 1.5, but the dependency
does not make sense.  Simply drop it and use phony rules of the form

  build side-effect: phony

instead.

Reported-by: Daniel Dunbar
2015-03-18 12:55:27 -04:00
Brad King 0e8325db66 Merge branch 'upstream-kwsys' into update-kwsys 2015-03-18 08:58:11 -04:00
Kitware Robot 380db3de00 CMake Nightly Date Stamp 2015-03-18 00:01:04 -04:00
Brad King e9072d26c0 Merge topic 'output-ctest-env-vars'
874fdd91 CTest: Output test-specific env vars in verbose mode (#15446)
2015-03-17 10:14:49 -04:00
Zach Mullen 874fdd914a CTest: Output test-specific env vars in verbose mode (#15446)
Any environment vars that were configured for a test via the
ENVIRONMENT property will now be output when the test is run
with verbose logging enabled.
2015-03-17 10:11:33 -04:00
Kitware Robot 4fb9abc562 CMake Nightly Date Stamp 2015-03-17 00:01:03 -04:00
Kitware Robot 0ac7d871fa CMake Nightly Date Stamp 2015-03-16 00:01:03 -04:00
Kitware Robot 607131bf8c CMake Nightly Date Stamp 2015-03-15 00:01:03 -04:00
Kitware Robot 262656b2d6 CMake Nightly Date Stamp 2015-03-14 00:01:05 -04:00
Kitware Robot 0769644212 CMake Nightly Date Stamp 2015-03-13 00:01:03 -04:00
Brad King 6390d5f5cb Merge topic 'refactor-cmGeneratorExpression'
ec428faf Genex: Extend cmGeneratorExpressionContext constructor.
082b6a9d Genex: Split cmGeneratorExpressionContext into own file.
9df1f0fc Genex: Split cmGeneratorExpressionNode into own file.
80b9f0cb Genex: Extract an evaluateWithContext method.
642048ce Help: Move docs of $<0:...> and $<1:...> to output section.
2015-03-12 15:26:45 -04:00
Brad King 0d58b082d0 Merge topic 'update-kwsys'
e433223d Merge branch 'upstream-kwsys' into update-kwsys
9a427f86 KWSys 2015-03-10 (4a698414)
2015-03-12 15:26:41 -04:00
Brad King f25aa204a2 Merge topic 'vs-express-build-output'
94887cb6 cmake: Teach --build to get VCExpress output (#15437)
2015-03-12 15:26:39 -04:00
Brad King 18e85253c3 Merge topic 'cmRemoveDuplicates-improvement'
8701a3f4 cmRemoveDuplicates: Partially specialize the API for pointer types.
eec7091d cmRemoveDuplicates: Type-parameterize all uniq-operations
7cbafa8c cmRemoveDuplicates: Store unique iterators instead of values.
2015-03-12 15:26:37 -04:00
Brad King 15b06bc012 Merge topic 'cmAlgorithms-cleanup'
95dd238f cmRemoveDuplicates: Fix iterator -> const_iterator.
4448f175 cmInstalledFile: Move Property implementation out of line.
7916d7ba Include cmAlgorithms where it is used.
2015-03-12 15:26:35 -04:00
Brad King 153e2dc3fc Merge topic 'cmAlgorithms-early-return'
3ff95f3b cmAlgorithms: Add early return in cmRemoveIndices.
2015-03-12 15:26:33 -04:00
Brad King 119f45ce2a Merge topic 'vs-Intel-Fortran-map-more-flags'
18d5a4bc VS: Add more Fortran compiler flags to flag table (#15381)
2015-03-12 15:26:29 -04:00
Brad King 7b185d5017 Merge topic 'main_dependency_diagnostic'
242c3966 add_custom_command: Diagnose MAIN_DEPENDENCY limitation.
2015-03-12 15:26:26 -04:00
Brad King addf4db06c Merge topic 'fix_jacoco_coverage_process'
c771f9d9 CTest: Fix Jacoco Coverage
2015-03-12 15:26:24 -04:00
Kitware Robot 36d4cdad0e CMake Nightly Date Stamp 2015-03-12 00:01:03 -04:00
Brad King e433223d1e Merge branch 'upstream-kwsys' into update-kwsys 2015-03-11 08:41:16 -04:00
Kitware Robot 80e8e7e956 CMake Nightly Date Stamp 2015-03-11 00:01:04 -04:00
Stephen Kelly 8701a3f468 cmRemoveDuplicates: Partially specialize the API for pointer types.
If de-duplicating a container of pointers, there is no need to
store iterators to them, as that is just more 'pointer chasing'.

Store the pointers themselves and use API which compares the pointers
in the specialization.
2015-03-11 00:17:55 +01:00
Stephen Kelly eec7091d76 cmRemoveDuplicates: Type-parameterize all uniq-operations 2015-03-11 00:17:55 +01:00
Stephen Kelly 7cbafa8c65 cmRemoveDuplicates: Store unique iterators instead of values.
There is no need to copy all of the values in the container in
order to determine uniqueness.  Iterators can be stored instead
and can be used with standard algorithms with custom comparison
methods.

This also means that we use less space in case the value_type size
is greater than sizeof(iterator).  That is common for std::string
which may require up to 32 bytes (libstdc++ 5.0 and MSVC at least).
With libstdc++ 4.9 and older, std::string is 8 bytes, so we likely
don't gain anything here.

Inspired-by: Daniel Pfeifer <daniel@pfeifer-mail.de>
2015-03-11 00:17:55 +01:00
Stephen Kelly 95dd238f5c cmRemoveDuplicates: Fix iterator -> const_iterator. 2015-03-11 00:17:30 +01:00
Stephen Kelly 4448f175c8 cmInstalledFile: Move Property implementation out of line.
Don't require re-building the world when changing cmAlgorithms.h.
2015-03-11 00:17:29 +01:00
Stephen Kelly 7916d7bac6 Include cmAlgorithms where it is used. 2015-03-11 00:17:29 +01:00
Stephen Kelly ec428fafcf Genex: Extend cmGeneratorExpressionContext constructor.
Initialize the members in the appropriate place.
2015-03-11 00:12:56 +01:00
Stephen Kelly 082b6a9d78 Genex: Split cmGeneratorExpressionContext into own file. 2015-03-11 00:12:56 +01:00
Stephen Kelly 9df1f0fce1 Genex: Split cmGeneratorExpressionNode into own file. 2015-03-11 00:12:56 +01:00
Stephen Kelly 3ff95f3b0b cmAlgorithms: Add early return in cmRemoveIndices.
Avoid derefencing the iterator and segfaulting if the range
is empty.
2015-03-10 21:20:58 +01:00
Stephen Kelly 80b9f0cbe2 Genex: Extract an evaluateWithContext method.
Make it easier to make modifications to the context before
evaluating with it.
2015-03-10 21:19:38 +01:00
Brad King 732d8a467a CMake 3.2.1 2015-03-10 09:15:35 -04:00
Brad King ad6fbb88bb Merge topic 'target-language-genex'
232a6883 Help: Add release notes for target-language-genex.
9e168941 File(GENERATE): Process genex evaluation files for each language.
b734fa44 Genex: Allow COMPILE_LANGUAGE when processing include directories.
0b945ea9 Genex: Allow COMPILE_LANGUAGE when processing compile definitions.
5c559f11 Genex: Enable use of COMPILE_LANGUAGE for compile options.
e387ce7d Genex: Add a COMPILE_LANGUAGE generator expression.
4a0128f4 VS6: Compute CMAKE_*_FLAGS and COMPILE_DEFINITIONS* only when needed
2015-03-10 09:12:34 -04:00
Brad King 01fadeb205 Merge topic 'ninja-check-root-robustly'
a6b09085 Ninja: Improve internal check for generating at the top-level (#15436)
2015-03-10 09:12:27 -04:00
Brad King fa4617b7ea Merge topic 'configure_file-NEWLINE_STYLE-no-warn'
024e25e4 Tests: Add more signature tests to RunCMake.configure_file test
3ef776fc configure_file: Do not warn about newline style arguments
2015-03-10 09:12:24 -04:00
Brad King 94887cb6f1 cmake: Teach --build to get VCExpress output (#15437)
VCExpress does not produce output if its pipes are connected to
an interactive terminal.  Add a special case to 'cmake --build'
to capture the output through a pipe and re-print it instead of
sharing output pipes with VCExpress.
2015-03-10 08:42:18 -04:00
Oyvind Jensen 18d5a4bcfd VS: Add more Fortran compiler flags to flag table (#15381)
Due to a difference in how AdditionalOptions are implemented in the
Fortran component of VS and the C/C++ component, flags that are not
listed in the flag table are at risk of being overwritten.
2015-03-10 08:40:37 -04:00
Kitware Robot a5505c4c53 CMake Nightly Date Stamp 2015-03-10 00:01:19 -04:00
Stephen Kelly 9e1689413f File(GENERATE): Process genex evaluation files for each language. 2015-03-09 20:49:17 +01:00
Stephen Kelly b734fa4471 Genex: Allow COMPILE_LANGUAGE when processing include directories.
Issue an error if this is encountered by an IDE generator.
2015-03-09 20:49:17 +01:00
Stephen Kelly 0b945ea9a6 Genex: Allow COMPILE_LANGUAGE when processing compile definitions.
Issue an error if this is encountered by an IDE generator.
2015-03-09 20:49:16 +01:00
Stephen Kelly 5c559f1113 Genex: Enable use of COMPILE_LANGUAGE for compile options.
Follow-ups will allow the use of the generator expression
for compile definitions and include directories for non-IDE
generators.
2015-03-09 20:48:57 +01:00
Brad King 244e3d0fc9 Merge branch 'ninja-check-root-robustly' into release 2015-03-09 13:37:15 -04:00
Brad King a6b0908571 Ninja: Improve internal check for generating at the top-level (#15436)
Simply check for whether the local generator has a parent instead of
depending on a string comparison of directory names.
2015-03-09 13:36:46 -04:00
Brad King a6d488f2ce Merge topic 'cbp-unit-targets'
099b0cab CodeBlocks: Declare which source file belongs to which targets.
2015-03-09 09:45:59 -04:00
Brad King 6f28bc6b51 Merge topic 'fix-wixobj-filenames'
2e16aff1 CPackWIX: Fix .wixobj output locations and filenames.
b0852ebc CPackWIX: Support patching of root <Feature> elements.
2015-03-09 09:45:57 -04:00
Brad King 3f66bde4f7 Merge topic 'update-kwsys'
44ef4700 Merge branch 'upstream-kwsys' into update-kwsys
aa84d26e KWSys 2015-03-03 (4890f30c)
2015-03-09 09:45:54 -04:00
Brad King 387466dd95 Merge topic 'custom-command-multiple-outputs'
66a9c90c Makefile: Fix multiple custom command outputs regression (#15116)
2015-03-09 09:45:51 -04:00
Brad King 77f3804ab2 Merge branch 'configure_file-NEWLINE_STYLE-no-warn' into release 2015-03-09 09:20:58 -04:00
Brad King 3ef776fc38 configure_file: Do not warn about newline style arguments
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.
2015-03-09 09:17:59 -04:00
Nils Gladitz 242c396656 add_custom_command: Diagnose MAIN_DEPENDENCY limitation.
The new policy CMP0057 diagnoses reuse of the same MAIN_DEPENDENCY across
multiple custom commands.
2015-03-09 12:45:38 +01:00
Kitware Robot bdb00b3613 CMake Nightly Date Stamp 2015-03-09 00:01:09 -04:00
Kitware Robot 42f0cb0c10 CMake Nightly Date Stamp 2015-03-08 00:01:09 -05:00
Stephen Kelly e387ce7d68 Genex: Add a COMPILE_LANGUAGE generator expression. 2015-03-07 13:19:45 +01:00
Brad King 4a0128f42f VS6: Compute CMAKE_*_FLAGS and COMPILE_DEFINITIONS* only when needed
These placeholders are used only in the .dsp templates for targets
that actually compile sources.
2015-03-07 13:19:40 +01:00
Kitware Robot 90a051f443 CMake Nightly Date Stamp 2015-03-07 00:01:10 -05:00
Brad King cc1ee21383 Merge branch 'custom-command-multiple-outputs' into release 2015-03-06 20:00:42 -05:00
Brad King 66a9c90c4b Makefile: Fix multiple custom command outputs regression (#15116)
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.
2015-03-06 19:58:30 -05:00
Nils Gladitz 2e16aff1e2 CPackWIX: Fix .wixobj output locations and filenames.
Preserve all but the last extension when generating .wixobj output
filenames from source files and make sure they are unique.

Output .wixobj files in cpack staging area instead
of the current working directory.
2015-03-06 21:09:19 +01:00
Nils Gladitz b0852ebc09 CPackWIX: Support patching of root <Feature> elements. 2015-03-06 21:06:42 +01:00
Joseph Snyder c771f9d945 CTest: Fix Jacoco Coverage
Rename the example jacoco.xml file to be jacoco.xml.in to stop CMake
from apptempting to calculate Jacoco Coverage when running over itself.

Enclose a push of -1 to the coverage vector to only happen if there is a
fin to calculate for. This prevents a crash if the target file doesn't
exist.
2015-03-06 11:18:19 -05:00
Nils Gladitz 099b0cab1d CodeBlocks: Declare which source file belongs to which targets.
This should allow the consuming IDE to determine which target specific
preprocessor definitions and include directories are relevant for a
given source file.
2015-03-06 09:48:33 +01:00
Kitware Robot 8f38b8a443 CMake Nightly Date Stamp 2015-03-06 00:01:09 -05:00
Kitware Robot 67a74c4454 CMake Nightly Date Stamp 2015-03-05 00:01:09 -05:00
Brad King 44ef47000e Merge branch 'upstream-kwsys' into update-kwsys 2015-03-04 08:53:24 -05:00
Brad King 4ef21206e6 Merge topic 'fix-JOM-quiet-make'
3e98ebba JOM: Pass /NOLOGO when driving builds as is done for NMake
2015-03-04 08:52:12 -05:00
Kitware Robot ebcb75e626 CMake Nightly Date Stamp 2015-03-04 00:01:09 -05:00
Brad King a49a467fd0 CMake 3.2.0 2015-03-03 08:38:36 -05:00
Brad King 9babde423c Merge topic 'update-kwsys'
e88f3b3b Merge branch 'upstream-kwsys' into update-kwsys
7c9afb57 KWSys 2015-02-27 (d2aa1afd)
2015-03-03 08:32:54 -05:00
Kitware Robot 0261198653 CMake Nightly Date Stamp 2015-03-03 00:01:09 -05:00
Brad King 3e98ebbaef JOM: Pass /NOLOGO when driving builds as is done for NMake
This fixes RunCMake.(Configure|configure_file|try_compile) test
failures that failed to match empty stderr due to jom printing
its identification line.
2015-03-02 10:08:09 -05:00
Brad King eb3bced50f Merge branch 'backport-KWSys-SystemTools-CopyFileAlways-fix' into release 2015-03-02 08:55:21 -05:00
Paul Martin b8ea771b13 KWSys SystemTools: Update CopyFileAlways stream library workarounds
On some stream libraries failbit is not set when trying to read past
EOF.  Instead, always exit the copy loop when gcount() is zero.
2015-03-02 08:55:13 -05:00
Brad King e88f3b3bcc Merge branch 'upstream-kwsys' into update-kwsys 2015-03-02 08:41:17 -05:00
Brad King e2055b172e Merge topic 'fix-ctest-update-locale'
6a661f06 CTest: To enforce the C locale use LC_ALL instead of LC_MESSAGES.
2015-03-02 08:36:26 -05:00
Brad King 17b4423c45 Merge topic 'fix-crash-on-bad-LANG_STANDARD'
00d66557 Diagnose invalid <LANG>_STANDARD value instead of crashing (#15426)
2015-03-02 08:36:24 -05:00
Kitware Robot a8b2224eb6 CMake Nightly Date Stamp 2015-03-02 00:01:08 -05:00
Kitware Robot 1c29a5583c CMake Nightly Date Stamp 2015-03-01 00:01:09 -05:00
Brad King 6b6852a0eb Merge branch 'fix-crash-on-bad-LANG_STANDARD' into release 2015-02-28 12:15:34 -05:00
Brad King 00d66557d4 Diagnose invalid <LANG>_STANDARD value instead of crashing (#15426) 2015-02-28 12:14:42 -05:00
Kitware Robot ae09fce831 CMake Nightly Date Stamp 2015-02-28 00:01:09 -05:00
Brad King 29b5ca108e Merge topic 'remove_error_read_script'
6bf13097 CTest: Drop "Error in read script" message at end of testing
2015-02-27 10:34:38 -05:00
Brad King 0bf6c7fa7b Merge topic 'cmake-build-ninja-verbose'
d1082448 Tests: Extend RunCMake.CommandLine to cover 'cmake --build' for 'ninja -v'
ce935ebe cmake: Teach --build to honor CMAKE_VERBOSE_MAKEFILE for Ninja
2015-02-27 10:34:36 -05:00
Brad King 38f1f4e7f3 Merge topic 'install-manifest-optimize'
c4814174 install: Write the entire installation manifest at once
2015-02-27 10:34:35 -05:00
Brad King ee81de5ec3 Merge topic 'update-kwsys'
26656865 Merge branch 'upstream-kwsys' into update-kwsys
5e2b418f KWSys 2015-02-25 (1b75ad3d)
2015-02-27 10:34:31 -05:00
Nils Gladitz 6a661f0603 CTest: To enforce the C locale use LC_ALL instead of LC_MESSAGES.
If LC_ALL is set it takes precedence over LC_MESSAGES.
2015-02-27 16:32:03 +01:00
Zack Galbreath 6bf130979e CTest: Drop "Error in read script" message at end of testing
A more-specific error message is always displayed earlier in the
output if any real error occurred.  This final summary message
is distracting to readers searching through the output for the
word "error".  Simply drop it.
2015-02-27 10:31:02 -05:00
Kitware Robot 4bef659da5 CMake Nightly Date Stamp 2015-02-27 00:01:09 -05:00
Brad King 693a944736 Merge branch 'install-manifest-optimize' into release 2015-02-26 15:06:00 -05:00
Robert Goulet c48141744e install: Write the entire installation manifest at once
Avoid a separate open/close for each file installed.  Use a single
file(WRITE) instead of a loop with file(APPEND).
2015-02-26 15:04:07 -05:00
Gregor Jasny ce935ebe50 cmake: Teach --build to honor CMAKE_VERBOSE_MAKEFILE for Ninja
The Ninja build system does not support a in-file verbositiy switch.
Instead teach 'cmake --build' to extract the CMAKE_VERBOSE_MAKEFILE
setting and pass it as an optional '-v' argument to Ninja.  This can
serve as a reasonable fallback.

Signed-off-by: Gregor Jasny <gjasny@googlemail.com>
2015-02-26 09:51:11 -05:00
Brad King 266568654c Merge branch 'upstream-kwsys' into update-kwsys 2015-02-26 08:54:42 -05:00
Kitware Robot 1c3799b151 CMake Nightly Date Stamp 2015-02-26 00:01:08 -05:00