Commit Graph

17912 Commits

Author SHA1 Message Date
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
Brad King dbad49705e Merge topic 'vs-midl-absolute-OutputDirectory'
4ee9005d cmVisualStudio10TargetGenerator: Wrap long line
2015-02-25 09:03:05 -05:00
Brad King b38f535eaa Merge topic 'sln-no-bom'
987d4a12 VS: Do not generate a BOM in .sln files
2015-02-25 09:03:01 -05:00
Kitware Robot 1826aadcf3 CMake Nightly Date Stamp 2015-02-25 00:01:09 -05:00
Brad King 987d4a1240 VS: Do not generate a BOM in .sln files
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.
2015-02-24 13:30:50 -05:00
Brad King 4ee9005d73 cmVisualStudio10TargetGenerator: Wrap long line 2015-02-24 10:34:15 -05:00
Brad King ac80f0f95f Merge topic 'cleanup-cmAlgorithms'
47c2da6a cmAlgorithms: Cache the end iterators in algorithms.
a5b10ae6 cmAlgorithms: Remove needless assignment.
7fd8557f cmAlgorithms: Maintain the pivot iterator in cmRemoveIndices.
1f796791 cmAlgorithms: Relax iterator requirement for cmRemoveIndices.
ba959934 cmAlgorithms: Make cmRemoveDuplicates work with more containers.
cae45df7 cmAlgorithms: Rename template argument to RemoveN.
b917f4c0 cmAlgorithms: Relax cmRemoveN requirement to FwdIter.
bbc1a978 cmAlgorithms: Add a size() to cmRange.
47a3e22e cmAlgorithms: Rename template type in cmDeleteAll algorithm.
cb75eec0 cmAlgorithms: Add const to const objects.
2015-02-24 09:16:53 -05:00
Stephen Kelly 47c2da6aa8 cmAlgorithms: Cache the end iterators in algorithms. 2015-02-24 09:16:02 -05:00
Stephen Kelly a5b10ae68a cmAlgorithms: Remove needless assignment. 2015-02-24 09:16:02 -05:00
Stephen Kelly 7fd8557f4c cmAlgorithms: Maintain the pivot iterator in cmRemoveIndices.
Avoid the algorithm of 'Schlemiel the painter' in the case of
iterators which are not RandomAccess.
2015-02-24 09:16:02 -05:00
Stephen Kelly 1f79679136 cmAlgorithms: Relax iterator requirement for cmRemoveIndices.
Require only forward iterators from the range.
2015-02-24 09:16:02 -05:00
Stephen Kelly ba959934a6 cmAlgorithms: Make cmRemoveDuplicates work with more containers.
Remove the accidental requirement that the input range must be a
std::vector.
2015-02-24 09:16:02 -05:00
Stephen Kelly cae45df772 cmAlgorithms: Rename template argument to RemoveN. 2015-02-24 09:16:01 -05:00
Stephen Kelly b917f4c003 cmAlgorithms: Relax cmRemoveN requirement to FwdIter.
cmRotate already requires only FwdIter.
2015-02-24 09:16:01 -05:00
Stephen Kelly bbc1a9788d cmAlgorithms: Add a size() to cmRange.
size() is already used by cmRemoveDuplicates, which is designed to
accept a cmRange.
2015-02-24 09:16:01 -05:00
Brad King f67b8065f6 Merge topic 'osx-CFBundleExecutable'
78ec4b16 OS X: Shorten CFBundleExecutable to file name only
2015-02-24 09:12:47 -05:00
Brad King 3bda0717b3 Merge topic 'vs-midl-absolute-OutputDirectory'
0b54e836 VS: Specify absolute output directory for the Midl tool
2015-02-24 09:12:41 -05:00
Brad King 206ce77781 Merge topic 'ctest-output-options'
ff1ddd2a ctest_upload: Add QUIET option
0b87b2a3 ctest_memcheck: Add QUIET option
fc58bdb9 ctest_coverage: Add QUIET option
876a680d ctest_test: Add QUIET option
49ba4545 ctest_build: Add QUIET option
f999dc0b ctest_configure: Add QUIET option
645ad117 ctest_update: Add QUIET option
19d1a559 ctest_start: Add QUIET option
1643b905 ctest_submit: Add QUIET option
12db1139 CTest: Add cmCTestOptionalLog macro
2015-02-24 09:12:33 -05:00
Kitware Robot d83b40c58d CMake Nightly Date Stamp 2015-02-24 00:01:16 -05:00
Stephen Kelly 47a3e22ea5 cmAlgorithms: Rename template type in cmDeleteAll algorithm.
It may be any range, not only a container.
2015-02-23 20:19:35 +01:00
Stephen Kelly cb75eec0b4 cmAlgorithms: Add const to const objects. 2015-02-23 20:19:35 +01:00
Tim Blechmann 0b54e8366e VS: Specify absolute output directory for the Midl tool
Generate the OutputDirectory element value as an absolute path
to the same location as the existing relative path.  Somehow
this addresses an occasional failure in a large/complex build,
and should not hurt basic use cases.
2015-02-23 13:22:07 -05:00
Gregor Jasny 78ec4b1640 OS X: Shorten CFBundleExecutable to file name only
Shorten the CFBundleExecutable in the PList file of Bundles to
the file name only as it is done for Frameworks, too.

Signed-off-by: Gregor Jasny <gjasny@googlemail.com>
2015-02-23 13:07:33 -05:00
Brad King 99575c9ac1 CMake 3.2.0-rc2 2015-02-23 11:10:12 -05:00
Brad King cb16c7844d Merge topic 'wix-shortcut-properties'
6cc01c14 CPackWIX: Add release notes for the wix-shortcut-properties topic.
135febf0 CPackWIX: Enhance CMake CPack WIX generated installer.
e6731f48 CPackWIX: Add new CPACK_STARTUP_SHORTCUTS property.
279605f5 CPackWIX: Add installed file properties for the creation of shortcuts.
53d7daff CPackWIX: Refactor start menu and desktop shortcut creation.
dc0f3fb4 CPackWIX: Explicitly list CPack WIX headers for IDE convenience.
2015-02-23 11:06:07 -05:00
Brad King 9627c5238a Merge topic 'if-optimize'
51f8de81 if(): avoid one needless string compare for all if() statements
2015-02-23 10:26:48 -05:00
Brad King 6dc9a627b6 Merge topic 'minor-cleanups'
c021f59c cmMakefile: Store macro list in a vector not in a map.
2d130896 cmMakefile: Fix list of macros generation.
f1969234 cmFunctionCommand: Remove ineffectual code.
1116698a cmTarget: Don't needlessly clear vectors in the destructor.
2015-02-23 10:26:42 -05:00
Brad King cc3611023d Merge topic 'use-algorithms'
bb9d71b4 Replace loops with algorithms.
4afe6c26 cmAlgorithms: Add cmReverseRange adaptor.
a3a0a8c2 cmAlgorithms: Add cmFindNot algorithm.
8c74a41f cmRST: Replace two erase with a rotate and larger erase.
61fe1919 cmAlgorithms: Update concept requirement to FowardIterator
09d6125b cmAlgorithms: Move cmRotate out of 'implementation detail' namespace.
8ed6ecac cmRST: Move two algorithms beside each other.
dfe49c20 cmRST: Use std::min where appropriate.
21b0654a cmGlobalGenerator: Convert set insert algorithm to vector algorithms.
416df93a Convert some raw loops to cmWrap.
37b88d34 cmAlgorithms: Add cmWrap.
a2818093 Use cmJoin where possible.
76207b08 cmCacheManager: Replace loop with algorithm.
60c3bb73 cmGlobalGenerator: Replace loop with algorithm.
05fec779 cmTarget: Port loop to algorithm.
9c225767 cmGlobalGenerator: Replace set::insert algorithm with cmRemoveDuplicates.
...
2015-02-23 10:26:38 -05:00
Brad King a089c1c903 Merge topic 'cpack-bundle-codesign-output'
7b582d15 CPack: Print output from codesign if signing fails
2015-02-23 10:26:34 -05:00
Brad King 1eb192905d Merge topic 'private-FindJsonCpp'
a41d621d bootstrap: Add --(no-)system-jsoncpp options
a5768442 FindJsonCpp: Drop new module due to upstream jsoncpp providing package
2015-02-23 10:26:30 -05:00
Zack Galbreath ff1ddd2a73 ctest_upload: Add QUIET option 2015-02-23 10:02:00 -05:00
Zack Galbreath 0b87b2a339 ctest_memcheck: Add QUIET option 2015-02-23 10:02:00 -05:00
Zack Galbreath fc58bdb9ad ctest_coverage: Add QUIET option 2015-02-23 10:02:00 -05:00
Zack Galbreath 876a680d48 ctest_test: Add QUIET option 2015-02-23 10:01:59 -05:00
Zack Galbreath 49ba4545c2 ctest_build: Add QUIET option 2015-02-23 10:01:59 -05:00
Zack Galbreath f999dc0bbf ctest_configure: Add QUIET option 2015-02-23 10:01:59 -05:00
Zack Galbreath 645ad117e1 ctest_update: Add QUIET option 2015-02-23 10:01:59 -05:00
Zack Galbreath 19d1a5599a ctest_start: Add QUIET option
This suppresses all non-error messages that would have otherwise
been printed by this function.
2015-02-23 10:01:59 -05:00
Zack Galbreath 1643b905e0 ctest_submit: Add QUIET option
Specifying this option prevents CTest from printing any non-error
messages to the console for this call to ctest_submit().
2015-02-23 10:01:58 -05:00
Zack Galbreath 12db113944 CTest: Add cmCTestOptionalLog macro
cmCTestOptionalLog takes a boolean argument that indicates
whether or not the message should be suppressed.  Note that
error messages will still be printed, even if suppression is
requested.  This macro will allow us to provide more
fine-grained control over what messages CTest prints to the
console.
2015-02-23 10:01:58 -05:00
Kitware Robot 6adff76720 CMake Nightly Date Stamp 2015-02-23 00:01:08 -05:00
Rolf Eike Beer 51f8de8102 if(): avoid one needless string compare for all if() statements
If it's known that it is an "if" it can't be an "elseif".
2015-02-22 13:48:30 +01:00
Kitware Robot 5cf629c3bc CMake Nightly Date Stamp 2015-02-22 00:01:09 -05:00
Nils Gladitz e6731f486e CPackWIX: Add new CPACK_STARTUP_SHORTCUTS property. 2015-02-21 18:07:36 +01:00
Nils Gladitz 279605f560 CPackWIX: Add installed file properties for the creation of shortcuts. 2015-02-21 17:30:31 +01:00
Nils Gladitz 53d7daffac CPackWIX: Refactor start menu and desktop shortcut creation. 2015-02-21 12:38:14 +01:00
Stephen Kelly c021f59c1f cmMakefile: Store macro list in a vector not in a map.
The signature was computed (incorrectly) and stored as the map
value, but never used.  Remove it now.
2015-02-21 11:25:47 +01:00
Stephen Kelly 2d130896a0 cmMakefile: Fix list of macros generation.
It was broken by commit 7ee56f03 (Convert loops into the commonly
used pattern., 2015-01-17).
2015-02-21 11:25:26 +01:00
Stephen Kelly f19692342b cmFunctionCommand: Remove ineffectual code.
The name variable is never used.
2015-02-21 11:02:03 +01:00
Stephen Kelly 1116698a89 cmTarget: Don't needlessly clear vectors in the destructor.
This will be done anyway for us.
2015-02-21 11:00:14 +01:00
Kitware Robot 8804c3e0e4 CMake Nightly Date Stamp 2015-02-21 00:01:16 -05:00
Stephen Kelly bb9d71b4fe Replace loops with algorithms. 2015-02-20 21:36:58 +01:00
Stephen Kelly 4afe6c26c6 cmAlgorithms: Add cmReverseRange adaptor.
Use it to implement list(REVERSE).
2015-02-20 21:36:58 +01:00
Stephen Kelly a3a0a8c222 cmAlgorithms: Add cmFindNot algorithm. 2015-02-20 21:36:58 +01:00
Stephen Kelly 8c74a41ff3 cmRST: Replace two erase with a rotate and larger erase. 2015-02-20 21:36:58 +01:00
Stephen Kelly 61fe1919de cmAlgorithms: Update concept requirement to FowardIterator 2015-02-20 21:36:58 +01:00
Stephen Kelly 09d6125bfe cmAlgorithms: Move cmRotate out of 'implementation detail' namespace.
This should be generally usable in cmake.
2015-02-20 21:36:58 +01:00
Stephen Kelly 8ed6ecac3f cmRST: Move two algorithms beside each other. 2015-02-20 21:36:58 +01:00
Stephen Kelly dfe49c2056 cmRST: Use std::min where appropriate. 2015-02-20 21:36:58 +01:00
Stephen Kelly 21b0654ace cmGlobalGenerator: Convert set insert algorithm to vector algorithms.
Adjust test for new error output.
2015-02-20 21:36:57 +01:00
Stephen Kelly 416df93aa9 Convert some raw loops to cmWrap. 2015-02-20 21:36:57 +01:00
Stephen Kelly 37b88d348a cmAlgorithms: Add cmWrap.
Port some existing cmJoin to use it.

cmJoin is cumbersome to use in cases where the objective is to
somehow 'quote' each item and then join it with a separator.  In that
case, the joiner string is harder to read and reason about.  cmWrap
aims to solve that.

Provide an overload taking char wrappers to simplify the case
of surrounding every element in quotes without needing to escape
the quote character.
2015-02-20 21:35:58 +01:00
Stephen Kelly a281809384 Use cmJoin where possible. 2015-02-20 21:26:18 +01:00
Stephen Kelly 76207b0861 cmCacheManager: Replace loop with algorithm. 2015-02-20 21:26:18 +01:00
Stephen Kelly 60c3bb73e3 cmGlobalGenerator: Replace loop with algorithm. 2015-02-20 21:26:18 +01:00
Stephen Kelly 05fec779d3 cmTarget: Port loop to algorithm. 2015-02-20 21:26:17 +01:00
Nils Gladitz dc0f3fb44f CPackWIX: Explicitly list CPack WIX headers for IDE convenience. 2015-02-20 17:51:55 +01:00
André Klitzing 7b582d15ff CPack: Print output from codesign if signing fails 2015-02-20 08:17:53 -07:00
Brad King 57d4e1c776 Merge branch 'private-FindJsonCpp' into release 2015-02-20 08:33:03 -05:00
Brad King a576844263 FindJsonCpp: Drop new module due to upstream jsoncpp providing package
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>
2015-02-20 08:22:02 -05:00
Brad King c4c570f9cc Merge topic 'find-command-prefix-from-PATH'
ffc06c12 Teach find_(library|file|path) to get prefixes from PATH (#15370)
2015-02-20 08:10:50 -05:00
Brad King b7351d8e14 Merge topic 'cmake-gui-reset-generator-toolset-and-platform'
1ade687d cmake-gui: Reset generator platform and toolset on configure (#15411)
2015-02-20 08:10:48 -05:00
Kitware Robot 14713eebfb CMake Nightly Date Stamp 2015-02-20 00:01:16 -05:00
Brad King ffc06c1239 Teach find_(library|file|path) to get prefixes from PATH (#15370)
The find_package command already knows how to compute installation
prefixes from PATH.  Use the same approach to establish prefixes for
find_library, find_file, and find_path to use to look in directories
like "<prefix>/lib[/<arch>]" and "<prefix>/include" for libraries and
headers.  This will reduce the amount of configuration end users need to
do to establish a work environment rooted under a specific prefix.
2015-02-19 10:03:17 -05:00
Brad King 1ade687d8d cmake-gui: Reset generator platform and toolset on configure (#15411)
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.
2015-02-19 09:14:38 -05:00
Kitware Robot f7fc99cec6 CMake Nightly Date Stamp 2015-02-19 00:01:10 -05:00
Stephen Kelly 9c22576787 cmGlobalGenerator: Replace set::insert algorithm with cmRemoveDuplicates. 2015-02-19 00:59:19 +01:00
Stephen Kelly ee5bc006eb cmGeneratorTarget: Replace set insert algorithm with cmRemoveDuplicates. 2015-02-19 00:59:19 +01:00
Stephen Kelly b3a0c6e08f cmLocalGenerator: Convert loop to algorithm. 2015-02-19 00:59:19 +01:00
Stephen Kelly f20a4257f2 cmMakefile: Add flag to result and manipulate in place.
Rather than creating a string, manipulating it, and then
copying it to the result.
2015-02-18 23:57:59 +01:00
Stephen Kelly ee269f4f16 cmMakefile: Replace two loops with std::replace. 2015-02-18 23:45:19 +01:00
Stephen Kelly 470cff497b cmMakefile: Replace loop with composed algorithm. 2015-02-18 23:45:18 +01:00
Stephen Kelly e6ca1b8274 cmCTest: Convert loop to member insert. 2015-02-18 21:36:35 +01:00
Brad King 93a38a2abc Merge topic 'minor-cleanups'
6652afe6 CTest: Use clear instead of erase-all.
75661fdf cmListCommand: Move size variable out of loop.
10e53e23 cmAlgorithms: Add missing const to functors.
74906322 cmAlgorithms: Remove sort of already-sorted container.
2acd04c9 cmcmd: Remove some comment copy-pasta.
2d833232 cmCoreTryCompile: Remove variable assignment.
26602cf5 cmLocalGenerator: Move variable population inside of condition.
cfb84834 Update comment to match recent dashboard testing.
6010f936 Revert "cmGlobalGenerator: Fix value type pushed into autogens vector"
0550b9e3 Revert "Attempt to fix the compile of cmake on Sun CC."
1ee4721f Help: Fix formatting of command parameter.
62429a1e cmGlobalGenerator: Remove unneeded pointer check.
c697c1fa cmTarget: Remove template argument workaround.
2015-02-18 12:49:29 -05:00
Kitware Robot 4fb9e847c0 CMake Nightly Date Stamp 2015-02-18 00:01:09 -05:00
Stephen Kelly 6652afe669 CTest: Use clear instead of erase-all. 2015-02-17 20:18:59 +01:00
Stephen Kelly 75661fdfd9 cmListCommand: Move size variable out of loop.
Re-use it where possible in two instances.
2015-02-17 20:18:58 +01:00
Stephen Kelly 10e53e2308 cmAlgorithms: Add missing const to functors. 2015-02-17 20:18:57 +01:00
Stephen Kelly 7490632258 cmAlgorithms: Remove sort of already-sorted container.
The indices is populated by an increasing number.
2015-02-17 20:18:57 +01:00
Stephen Kelly 2acd04c966 cmcmd: Remove some comment copy-pasta. 2015-02-17 20:18:56 +01:00
Stephen Kelly 2d833232a3 cmCoreTryCompile: Remove variable assignment.
The variable is not a reference, and we return in the same scope
after assigning, so it has no effect.
2015-02-17 19:23:27 +01:00
Stephen Kelly 26602cf56c cmLocalGenerator: Move variable population inside of condition.
It is only used in the condition, so no need to look for uses
elsewhere when reading the code.
2015-02-17 19:21:36 +01:00
Stephen Kelly cfb8483412 Update comment to match recent dashboard testing. 2015-02-17 19:20:23 +01:00
Stephen Kelly 6010f93632 Revert "cmGlobalGenerator: Fix value type pushed into autogens vector"
This reverts commit ae6fc555a7.

Use the more-natural make_pair algorithm.  The compiler motivating
the need for this is not supported as a host anymore.
2015-02-17 19:19:06 +01:00
Stephen Kelly 0550b9e330 Revert "Attempt to fix the compile of cmake on Sun CC."
This reverts commit a573a85658.

The workaround is not needed on supported SolarisStudio compilers.
2015-02-17 19:18:12 +01:00
Stephen Kelly 62429a1e54 cmGlobalGenerator: Remove unneeded pointer check.
Deleting nullptr is ok.
2015-02-17 19:18:11 +01:00
Stephen Kelly c697c1fafe cmTarget: Remove template argument workaround.
Pre-C++98 compilers required that the template argument be
used in the function parameters.  Those compilers are no longer
supported as hosts, so drop the workaround.
2015-02-17 19:18:11 +01:00
Brad King 5c635fa624 Merge topic 'vs7-OutputDirectory'
fa8b30eb VS: Fix .vcproj and .vfproj file OutputDirectory generation
aa2ba121 VS: Use $(ConfigurationName) as CMAKE_CFG_INTDIR in VS 7, 8, 9
2015-02-17 10:09:13 -05:00
Kitware Robot 034f8e0bd9 CMake Nightly Date Stamp 2015-02-17 00:01:08 -05:00
Brad King fa8b30ebb5 VS: Fix .vcproj and .vfproj file OutputDirectory generation
Teach cmLocalVisualStudio7Generator to set 'OutputDirectory' using the
same method as is used to set the 'OutputFile' in the generated project
file.  Also, OutputDirectory only needs to be set for targets that run the
linker or librarian.  These two changes make the VS 7 OutputDirectory
consistent with what cmVisualStudio10TargetGenerator generates for OutDir.

Without this, since the VS Intel Fortran plugin for VS >= 10 still uses
the VS 7 .vfproj file format, when executing test VSGNUFortran using
Intel Fortran Compiler 15.xx, the following warning is issued just
before compilation:

  TargetPath(...) does not match the Linker's OutputFile property value (...).
  This may cause your project to build incorrectly.
  To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt)
  property values match the value specified in %(Link.OutputFile).

Subsequently, an error is reported during linking.

Inspired-by: Vincent Newsum <vynewsum@gmail.com>
2015-02-16 11:48:16 -05:00
Brad King aa2ba12164 VS: Use $(ConfigurationName) as CMAKE_CFG_INTDIR in VS 7, 8, 9
This will allow us to use a value other than just the config name
for the project OutputDirectory setting used for $(OutDir).

Also use $(ConfigurationName) instead of $(OutDir) for the link
directory configuration suffix since that is a hard-coded instance of
a use case for CMAKE_CFG_INTDIR.
2015-02-16 11:48:04 -05:00
Brad King ec1ec47193 Merge topic 'cmListCommand-algorithms'
116459d3 cmListCommand: Avoid needlessly erasing from vectors.
1c7c35c3 cmListCommand: Replace remove duplicates loop with algorithm.
cebeed24 cmAlgorithms: Add cmRemoveDuplicates algorithm.
3cfe7a4c cmListCommand: Implement REMOVE_ITEM in terms of cmRemoveMatching.
050958a3 cmAlgorithms: Add cmRemoveMatching algorithm.
a77af8f1 cmListCommand: Replace joining loop with cmJoin algorithm.
6a22e401 cmListCommand: Use cmRemoveIndices for REMOVE_AT subcommand.
0b5cf0da cmAlgorithms: Implement algorithm for removing indexes.
069f2440 cmListCommand: Convert loop to find algorithm.
67a26764 cmListCommand: Implement REVERSE subcommand with std::reverse.
1cecd3a5 cmListCommand: Use std::find algorithm for FIND subcommand.
2015-02-16 09:44:44 -05:00
Brad King 7747e1a7f6 Merge topic 'wix-product-fragment'
a2ccbffd CPackWIX: Extend the patching mechanism to allow adding content to <Product>.
2015-02-16 09:44:40 -05:00
Kitware Robot f724ab5e78 CMake Nightly Date Stamp 2015-02-16 00:01:09 -05:00
Stephen Kelly 116459d34f cmListCommand: Avoid needlessly erasing from vectors.
The entire vector will be destroyed at once at the end of the scope,
and the remove algorithms already give us the end of the range of
interesting values, so just use those sentinals.
2015-02-15 20:47:51 +01:00
Stephen Kelly 1c7c35c372 cmListCommand: Replace remove duplicates loop with algorithm. 2015-02-15 20:47:51 +01:00
Stephen Kelly cebeed2486 cmAlgorithms: Add cmRemoveDuplicates algorithm.
Start by creating a vector to hold a unique values of the input range.  We
expect that in most cases, there will be relatively few duplicates, so
reserving enough memory for a complete copy is worthwhile.  Unlike a solution
involving a std::set, this algorithm allocates all the memory it needs
in one go and in one place, so it is more cache friendly.

Populate the unique copy with a lower_bound insert algorithm and record the
indices of duplicates.  This is the same complexity as the std::set insert
algorithm, but without the need to allocate memory on the heap and other
disadvantages of std::set.

Remove the duplicates with the cmRemoveIndices algorithm.
2015-02-15 20:46:25 +01:00
Stephen Kelly 3cfe7a4ca8 cmListCommand: Implement REMOVE_ITEM in terms of cmRemoveMatching. 2015-02-15 19:56:09 +01:00
Stephen Kelly 050958a328 cmAlgorithms: Add cmRemoveMatching algorithm.
Implement it in terms of std::remove_if with a binary search through
a matching range.
2015-02-15 19:56:08 +01:00
Stephen Kelly a77af8f130 cmListCommand: Replace joining loop with cmJoin algorithm. 2015-02-15 19:56:07 +01:00
Stephen Kelly 6a22e40147 cmListCommand: Use cmRemoveIndices for REMOVE_AT subcommand.
Avoid repeatedly looping over the indices to process elements (even
without breaking out of the loop when the element is found).
2015-02-15 19:55:28 +01:00
Stephen Kelly 0b5cf0dabd cmAlgorithms: Implement algorithm for removing indexes.
Implement ContainerAlgorithms::RemoveN to remove N elements to the
end of a container by rotating.  The rotate is implemented in terms
of the efficient swap algorithm, optimized even more in the standard
library implementation when the compiler supports the rvalue-references
feature to move elements.  Implement cmRemoveN with a Range API
for completeness.

std::rotate in C++11 is specified to return an iterator, but
c++98 specifies it to return void.  libstdc++ 5.0 will be the first
version to have the correct return type.  Implement
ContainerAlgorithms::Rotate in terms of std::rotate and return the
correct iterator from it.  While std::rotate requires forward iterators,
 this workaround means cmRotate requires bidirectional iterators.  As
most of CMake uses random access iterators anyway, this should not
be a problem.

Implement cmRemoveIndices in terms of the RemoveN algorithm, such
that each element which is not removed is rotated only once.  This
can not use the cmRemoveN range-API algorithm because that would
require creating a new range, but the range must be taken by reference
and so it can't be a temporary.

These remove algorithms are not part of the STL and I couldn't find them
anywhere else either.
2015-02-15 19:04:31 +01:00
Stephen Kelly 069f2440c4 cmListCommand: Convert loop to find algorithm. 2015-02-15 19:04:30 +01:00
Stephen Kelly 67a26764b5 cmListCommand: Implement REVERSE subcommand with std::reverse. 2015-02-15 18:57:23 +01:00
Stephen Kelly 1cecd3a531 cmListCommand: Use std::find algorithm for FIND subcommand.
Use a ostringstream to account for the input being a variable of type
size_t as a result of using std::distance.  There is no single
format string which portably accepts a size_t.
2015-02-15 14:28:50 +01:00