Commit Graph

18430 Commits

Author SHA1 Message Date
Stephen Kelly 5067ae41b0 cmDefinitions: Externalize the Set logic. 2015-04-29 22:48:56 +02:00
Stephen Kelly 60200ca508 cmDefinitions: Add an Erase method. 2015-04-29 22:48:12 +02:00
Stephen Kelly b43c162e99 cmMakefile: Use the Internal class to enclose the VarStack.
Put knowledge of the implementation details in one place.
2015-04-29 22:48:12 +02:00
Brad King 036e449c66 Merge topic 'clean-up-cmDefinitions'
a3358fac cmDefinitions: Inline SetInternal method.
23370344 cmDefinitions: Remove unused Set return value.
b9f4dd39 cmDefinitions: Remove unused method.
2015-04-29 11:11:46 -04:00
Brad King 72e380fb12 Merge topic 'cmState-CurrentDirs'
46f6a5f4 cmState: Store the Current directories.
3a041c59 Introduce cmState::Snapshot.
ae6c8a9d cmState: Store the Source and Binary directories.
86f3cd0f cmMakefile: Require the localGenerator in the constructor.
a48aebcb cmLocalGenerator: Require a parent in the constructor.
e4c78b37 cmMakefile: Inline SetHome* methods into last remaining caller.
410f39a4 cmMakefile: Delegate storage of Home dirs to the cmake class.
2015-04-29 11:11:42 -04:00
Kitware Robot d1a74bba1b CMake Nightly Date Stamp 2015-04-29 00:01:05 -04:00
Stephen Kelly a3358faca1 cmDefinitions: Inline SetInternal method. 2015-04-29 00:18:13 +02:00
Stephen Kelly 2337034442 cmDefinitions: Remove unused Set return value. 2015-04-29 00:18:13 +02:00
Stephen Kelly b9f4dd39bb cmDefinitions: Remove unused method. 2015-04-29 00:17:38 +02:00
Brad King 9de73d7ee5 Merge topic 'include-early-optional-handling'
8d9f39f4 include: Ask for permission, rather than forgiveness.
2015-04-28 13:55:55 -04:00
Brad King c0989eaf2a Merge topic 'fix-osx-framework-detection'
c46490da cmSystemTools: Fix IsPathToFramework implementation (#15535)
2015-04-28 13:55:54 -04:00
Stephen Kelly 46f6a5f458 cmState: Store the Current directories. 2015-04-28 07:57:21 +02:00
Stephen Kelly 3a041c5949 Introduce cmState::Snapshot.
Create snapshots for buildsystem directories during configure time.

This class will be extended in follow up commits to snapshot
all values in the cmState.
2015-04-28 07:57:01 +02:00
Stephen Kelly ae6c8a9d68 cmState: Store the Source and Binary directories. 2015-04-28 07:50:57 +02:00
Stephen Kelly 86f3cd0f7e cmMakefile: Require the localGenerator in the constructor.
Move the contents of cmMakeile::SetLocalGenerator to the Initialize
method.
2015-04-28 07:50:57 +02:00
Stephen Kelly a48aebcb67 cmLocalGenerator: Require a parent in the constructor.
Pass the parent though cmGlobalGenerator::CreateLocalGenerator.

This will make it easy to initialize state scopes independent of
cmMakefile.
2015-04-28 07:50:52 +02:00
Stephen Kelly e4c78b37ce cmMakefile: Inline SetHome* methods into last remaining caller. 2015-04-28 07:50:02 +02:00
Stephen Kelly 410f39a43e cmMakefile: Delegate storage of Home dirs to the cmake class.
There is no need to duplicate these on every cmMakefile.
2015-04-28 07:50:01 +02:00
Kitware Robot 397b629860 CMake Nightly Date Stamp 2015-04-28 00:01:04 -04:00
Stephen Kelly 8d9f39f4c3 include: Ask for permission, rather than forgiveness.
Check that a non-optional file exists before attempting to include
it.  This makes more sense than relying on an error case deeper
within cmListFileCache.
2015-04-27 22:10:51 +02:00
Brad King c46490dad5 cmSystemTools: Fix IsPathToFramework implementation (#15535)
Use more reliable logic to detect if a path ends in ".framework".  The
old logic added by commit v2.4.0~791 (add better support for framework
linking, 2005-12-26) did not account for paths not ending in it at all.
With a 9-character path the logic and "npos == -1" happens to make the
old check pass.
2015-04-27 11:49:29 -04:00
Kitware Robot dd062b2b50 CMake Nightly Date Stamp 2015-04-27 00:01:11 -04:00
Kitware Robot 5cdd4c4323 CMake Nightly Date Stamp 2015-04-26 00:01:04 -04:00
Kitware Robot afc1f88c00 CMake Nightly Date Stamp 2015-04-25 00:01:04 -04:00
Kitware Robot 1f305902be CMake Nightly Date Stamp 2015-04-24 00:01:05 -04:00
Brad King ebb54e02c4 Merge topic 'cpack-deb-linitian-md5hash'
75b0e167 CPackDeb: Add basic package tests
fdfe4586 CPackDeb: Fix lintian md5sum file warning
2015-04-23 09:04:43 -04:00
Brad King ad247d82b1 Merge topic 'mingw-64'
c775072a cmGeneratorExpressionEvaluationFile: Add missing sys/types.h include
2015-04-23 09:04:37 -04:00
Brad King 195a724c57 Merge topic 'deterministic-CTest-tests'
b5b20d20 ctest: Treat ENV{CTEST_OUTPUT_ON_FAILURE} as a boolean
fcf9cf6c Tests: Make a CTest test deterministic.
2015-04-23 09:04:33 -04:00
Raffi Enficiaud fdfe4586a0 CPackDeb: Fix lintian md5sum file warning
Lintian warned about invalid md5sum file permissions.
2015-04-23 09:02:49 -04:00
Kitware Robot b229f40f07 CMake Nightly Date Stamp 2015-04-23 00:01:05 -04:00
Brad King df302bcc55 Merge topic 'autogen-no-rcc-stderr'
258ba828 QtAutogen: Process 'rcc --list' stdout and stderr separately (#15523)
acd4f01f cmQtAutoGenerators: Split CR stripping out to helper function
2015-04-22 11:16:33 -04:00
Brad King c775072ad5 cmGeneratorExpressionEvaluationFile: Add missing sys/types.h include
This is needed for 'mode_t', and on mingw-w64 in particular.  We added
use of 'mode_t' in commit v3.2.0-rc1~421^2 (file(GENERATE): Use
permissions of input file if present, 2014-07-22).
2015-04-22 09:59:51 -04:00
Brad King b5b20d2050 ctest: Treat ENV{CTEST_OUTPUT_ON_FAILURE} as a boolean
Having this variable in the environment should not be enough to activate
the behavior.  It must also not be set to a false value (or empty value).
2015-04-22 08:27:19 -04:00
Kitware Robot 6b229b4802 CMake Nightly Date Stamp 2015-04-22 00:01:05 -04:00
Brad King faede40b46 cmComputeLinkInformation: Reduce 'if' nesting in AddItem
Also add a comment explaining why interface libraries still get a link
item.
2015-04-21 14:03:02 -04:00
Brad King 5a5ef00106 Merge topic 'clean-up-cmMakefile'
8dc3a67c cmMakefile: Out-of-line the directory methods.
0f3c8cfa cmMakefile: Use method abstraction to access directories.
b288a997 cmMakefile: Rename SetStart* directory API to SetCurrent*.
932d53bc cmMakefile: Remove redundant method duplication.
32b8f03a cmMakefile: Port users of GetStart* methods to new names.
54d6a918 cmMakefile: Rename GetCurrent{Output,Binary}Directory.
55d80d0a cmMakefile: Rename GetCurrent{,Source}Directory.
b23cf06f cmake: Remove redundant start directories.
fcf246ac cmMakefile: Populate Home directories on initialize.
8878bea7 cmake: Initialize Home directories on cmake for find-package mode.
044dc815 Use the Home directories from the cmake class where intended.
d67e8f24 cmake: Fix directory used to find the cache
1ea085d1 cmMakefile: Initialize dir definitions early.
f034bb2f Remove redundant calls to MakeStartDirectoriesCurrent.
3a68c323 cmMakefile: Fix wrong parameter names.
2015-04-21 09:42:07 -04:00
Stephen Kelly 8dc3a67c9c cmMakefile: Out-of-line the directory methods. 2015-04-21 09:41:27 -04:00
Stephen Kelly 0f3c8cfa96 cmMakefile: Use method abstraction to access directories. 2015-04-21 09:41:27 -04:00
Brad King 81c01d4a34 Merge topic 'disable-cmMakefile-copy'
80909041 cmMakefile: Disable copy constructor.
f3af9517 CPack: Don't copy cmMakefile. Just push a scope instead.
2015-04-21 09:39:53 -04:00
Brad King 258ba82882 QtAutogen: Process 'rcc --list' stdout and stderr separately (#15523)
The stderr may have warning messages.  We should not treat these lines
as resource files.  However, we must still recognize error message lines
for missing resource files that may be generated.

Extend the QtAutogen test to cover a generated resource as the only one
listed in a .qrc file.  This causes 'rcc --list' to print a warning to
stderr that we now intend to ignore.
2015-04-21 09:33:19 -04:00
Brad King acd4f01fd8 cmQtAutoGenerators: Split CR stripping out to helper function 2015-04-21 09:05:12 -04:00
Domen Vrankar c8375e15eb CPackDeb: Refactor package variable lookup by generator
Preparation for per component variables.
Patch makes sure we know which variables
will be set for per component generator
and also prevents accidental overflows
of variable values between components.
2015-04-21 08:47:18 -04:00
Brad King b2289ff654 Merge topic 'cmSystemTools-RunSingleCommand-stderr'
356c26eb cmSystemTools: Teach RunSingleCommand to separate stdout and stderr
2015-04-21 08:45:01 -04:00
Kitware Robot 17b0526ee7 CMake Nightly Date Stamp 2015-04-21 00:01:06 -04:00
Stephen Kelly 8090904198 cmMakefile: Disable copy constructor.
It is no longer necessary to be able to copy it.  Additionally, this
gives us one less reason to copy cmTarget.
2015-04-21 00:26:37 +02:00
Stephen Kelly f3af9517ff CPack: Don't copy cmMakefile. Just push a scope instead. 2015-04-21 00:21:53 +02:00
Stephen Kelly b288a997e9 cmMakefile: Rename SetStart* directory API to SetCurrent*. 2015-04-21 00:15:20 +02:00
Stephen Kelly 932d53bc02 cmMakefile: Remove redundant method duplication. 2015-04-21 00:15:20 +02:00
Stephen Kelly 32b8f03acc cmMakefile: Port users of GetStart* methods to new names. 2015-04-21 00:15:20 +02:00
Stephen Kelly 54d6a9187f cmMakefile: Rename GetCurrent{Output,Binary}Directory.
Match names used in CMake code.
2015-04-21 00:12:52 +02:00
Stephen Kelly 55d80d0a85 cmMakefile: Rename GetCurrent{,Source}Directory.
Match the names used in cmake code.
2015-04-21 00:12:52 +02:00
Stephen Kelly b23cf06f86 cmake: Remove redundant start directories.
They are maintained as containing the same content as the 'home'
directories, but they are never read from.

Fix some comments and help strings which confused the two by
name. They actually mean what is called CMAKE_SOURCE_DIR in
cmake code.
2015-04-21 00:12:51 +02:00
Stephen Kelly fcf246acd1 cmMakefile: Populate Home directories on initialize. 2015-04-21 00:12:51 +02:00
Stephen Kelly 8878bea7b6 cmake: Initialize Home directories on cmake for find-package mode.
The Home directories can be used to initialize cmMakefile directories
internally.
2015-04-21 00:12:51 +02:00
Stephen Kelly 044dc81504 Use the Home directories from the cmake class where intended. 2015-04-21 00:12:51 +02:00
Stephen Kelly d67e8f24b8 cmake: Fix directory used to find the cache
The start and home directories are the same, but the intent of the
code here is to use what is currently called the HomeOutput directory.
2015-04-21 00:12:51 +02:00
Stephen Kelly 1ea085d1b6 cmMakefile: Initialize dir definitions early. 2015-04-21 00:12:51 +02:00
Stephen Kelly f034bb2f54 Remove redundant calls to MakeStartDirectoriesCurrent.
The SetStart{,Output}Directory methods do what it does.
2015-04-21 00:12:51 +02:00
Stephen Kelly 3a68c323ba cmMakefile: Fix wrong parameter names. 2015-04-21 00:12:51 +02:00
Brad King 356c26ebdf cmSystemTools: Teach RunSingleCommand to separate stdout and stderr
Extend the RunSingleCommand signature to capture stdout and stderr
separately.  Allow both to be captured to the same std::string
to preserve existing behavior.  Update all call sites to do this
so that this refactoring does not introduce functional changes.
2015-04-20 15:47:50 -04:00
Brad King f438cd3731 Merge topic 'clean-up-ReadListFile'
05245b42 cmMakefile: Move some preamble out of the Internal method.
6e23a4bd cmMakefile: Remove always-null first parameter to ReadListFile.
d21ebcb2 cmMakefile: Swap parameters of calls to ReadListFile.
95a27267 cmMakefile: Extract conditional code to caller.
7d248547 cmMakefile: Remove intermediate variable.
9db15954 cmMakefile: Move condition to the only calling context where it is true.
5d4480a8 cmMakefile: Populate CMAKE_PARENT_LIST_FILE in callers.
3a8ac242 cmMakefile: Collapse nested conditional.
5947d9b0 cmMakefile: Convert filenametoread into a std::string.
e2d0e0fb cmMakefile: Remove intermediate variable.
3a1ad171 cmMakefile: Combine duplicate condition.
f0dae032 cmMakefile: Re-order independent statements.
08da8742 cmMakefile: Split a conditional.
3dc4fe02 cmMakefile: Re-order independent variable setting.
e4f8f1f1 cmMakefile: Remove intermediate variable.
2d6121a9 cmMakefile: Remove use of intermediate variable.
...
2015-04-20 14:37:05 -04:00
Brad King 5e0e65c189 Merge topic 'add-GreenHills-MULTI-generator'
66b641f4 Help: Add notes for topic 'add-GreenHills-MULTI-generator'
48004d9d Add a 'Green Hills MULTI' generator on Windows
051d8be1 cmLocalGenerator: Constify some cmTarget and cmGeneratorTarget arguments
2015-04-20 14:02:52 -04:00
Brad King da65528c36 Merge topic 'stable-xcode-projects'
6693590f Xcode: Refine quoting rules for Strings
a6331eb8 Xcode: Let PrintComment decide if the comment is non-empty
6e8952c1 Xcode: PrintComment will prepend a whitespace itself before the comment
4bd2544b Xcode: Do not add whitespace after attribute group opening brace
5cb4c838 Xcode: Properly indent PBXFileReference and PBXBuildFile
a723427b Xcode: Remove extra space in PBXProject comment
2fe8bca5 Xcode: Add comment after root object
2e0e205e Xcode: Indent using tabs
7b68c8df Xcode: Sort Xcode objects by Id
2015-04-20 14:02:48 -04:00
Geoff Viola 48004d9dbe Add a 'Green Hills MULTI' generator on Windows
Green Hills MULTI is an IDE for embedded real-time systems.  The IDE's
product page can be found here:

 http://www.ghs.com/products/MULTI_IDE.html

It supports cross compiling on ARM, Intel x86, and other architectures
with various operating systems.  The IDE exists on Linux and Windows
host systems, but CMake will currently only generate the project files
on Windows host systems.
2015-04-20 13:55:40 -04:00
Kitware Robot 73ff279d07 CMake Nightly Date Stamp 2015-04-20 00:01:04 -04:00
Kitware Robot 4c00a37289 CMake Nightly Date Stamp 2015-04-19 00:01:06 -04:00
Stephen Kelly 05245b4229 cmMakefile: Move some preamble out of the Internal method. 2015-04-18 15:31:18 +02:00
Stephen Kelly 6e23a4bddd cmMakefile: Remove always-null first parameter to ReadListFile. 2015-04-18 15:31:18 +02:00
Stephen Kelly d21ebcb244 cmMakefile: Swap parameters of calls to ReadListFile.
The version with a null first parameter is now equivalent.
2015-04-18 15:31:18 +02:00
Stephen Kelly 95a27267da cmMakefile: Extract conditional code to caller. 2015-04-18 15:31:17 +02:00
Stephen Kelly 7d24854736 cmMakefile: Remove intermediate variable. 2015-04-18 15:31:17 +02:00
Stephen Kelly 9db1595410 cmMakefile: Move condition to the only calling context where it is true.
Call the Internal method with equivalent parameters, passing a null first
argument.

A duplicate path computation exists inside the external_in condition now,
but that is harmless at this point.
2015-04-18 15:31:11 +02:00
Stephen Kelly 5d4480a8c7 cmMakefile: Populate CMAKE_PARENT_LIST_FILE in callers.
Because all external callers of this method pass a null first
parameter, this change has no effect for them.

This also makes it obvious that the CMAKE_PARENT_LIST_FILE is set to
the name of the file being read itself for CMakeLists.txt files,
which may not make any sense.
2015-04-18 15:29:20 +02:00
Stephen Kelly 3a8ac2423e cmMakefile: Collapse nested conditional. 2015-04-18 15:29:19 +02:00
Stephen Kelly 5947d9b031 cmMakefile: Convert filenametoread into a std::string.
Remove other intermediate variables.
2015-04-18 15:29:19 +02:00
Stephen Kelly e2d0e0fbeb cmMakefile: Remove intermediate variable. 2015-04-18 15:29:19 +02:00
Stephen Kelly 3a1ad1713f cmMakefile: Combine duplicate condition. 2015-04-18 15:29:19 +02:00
Stephen Kelly f0dae032ee cmMakefile: Re-order independent statements. 2015-04-18 15:29:19 +02:00
Stephen Kelly 08da874270 cmMakefile: Split a conditional. 2015-04-18 15:29:19 +02:00
Stephen Kelly 3dc4fe02e6 cmMakefile: Re-order independent variable setting. 2015-04-18 15:29:19 +02:00
Stephen Kelly e4f8f1f1b7 cmMakefile: Remove intermediate variable. 2015-04-18 15:29:18 +02:00
Stephen Kelly 2d6121a9a7 cmMakefile: Remove use of intermediate variable. 2015-04-18 15:29:18 +02:00
Stephen Kelly bdd4c5f5ba cmMakefile: Move variable definition above a condition. 2015-04-18 15:29:18 +02:00
Stephen Kelly 524ce89542 cmMakefile: Change condition to its equivalent.
This makes it easier to reason about follow-up commits.
2015-04-18 15:29:18 +02:00
Stephen Kelly 813cd719c4 cmMakefile: Determine the file to read before calling Internal. 2015-04-18 15:29:18 +02:00
Stephen Kelly 5c201f1ee6 cmMakefile: Remove duplication in ReadListFile. 2015-04-18 15:29:18 +02:00
Stephen Kelly 0d9555779d cmMakefile: Delegate ListFile reading to internal method. 2015-04-18 15:29:17 +02:00
Stephen Kelly 846608f267 cmMakefile: Remove useless condition. 2015-04-18 15:29:17 +02:00
Stephen Kelly a2f2aeee2f cmMakefile: Add wrapper for reading listfiles which have an origin.
Such files are delegates from other files, and so they set the
CMAKE_PARENT_LIST_FILE to the originator.  They also may set a
policy scope.
2015-04-18 15:29:17 +02:00
Stephen Kelly 68f791cd06 cmMakefile: Add a method for processing buildsystem files.
These are different from other ListFiles in that a project() command is
required if it is top-level.
2015-04-18 15:29:17 +02:00
Stephen Kelly 5bb4248a80 cmMakefile: Remove fullPath parameter from ReadListFile.
There is no reason for this to be a responsibility of
ReadListFile.  Additionally, the only user of it already computes
it itself.
2015-04-18 15:29:17 +02:00
Stephen Kelly fc7ab8874b CPack: Read the config listfile in the normal way.
This is a unique function call in CMake, and it was likely a
programming error when introduced.  All other similar calls to
ReadListFile use a null first paramter.

The effect of this patch is to no-longer define CMAKE_PARENT_LIST_FILE
to the config file itself while evaluating it.

The ReadListFile method also no longer hits a condition that it uses
CollapseFullPath on the input file.  However, as cpack does not
set the StartDirectory anyway, this has no effect. See bug 15522.
2015-04-18 15:26:12 +02:00
Kitware Robot a0bc4a999d CMake Nightly Date Stamp 2015-04-18 00:01:06 -04:00
Gregor Jasny 6693590f81 Xcode: Refine quoting rules for Strings
$ and . do not need to be quoted, but brackets and * must be to
not confuse the Xcode parser.
2015-04-17 21:50:05 +02:00
Gregor Jasny a6331eb851 Xcode: Let PrintComment decide if the comment is non-empty 2015-04-17 21:50:05 +02:00
Gregor Jasny 6e8952c193 Xcode: PrintComment will prepend a whitespace itself before the comment 2015-04-17 21:50:05 +02:00
Gregor Jasny 4bd2544b25 Xcode: Do not add whitespace after attribute group opening brace
This suppresses the extra space that would be generated if the
separator is a space. The conditional block is also used in this
form elsewhere.
2015-04-17 21:50:04 +02:00
Gregor Jasny 5cb4c8380d Xcode: Properly indent PBXFileReference and PBXBuildFile
Move indent factor change behind indention of start-of-line.
2015-04-17 21:50:04 +02:00
Gregor Jasny a723427b64 Xcode: Remove extra space in PBXProject comment 2015-04-17 21:50:04 +02:00
Gregor Jasny 2fe8bca580 Xcode: Add comment after root object 2015-04-17 21:50:04 +02:00
Gregor Jasny 2e0e205e28 Xcode: Indent using tabs 2015-04-17 21:50:04 +02:00
Gregor Jasny 7b68c8df6b Xcode: Sort Xcode objects by Id
this patch series aims to minimize deltas between the CMake Xcode
generator and Xcode itself. It was started by the observation that
if one makes any change to the project within Xcode (e.g. to see
how a variable is called internally) the user cannot diff the CMake
project and the one stored by Xcode afterwards.

Xcode keeps the objects ordered by the object id.
Because cmake stores them into an unordered container
at creation time they must be sorted before writing the
pbxproj file.

I tested this series with Xcode 6.3 and Xcode 3.2. Both show a
reduced diff after this series was applied.
2015-04-17 21:49:05 +02:00
Brad King 1f1b62b0e2 Merge topic 'cpack-one-component-only'
ed0b0630 CPack: Fix single component packaging
2015-04-17 10:50:15 -04:00
Brad King 9efee16a7a Merge topic 'ninja-autogen'
e8fdd5f1 QtAutogen: Workaround rcc CRCRLF newlines on Windows (#15459)
15f1a6b4 Tests/QtAutogen: Avoid touching files in the source tree
3f7c7c65 Tests/QtAutogen: Help Qt5Autogen test find Qt5 on Windows
26b5cc5e Tests/QtAutogen: Enable per-config source tests when possible
45566408 Tests/QtAutogen: Require CMake 3.1 to set policies everywhere
2015-04-17 10:50:13 -04:00
Kitware Robot a4d201a747 CMake Nightly Date Stamp 2015-04-17 00:01:05 -04:00
Raffi Enficiaud ed0b063085 CPack: Fix single component packaging
Refine logic added in commit 0ffd3534 (CPack single component packaging,
2015-04-02).  Component packaging should be enabled if either at least
one component or one group is set and should not require both.
2015-04-16 16:29:33 -04:00
Brad King e8fdd5f12a QtAutogen: Workaround rcc CRCRLF newlines on Windows (#15459)
The 'rcc --list' operation may print newlines of the form CRCRLF,
so strip any trailing CR characters found on each line.

Update the Tests/QtAutogen test to use a resource named in a
subdirectory.  This causes 'rcc --list' to display a blank line
and tests that it is correctly filtered out.
2015-04-16 15:10:40 -04:00
Brad King 2ee128d9c8 Merge topic 'vs10-no-macros'
885ab9ab VS: Drop reload macros for VS >= 10 (#11258,#14680)
2015-04-16 09:58:50 -04:00
Brad King ab033b0789 Merge topic 'vs70-deprecate'
7b8e7c4a Deprecate Visual Studio 7 generator (.NET 2002)
2015-04-16 09:58:48 -04:00
Brad King 5a45497fc1 Merge topic 'vs6-deprecate'
85c2626b Deprecate Visual Studio 6 generator
2015-04-16 09:58:45 -04:00
Kitware Robot 532644ea14 CMake Nightly Date Stamp 2015-04-16 00:01:04 -04:00
Brad King 8469b6f694 Merge topic 'port-global-properties-to-cmState'
5d056c0d Port Global property interaction to cmState.
de722d7d Move property initialization to cmState.
9b5f80a8 Move global properties to cmState.
0076b5d8 cmake: Remove the happy global property scope pattern.
24b7f31d cmake: Remove unused cmCommand methods.
0aec4913 Port cmCommand consumers to cmState.
96f8c5f9 cmState: Move cmCommand-related methods from cmake class.
97e53ebb cmake: Simplify command clean up loop.
1e738bcf cmake: Simplify RemoveUnscriptableCommands algorithm.
62854e99 cmState: Move try_compile state from cmake class.
db8425be cmake: Get enabled languages from cmState.
74de9a73 cmGlobalGenerator: Delegate storage of enabled languages to cmState.
b159bff7 Move property definition to cmState.
2015-04-15 11:46:17 -04:00
Brad King fc579b91e0 Merge topic 'doc-ninja-non-experimental'
9ac05683 Ninja: Drop 'experimental' label in documentation
2015-04-15 11:46:12 -04:00
Stephen Kelly 5d056c0dd8 Port Global property interaction to cmState. 2015-04-15 11:43:50 -04:00
Stephen Kelly de722d7d63 Move property initialization to cmState. 2015-04-15 11:43:50 -04:00
Stephen Kelly 9b5f80a83c Move global properties to cmState. 2015-04-15 11:43:50 -04:00
Stephen Kelly 0076b5d834 cmake: Remove the happy global property scope pattern.
Global properties are already global in scope, so remove the
overload for specifying it and port users of the API.

The call from cmMakefile::GetProperty can be simplified because
the scope is only used during chaining, and there is no further
chaining after processing global properties.
2015-04-15 11:43:50 -04:00
Stephen Kelly 24b7f31d3a cmake: Remove unused cmCommand methods. 2015-04-15 11:43:50 -04:00
Stephen Kelly 0aec491328 Port cmCommand consumers to cmState. 2015-04-15 11:43:49 -04:00
Brad King 885ab9ab37 VS: Drop reload macros for VS >= 10 (#11258,#14680)
We never implemented them for VS 11 (2012), 12 (2013), or 14 (2015).
For VS 10 (2010) the reload macro does not work correctly when run from
inside a build launched through the IDE because stopping the build kills
the CMake that is driving the reload.  Fortunately VS >= 10 know how to
reload the whole solution anyway.
2015-04-15 09:58:42 -04:00
Brad King 7b8e7c4ac3 Deprecate Visual Studio 7 generator (.NET 2002)
Update documentation to mark the generator deprecated.  Add a warning at
the end of generation plus an option to turn off the warning.
2015-04-15 09:21:24 -04:00
Brad King 85c2626bab Deprecate Visual Studio 6 generator
Update documentation to mark the generator deprecated.  Add a warning at
the end of generation plus an option to turn off the warning.
2015-04-15 09:08:57 -04:00
Kitware Robot ff742f6823 CMake Nightly Date Stamp 2015-04-15 00:01:05 -04:00
Brad King 9ac0568390 Ninja: Drop 'experimental' label in documentation
This generator is no longer experimental and has been fairly
mature for several releases already.
2015-04-14 13:14:50 -04:00
Kitware Robot cdc53b62c2 CMake Nightly Date Stamp 2015-04-14 00:01:06 -04:00
Stephen Kelly 96f8c5f9a3 cmState: Move cmCommand-related methods from cmake class. 2015-04-13 21:12:14 +02:00
Stephen Kelly 97e53ebb3c cmake: Simplify command clean up loop. 2015-04-13 21:11:23 +02:00
Stephen Kelly 1e738bcf9c cmake: Simplify RemoveUnscriptableCommands algorithm.
Remove obsolete RemoveCommand method.
2015-04-13 21:10:19 +02:00
Stephen Kelly 62854e9966 cmState: Move try_compile state from cmake class. 2015-04-13 20:27:36 +02:00
Stephen Kelly db8425be18 cmake: Get enabled languages from cmState.
The check for a global generator is redundant - the enabled
languages are only populated by the global generator.
2015-04-13 20:27:36 +02:00
Stephen Kelly 74de9a734c cmGlobalGenerator: Delegate storage of enabled languages to cmState. 2015-04-13 20:19:58 +02:00
Stephen Kelly b159bff732 Move property definition to cmState. 2015-04-13 20:13:13 +02:00
Brad King 62c5e6f1a1 Merge topic 'introduce-cmState'
f081c5bd cmState: Move CacheEntryType enum from cmCacheManager.
f71fdf0e cmMakefile: Remove unused CacheManager accessor.
ff7169a0 Port to cmState.
a6b1ad13 Introduce cmState class.
2015-04-13 11:45:02 -04:00
Stephen Kelly f081c5bddd cmState: Move CacheEntryType enum from cmCacheManager. 2015-04-13 11:44:16 -04:00
Stephen Kelly f71fdf0ec8 cmMakefile: Remove unused CacheManager accessor.
Remove unneeded friend declarations from cmCacheManager.
2015-04-13 11:44:15 -04:00
Stephen Kelly ff7169a03c Port to cmState. 2015-04-13 11:44:15 -04:00
Stephen Kelly a6b1ad1309 Introduce cmState class.
At this point, it is an interface to the cache.  It will be extended
to be a universal interface for access to and manipulation of
configuration-time data (defintions, properties on targets,
directories, source files etc).

This will allow porting all command implementations away
from the cmMakefile and cmTarget classes, and result in something
more-purely related to configuration-time processing of cmake
commands.  That should serve at least the following goals:

 * Split the CMake implementation more definitively into three
   stages: Configuration, computation and generation, and be able to
   implement each optimally for memory access patterns etc.
 * Make better IDE integration possible by making more configuration
   data available.
 * Make it possiblte to use a smaller library than CMakeLib.a in
   cpack and ctest, resulting in smaller executables.
 * Make it possible to run the configure step multiple times in
   the same CMake run (#14539).

Manage its lifetime in the cmake class, and add a convenience accessor
to cmMakefile.
2015-04-13 11:44:14 -04:00
Brad King 92d6179893 Merge topic 'cmake-cleanups'
07d44d63 cmake: Remove confusing duplication.
ea819b29 cmMakefile: Remove unused method.
6ad86c7f cmMakefile: Remove bad comment.
fca2b542 cmMakefile: Internalize setting of CMakeInstance on Properties.
7bb4e3db cmMakefile: Out-of-line Home directory accessors.
6241253a cmake: Out-of-line Home and Start directory methods.
0ee3ccb3 cmake: Fix variable name bugs.
57dd094e Use vector, not list for cmCommand storage.
6deb43e6 Remove some files which do not need to be in BootstrapCommands.
ecdb1b3b Add some missing includes.
04b307b9 cmake: Simplify CommandExists method.
0f1f324b cmake: Rename oddly named variables.
275185ac cmake: Constify GetCommand method.
c57f086a cmake: Don't lower-case a string needlessly.
23368c9b cmake: Use make_pair instead of Foo::value_type.
14c70b8c cmake: out-of-line try compile state methods.
...
2015-04-13 11:38:20 -04:00
Brad King 91d5261b58 CMake 3.2.2 2015-04-13 09:09:42 -04:00
Brad King e0adfe6112 Merge topic 'custom-command-multiple-outputs'
9660a3cc Makefile: Fix multiple custom command outputs with one missing
5c08e255 KWSys SystemTools: Teach Touch with !create to succeed on missing file
2015-04-13 09:06:07 -04:00
Brad King 1862b39868 Merge topic 'cmake-G-print-generators'
588dcb33 cmake: Provide guidance when an invalid -G option is given
2015-04-13 09:05:16 -04:00
Brad King bf5028f88d Merge topic 'c-locale-messages'
a198839a CTest: Fix locale used for VCS updates
2015-04-13 09:05:12 -04:00
Brad King 2cf5415d9f Merge topic 'update-kwsys'
e5388583 Merge branch 'upstream-kwsys' into update-kwsys
d34d5a37 KWSys 2015-04-10 (69bccf2e)
2015-04-13 09:05:06 -04:00
Brad King e538858349 Merge branch 'upstream-kwsys' into update-kwsys 2015-04-13 09:01:59 -04:00
Nils Gladitz a198839a7b CTest: Fix locale used for VCS updates
6a661f0603 fixed the
locale used for message output but at the same time broke the locale
used for filename encodings.

This commit preserves LC_CTYPE in the presence of LC_ALL.
2015-04-13 08:59:34 -04:00
Kitware Robot 74c8b92844 CMake Nightly Date Stamp 2015-04-13 00:01:04 -04:00
Stephen Kelly 07d44d638b cmake: Remove confusing duplication. 2015-04-12 23:10:45 +02:00
Stephen Kelly ea819b29f8 cmMakefile: Remove unused method. 2015-04-12 23:10:45 +02:00
Stephen Kelly 6ad86c7fc4 cmMakefile: Remove bad comment. 2015-04-12 23:10:45 +02:00
Stephen Kelly fca2b542b4 cmMakefile: Internalize setting of CMakeInstance on Properties. 2015-04-12 23:10:45 +02:00
Stephen Kelly 7bb4e3db06 cmMakefile: Out-of-line Home directory accessors. 2015-04-12 23:10:44 +02:00
Stephen Kelly 6241253a4b cmake: Out-of-line Home and Start directory methods. 2015-04-12 23:10:44 +02:00
Stephen Kelly 0ee3ccb3b0 cmake: Fix variable name bugs. 2015-04-12 23:10:44 +02:00
Stephen Kelly 57dd094ede Use vector, not list for cmCommand storage. 2015-04-12 20:09:47 +02:00
Stephen Kelly 6deb43e6c8 Remove some files which do not need to be in BootstrapCommands. 2015-04-12 20:09:31 +02:00
Stephen Kelly ecdb1b3bba Add some missing includes. 2015-04-12 20:09:25 +02:00
Stephen Kelly 04b307b961 cmake: Simplify CommandExists method. 2015-04-12 20:08:49 +02:00
Stephen Kelly 0f1f324b0d cmake: Rename oddly named variables. 2015-04-12 20:08:49 +02:00
Stephen Kelly 275185ac2b cmake: Constify GetCommand method. 2015-04-12 20:08:49 +02:00
Stephen Kelly c57f086a81 cmake: Don't lower-case a string needlessly. 2015-04-12 20:08:48 +02:00
Stephen Kelly 23368c9b83 cmake: Use make_pair instead of Foo::value_type.
It works with all supported compilers.
2015-04-12 20:08:48 +02:00
Stephen Kelly 14c70b8c58 cmake: out-of-line try compile state methods. 2015-04-12 20:08:48 +02:00
Stephen Kelly 6ed19e615b cmake: Remove duplicate condition. 2015-04-12 20:08:47 +02:00
Stephen Kelly ade20b433b cmake: Remove DebugConfigs member.
It adds needless complexity to global property handling.
2015-04-12 20:08:47 +02:00
Stephen Kelly 7450a2c6ed cmake: Remove method with no external users.
Port internal users to access the member.
2015-04-12 20:08:46 +02:00
Stephen Kelly 8c13d7709b cmake: Don't set the CMakeInstance on the Properties member.
There is no need, as global properties have nowhere to chain up
to.
2015-04-12 20:08:45 +02:00
Stephen Kelly 55ecd818f6 cmGlobalGenerator: Store languages as vector, not map.
The second component of the map is never used.
2015-04-12 20:08:42 +02:00
Kitware Robot e9e417b57c CMake Nightly Date Stamp 2015-04-12 00:01:04 -04:00
Kitware Robot 18b58b618c CMake Nightly Date Stamp 2015-04-11 00:01:13 -04:00
Brad King 74337b87ac Merge branch 'custom-command-multiple-outputs' into release 2015-04-10 16:27:55 -04:00
Brad King 9660a3ccea Makefile: Fix multiple custom command outputs with one missing
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>
2015-04-10 16:27:42 -04:00
Gerald Combs 588dcb33b7 cmake: Provide guidance when an invalid -G option is given
Print a list of generators if no generator or an invalid one is
supplied.

Signed-off-by: Gerald Combs <gerald@wireshark.org>
2015-04-10 15:14:34 -04:00
Brad King 5c08e2559c KWSys SystemTools: Teach Touch with !create to succeed on missing file 2015-04-10 12:51:10 -04:00
Nils Gladitz d2cc580704 cmake: Teach "-E tar" command a "--format=" option
Allows specifying a libarchive defined archive format currently restricted to
7zip, gnutar, pax, paxr and zip.

The default is "paxr" (pax restricted).
2015-04-10 08:32:31 -04:00
Kitware Robot a74d558d10 CMake Nightly Date Stamp 2015-04-10 00:01:05 -04:00
Brad King 26d6c095d6 Merge topic 'refactor-cache-api'
ba404938 cmCacheManager: Port consumers to non-iterator API.
f3922a9a Port QtDialog to non-iterator cache API.
3e6a76e4 Port CursesDialog to non-iterator cache API.
9e641567 cmMakefile: Port away from CacheEntry.Initialized.
1e2dbfce cmCacheManager: Add non-iterator-based API.
60a62a91 cmCacheManager: Return a C string from GetValue.
77f2807c cmCacheManager: Rename GetCacheValue to GetInitializedCacheValue.
14973054 Add API for cache loading, deleting and saving to the cmake class.
1f2c12eb cmMakefile: Remove cache version accessors.
97c50a8d cmMakefile: Simplify GetDefinitions implementation.
2015-04-09 11:32:36 -04:00
Brad King 81f627d53b Merge topic 'cmake-command-line-help-vs-arch'
1e384337 cmake: Show in --help how to select VS target platform (#15422)
2015-04-09 11:32:34 -04:00
Brad King 1a1bdbfd87 Merge topic 'link-implicit-libs-full-path'
882f48e5 Link libraries by full path even in implicit directories
318cd370 Help: Add link target for Find Modules section of cmake-developer.7
1535dcd8 Tests: Teach RunCMake to optionally merge command output to stdout
2015-04-09 11:32:31 -04:00
Brad King 882f48e5ba Link libraries by full path even in implicit directories
When CMP0003 was first introduced we wanted to link all libraries by
full path.  However, some projects had problems on platforms where
find_library would find /usr/lib/libfoo.so when the project really
wanted to link to /usr/lib/<arch>/libfoo.so and had been working by
accident because pre-CMP0003 behavior used -lfoo to link.

We first tried to address that in commit v2.6.0~440 (Teach find_library
to avoid returning library paths in system directories, 2008-01-23) by
returning just "foo" for libraries in implicit link directories.  This
caused problems for projects expecting find_library to always return a
full path.  We ended up using the solution in commit v2.6.0~366 (...
switch library paths found in implicit link directories to use -l,
2008-01-31).  However, the special case for libraries in implicit link
directories has also proven problematic and confusing.

Introduce policy CMP0060 to switch to linking all libraries by full path
even if they are in implicit link directories.  Explain in the policy
documentation the factors that led to the original approach and now to
this approach.
2015-04-09 11:29:18 -04:00
Geoff Viola 051d8be17f cmLocalGenerator: Constify some cmTarget and cmGeneratorTarget arguments 2015-04-09 10:38:31 -04:00
Kitware Robot 3049951b62 CMake Nightly Date Stamp 2015-04-09 00:01:05 -04:00
Stephen Kelly ba404938a2 cmCacheManager: Port consumers to non-iterator API.
This simplifies reasoning about the follow-up commit which ports
away from cmCacheManager to a class with the same method names.
2015-04-08 18:47:00 +02:00
Stephen Kelly f3922a9a5b Port QtDialog to non-iterator cache API. 2015-04-08 18:47:00 +02:00
Stephen Kelly 3e6a76e48b Port CursesDialog to non-iterator cache API. 2015-04-08 18:47:00 +02:00
Stephen Kelly 9e64156725 cmMakefile: Port away from CacheEntry.Initialized.
The API has no other external users.
2015-04-08 18:47:00 +02:00
Stephen Kelly 1e2dbfce37 cmCacheManager: Add non-iterator-based API.
The iterator pattern is an unusual one for CMake, and it hinders
refactoring all configuration-time data manipulation into a
single class.
2015-04-08 18:47:00 +02:00
Stephen Kelly 60a62a91c4 cmCacheManager: Return a C string from GetValue.
This is for consistency with other CMake access interfaces such as
definitions and properties which use a null value as a 'not present'
value.  It is source compatible with existing callers, and it returns
a pointer into actual real cache entry storage.
2015-04-08 18:45:51 +02:00
Brad King 977796e307 Merge topic 'emulator-property'
1975d53a Help: Add notes for topic 'emulator-property'
9160d6c2 TestGenerator: Add CROSSCOMPILING_EMULATOR support.
e942526b try_run: Use CMAKE_CROSSCOMPILING_EMULATOR.
579c4bec Properties: Add CROSSCOMPILING_EMULATOR target property.
2015-04-08 09:07:03 -04:00
Brad King 710968e371 Merge topic 'xcode-quote-path'
dfd6f1f2 Xcode: Also quote strings containing // (#15487)
2015-04-08 09:06:59 -04:00
Matt McCormick 9160d6c241 TestGenerator: Add CROSSCOMPILING_EMULATOR support.
Prefix test commands with the CROSSCOMPILING_EMULATOR property
for target executables. This allows test suites to be run on the host
when crosscompiling.
2015-04-08 09:06:22 -04:00
Matt McCormick e942526b3d try_run: Use CMAKE_CROSSCOMPILING_EMULATOR.
If the CMAKE_CROSSCOMPILING_EMULATOR variable is defined, and
CMAKE_CROSSCOMPILING is TRUE, then use CMAKE_CROSSCOMPILING_EMULATOR to run
the try_run executables. This prevents the need to populate
TryRunResults.cmake when cross compiling.
2015-04-08 09:06:22 -04:00
Kitware Robot bddd8c0551 CMake Nightly Date Stamp 2015-04-08 00:01:05 -04:00
Stephen Kelly 77f2807ce5 cmCacheManager: Rename GetCacheValue to GetInitializedCacheValue.
Being initialized is a requirement for this method to return something,
and is what differentiates it from using GetIterator with it.GetValue.
2015-04-07 23:25:44 +02:00
Stephen Kelly 14973054a2 Add API for cache loading, deleting and saving to the cmake class.
Migrate existing users of the CacheManager API to use the new
API.  The CacheManager will be going away soon.
2015-04-07 23:25:39 +02:00
Stephen Kelly 1f2c12ebd1 cmMakefile: Remove cache version accessors.
They are only used by legacy code. Inline them there to simplify
cmMakefile.
2015-04-07 23:25:35 +02:00
Stephen Kelly 97c50a8dbd cmMakefile: Simplify GetDefinitions implementation. 2015-04-07 23:25:31 +02:00
Brad King d3823263b2 Merge topic 'refactor-cache-api'
3347c5e4 Revert topic 'refactor-cache-api'
2015-04-07 17:15:52 -04:00
Brad King 3347c5e4f9 Revert topic 'refactor-cache-api'
This topic was never tested without some follow-up commits.  The
GetCacheEntryValue API returns a pointer to memory freed on return.
It will have to be revised along with the rest of the original topic.
2015-04-07 17:15:04 -04:00
Brad King 1e3843373f cmake: Show in --help how to select VS target platform (#15422)
* Re-order VS generators from newest to oldest.

* Show how to specify a VS generator with a target platform

* Increase the option output indentation to avoid extra wrapping
  with longer generator names.
2015-04-07 16:47:53 -04:00
Brad King 678493d60f Merge topic 'refactor-cache-api'
9410e24a cmCacheManager: Port consumers to non-iterator API.
7b7ae3b1 Port QtDialog to non-iterator cache API.
228c629c Port CursesDialog to non-iterator cache API.
2e50f5e7 cmMakefile: Port away from CacheEntry.Initialized.
e6224367 cmCacheManager: Add non-iterator-based API.
9ada4c04 cmCacheManager: Rename GetCacheValue to GetInitializedCacheValue.
1fe7f24c Add API for cache loading, deleting and saving to the cmake class.
08c642c6 cmMakefile: Remove cache version accessors.
cec8f97e cmMakefile: Simplify GetDefinitions implementation.
2015-04-07 16:04:05 -04:00
Matt McCormick 579c4bec6e Properties: Add CROSSCOMPILING_EMULATOR target property.
Add CROSSCOMPILING_EMULATOR target property for executables. This is used by
subsequent patches to run exectuables created for the target system when
crosscompiling. The property is initialized by the
CMAKE_CROSSCOMPILING_EMULATOR variable when defined.
2015-04-07 13:33:34 -04:00
Brad King 64a6491fb6 Merge topic 'minor-cleanups'
c22f6c15 Remove unused includes.
2015-04-07 11:29:35 -04:00
Kitware Robot 52d5a9b60b CMake Nightly Date Stamp 2015-04-07 00:01:05 -04:00
Stephen Kelly 9410e24a4a cmCacheManager: Port consumers to non-iterator API.
This simplifies reasoning about the follow-up commit which ports
away from cmCacheManager to a class with the same method names.
2015-04-06 17:58:55 +02:00
Stephen Kelly 7b7ae3b1a1 Port QtDialog to non-iterator cache API. 2015-04-06 17:58:55 +02:00
Stephen Kelly 228c629c18 Port CursesDialog to non-iterator cache API. 2015-04-06 17:58:55 +02:00
Stephen Kelly 2e50f5e7d9 cmMakefile: Port away from CacheEntry.Initialized.
The API has no other external users.
2015-04-06 17:58:55 +02:00
Stephen Kelly e62243674e cmCacheManager: Add non-iterator-based API.
The iterator pattern is an unusual one for CMake, and it hinders
refactoring all configuration-time data manipulation into a
single class.
2015-04-06 17:58:55 +02:00
Stephen Kelly 9ada4c0433 cmCacheManager: Rename GetCacheValue to GetInitializedCacheValue.
Being initialized is a requirement for this method to return something,
and is what differentiates it from using GetIterator with it.GetValue.
2015-04-06 17:58:55 +02:00
Stephen Kelly 1fe7f24c2b Add API for cache loading, deleting and saving to the cmake class.
Migrate existing users of the CacheManager API to use the new
API.  The CacheManager will be going away soon.
2015-04-06 17:58:55 +02:00
Stephen Kelly 08c642c6ae cmMakefile: Remove cache version accessors.
They are only used by legacy code. Inline them there to simplify
cmMakefile.
2015-04-06 17:58:54 +02:00
Stephen Kelly cec8f97e57 cmMakefile: Simplify GetDefinitions implementation. 2015-04-06 17:58:54 +02:00
Brad King 9b7213dc47 Merge topic 'minor-cleanups'
c37cf7fa cmCacheManager: Remove unused method
64556e3d cmCacheManager: Remove unused overloads.
23bb5d22 cmCacheManager: Remove use of intermediate overload.
510562e3 cmGlobalGenerator: Don't fetch the cache manager in a loop.
629e9489 cmake: Clear member rather than explicit erase.
d280bae9 cmake: Be clear that there is no chaining after global properties.
364c7ea1 cmake: Remove unused method.
47acfe1d cmake: Remove unused member.
a469bf7b cmMakefile: Remove one wrong and one insufficiently helpful comment.
257c1649 cmListFile: Remove unused member.
fe17092c cmMakefile: Remove bogus comment.
199b28ac Remove duplicate tag name.
2015-04-06 09:19:34 -04:00
Brad King 0e6b00ee49 Merge topic 'cpack-one-component-only'
0ffd3534 CPack single component packaging
2015-04-06 09:11:34 -04:00
Brad King b9c1eb4dcc Merge topic 'makefile-depscan-BOM'
af924827 Makefile: Tolerate a BOM while scanning source dependencies (#15493)
2015-04-06 08:58:17 -04:00
Brad King 9ddbacdb74 Merge topic 'test_cpack_symlinks'
5f686b8a Tests: Add case for CPack source package with symlinks
aca1d93b cpack: Disable CMake Cygwin legacy warning while packaging
2015-04-06 08:58:14 -04:00
Stephen Kelly c22f6c1504 Remove unused includes. 2015-04-06 14:41:05 +02:00
Kitware Robot 03f7a509ef CMake Nightly Date Stamp 2015-04-06 00:01:04 -04:00
Domen Vrankar 0ffd35340e CPack single component packaging
RPM, DEB and archive packages were not created
in cases when CPACK_<generator>_COMPONENT_INSTALL
was set to ON and a single component existed.
Patch also changes CPackRPM test to implicitly
test for this case.
2015-04-05 22:49:41 +02:00
Stephen Kelly c37cf7fa9e cmCacheManager: Remove unused method 2015-04-05 10:26:10 +02:00
Stephen Kelly 64556e3dfa cmCacheManager: Remove unused overloads. 2015-04-05 10:26:10 +02:00
Stephen Kelly 23bb5d225b cmCacheManager: Remove use of intermediate overload. 2015-04-05 10:26:10 +02:00
Stephen Kelly 510562e3e7 cmGlobalGenerator: Don't fetch the cache manager in a loop.
It doesn't change from Makefile to Makefile.
2015-04-05 10:26:10 +02:00
Stephen Kelly 629e948936 cmake: Clear member rather than explicit erase. 2015-04-05 10:26:10 +02:00
Stephen Kelly d280bae98f cmake: Be clear that there is no chaining after global properties. 2015-04-05 10:26:09 +02:00
Stephen Kelly 364c7ea187 cmake: Remove unused method. 2015-04-05 10:26:09 +02:00
Stephen Kelly 47acfe1d1e cmake: Remove unused member. 2015-04-05 10:10:00 +02:00
Kitware Robot a3e2de3a31 CMake Nightly Date Stamp 2015-04-05 00:01:04 -04:00
Gregor Jasny dfd6f1f290 Xcode: Also quote strings containing // (#15487)
Otherwise those will be interpreted as start of a comment

Signed-off-by: Gregor Jasny <gjasny@googlemail.com>
2015-04-04 22:13:45 +02:00
Stephen Kelly a469bf7b98 cmMakefile: Remove one wrong and one insufficiently helpful comment. 2015-04-04 18:31:03 +02:00
Stephen Kelly 257c16495a cmListFile: Remove unused member.
It is written, but not read since commit v2.4.0~575 (ENH: Since list file
cache does not make much sense any more ..., 2006-02-07).
2015-04-04 18:31:03 +02:00
Stephen Kelly fe17092c20 cmMakefile: Remove bogus comment. 2015-04-04 18:31:03 +02:00
Stephen Kelly 199b28ac3a Remove duplicate tag name. 2015-04-04 18:30:52 +02:00
Kitware Robot c6624cfdc1 CMake Nightly Date Stamp 2015-04-04 00:01:05 -04:00
Gilles Khouzam 01a9ab0def VS: Add support for XAML source files
XAML files are by default of type Page in the vcxproj and can be
overriden by setting the VS_XAML_TYPE property.  The .cpp and .h file
of the same name are automatically added as depending on the XAML file.

New VSXaml test builds a basic XAML WindowsStore 8.1 app with VS2013.
2015-04-03 13:40:35 -04:00
Brad King af92482712 Makefile: Tolerate a BOM while scanning source dependencies (#15493)
Otherwise an #include directive on the first line of a source file is
ignored if the file contains a Byte-Order-Mark.

Suggested-by: Aleksey Konovalov <konovalov.aleks@gmail.com>
2015-04-03 13:04:57 -04:00
Kitware Robot 2978a5549a CMake Nightly Date Stamp 2015-04-03 00:01:04 -04:00
Brad King 0983825057 Merge topic 'remove-DEFINITIONS-directory-property'
06f61c26 Do not treat DEFINITIONS as a built-in directory property
2015-04-02 13:06:03 -04:00
Stephen Kelly 06f61c26cf Do not treat DEFINITIONS as a built-in directory property
Add policy CMP0059 to cover this change.  The property has been
deprecated since CMake 2.4 anyway.

This will help clean up cmMakefile -- the DefineFlagsOrig member should
not need to exist.
2015-04-02 13:00:48 -04:00
Brad King 9780859b7e Merge topic 'clean-up-cmMakefile'
f2e07a6d cmMakefile: Remove unused PreOrder member.
aafe2821 cmMakefile: Remove unused Prefix member.
1fcf590b cmMakefile: Remove unused SubDirectoryOrder member.
c3a60cc9 cmMakefile: Remove AddExtraDirectory method.
37897347 cmMakefile: Remove unused method.
d7539ced cmMakefile: Remove bogus comment.
2015-04-02 12:57:41 -04:00
Brad King 1a775917a5 Merge topic 'xcode-source-type-metal'
078c7321 Xcode: Add file type for Metal shader files
2015-04-02 12:57:18 -04:00
Kitware Robot f707460e42 CMake Nightly Date Stamp 2015-04-02 00:01:04 -04:00
Sean James 078c732185 Xcode: Add file type for Metal shader files 2015-04-01 15:15:22 -04:00
Stephen Kelly f2e07a6d90 cmMakefile: Remove unused PreOrder member.
Remove references from dependendent API.
2015-04-01 20:32:48 +02:00
Stephen Kelly aafe282188 cmMakefile: Remove unused Prefix member.
Unused since it was added in commit 1f42f521 (NEW: move from tools
and config to create CMake, 2000-08-29).
2015-04-01 20:32:48 +02:00
Stephen Kelly 1fcf590b14 cmMakefile: Remove unused SubDirectoryOrder member.
The last use was removed in v2.4.0~2054 (ENH: add support for out
of source source, 2005-03-14)
2015-04-01 20:32:47 +02:00
Stephen Kelly c3a60cc9cc cmMakefile: Remove AddExtraDirectory method.
It has no effect.
2015-04-01 20:32:47 +02:00
Stephen Kelly 37897347b3 cmMakefile: Remove unused method.
The last user was removed in commit v2.4.0~1516 (ENH: removed unused
files, 2005-06-20).
2015-04-01 20:32:47 +02:00
Stephen Kelly d7539ced64 cmMakefile: Remove bogus comment. 2015-04-01 20:32:47 +02:00
Brad King 0de7807c36 Merge topic 'cpack-deb-format-cast'
e86f44b7 cmCPackDebGenerator: Cast file mode to proper type for %o formatter
2015-04-01 13:19:41 -04:00
Brad King 4a821a47f7 Merge topic 'cpack-fix-preinstall-tool'
93a3ec8b CPack: Fix make tool selection during preinstall (#15483)
2015-04-01 13:19:37 -04:00
Brad King aa508a5299 Merge topic 'makefile-DELETE_ON_ERROR'
44990732 Help: Add notes for topic 'makefile-DELETE_ON_ERROR'
4adf1dad Makefile: Tell GNU make to delete rule outputs on error (#15474)
2015-04-01 13:19:32 -04:00
Brad King aca1d93bd9 cpack: Disable CMake Cygwin legacy warning while packaging
In cpack we load the platform information modules to give the
configuration scripts access to the host system information.
CYGWIN.cmake warns unless we explicitly tell it not to warn
since there is no chance for a cmake_minimum_required(VERSION)
to be called.
2015-04-01 12:57:43 -04:00
Kitware Robot c0312d9276 CMake Nightly Date Stamp 2015-04-01 00:01:04 -04:00
Brad King e86f44b726 cmCPackDebGenerator: Cast file mode to proper type for %o formatter 2015-03-31 16:28:28 -04:00
Brad King 93a3ec8b77 CPack: Fix make tool selection during preinstall (#15483)
The CMAKE_MAKE_PROGRAM selected by CMake while configuring the project
should also be used to drive the "preinstall" target during packaging.
Teach CPack to use "cmake --build" instead of constructing the build
command line itself.  The "cmake --build" command already knows how
to select the proper make tool.
2015-03-31 10:30:25 -04:00
Kitware Robot a6b0b835ac CMake Nightly Date Stamp 2015-03-31 00:01:04 -04:00
Brad King 4adf1dad2a Makefile: Tell GNU make to delete rule outputs on error (#15474)
Add .DELETE_ON_ERROR to the "build.make" files that contain the actual
build rules that generate files.  This tells GNU make to delete the
output of a rule if the recipe modifies the output but returns failure.
This is particularly useful for custom commands that use shell
redirection to produce a file.

Do not add .DELETE_ON_ERROR for Borland or Watcom make tools because
they may not tolerate it and would not honor it anyway.  Other make
tools that do not understand .DELETE_ON_ERROR will not be hurt.

Suggested-by: Andrey Vihrov <andrey.vihrov@gmail.com>
2015-03-30 16:35:48 -04:00
Brad King c1f8c6cdf9 Merge topic 'cpack-archive-prefix'
e3f84fc5 cpack: Fix CPACK_PACKAGING_INSTALL_PREFIX handling for archives (#14677)
2015-03-30 09:27:55 -04:00
Brad King c117c2bb5e Merge topic 'add_dependencies-INTERFACE-libraries'
ac14cbf0 Allow add_dependencies() on INTERFACE libraries (#15414)
817d31db Help: Format add_dependencies documentation
2015-03-30 09:27:53 -04:00
Brad King a3bdb5578d Merge topic 'ninja-autogen'
4d08e6b6 QtAutogen: Fix rcc rebuild with Ninja generator (#15459)
2015-03-30 09:27:51 -04:00
Brad King ac6297ea38 Merge topic 'xcode-default-ARCHS'
b76b52c0 Xcode: Set ARCHS only when CMAKE_OSX_ARCHITECTURES is specified (#14736)
9e14a5de cmGlobalXCodeGenerator: Simplify ARCHS list with cmJoin
2015-03-30 09:27:47 -04:00
Brad King 136a534f72 Merge topic 'wix-fix-utf8'
98a3b2e2 CPackWIX: Omit codepage conversion when internal encoding is already UTF-8.
2015-03-30 09:27:45 -04:00
Brad King aa15ef8a84 Merge topic 'clean-scanbuild-warnings'
e680d43d Fix an unused variable warning from scanbuild.
a4a1b729 Fix warnings from clang scanbuild.
2015-03-30 09:27:42 -04:00
Clinton Stimpson e3f84fc504 cpack: Fix CPACK_PACKAGING_INSTALL_PREFIX handling for archives (#14677)
Fix the case when the archive generator is used to package components
with an install prefix.
2015-03-30 09:22:14 -04:00
Kitware Robot 6474f0e263 CMake Nightly Date Stamp 2015-03-30 00:01:04 -04:00
Kitware Robot d35da54888 CMake Nightly Date Stamp 2015-03-29 00:01:04 -04:00
Kitware Robot 918fe54c82 CMake Nightly Date Stamp 2015-03-28 00:01:04 -04:00
Brad King ac14cbf017 Allow add_dependencies() on INTERFACE libraries (#15414)
Revert commit v3.0.0-rc1~175^2~20 (add_dependencies: Disallow use with
INTERFACE_LIBRARY, 2013-12-25).  Teach our dependency analysis to
transitively follow INTERFACE target utility dependencies as was done or
IMPORTED targets in commit v2.8.6~127^2~1 (Allow add_dependencies() on
imported targets, 2010-11-19).  Extend the InterfaceLibrary test with a
case to cover header generation for a header-only INTERFACE library via
a custom target.
2015-03-27 16:25:09 -04:00
Brad King 4d08e6b6dd QtAutogen: Fix rcc rebuild with Ninja generator (#15459)
The rcc outputs are byproducts of the cmake_autogen rule, not outputs.
We still must run cmake_autogen on every run even if the rcc outputs
exist.  Ninja requires explicit byproduct specification, which is now
possible in CMake since commit v3.2.0-rc1~340^2~2 (Add an option for
explicit BYPRODUCTS of custom commands, 2014-11-13).  Revise the logic
introduced by commit v3.2.0-rc1~480^2 (QtAutogen: Regenerate qrc files
if their input changes, 2014-09-17) to specify byproducts explicitly.
2015-03-27 15:33:19 -04:00
Brad King b76b52c0b4 Xcode: Set ARCHS only when CMAKE_OSX_ARCHITECTURES is specified (#14736)
Teach the Xcode generator that ONLY_ACTIVE_ARCH=YES means to use ARCHS,
and that the default of ONLY_ACTIVE_ARCH=NO means to use NATIVE_ARCH and
ignore ARCHS.  In the latter case there is no reason to generate ARCHS.
2015-03-27 10:52:32 -04:00
Brad King 9e14a5dee2 cmGlobalXCodeGenerator: Simplify ARCHS list with cmJoin 2015-03-27 09:50:14 -04:00
Brad King a92f217a4b Merge topic 'wix-external-expat'
86037915 CPackWIX: Add static_casts for XML_Parser.
2015-03-27 09:15:23 -04:00
Brad King b6f67227f1 Merge topic 'qtdialog-cpack-qt5-osx'
9c76ff01 QtDialog: Fix CMake packaging with CPack on OS X with Qt5.
2015-03-27 09:15:09 -04:00
Nils Gladitz 98a3b2e29e CPackWIX: Omit codepage conversion when internal encoding is already UTF-8. 2015-03-27 12:22:15 +01:00
Kitware Robot 685d179b8b CMake Nightly Date Stamp 2015-03-27 00:01:04 -04:00
Nils Gladitz 8603791553 CPackWIX: Add static_casts for XML_Parser.
"XML_Parser" in cmexpat is a typedef for void* while newer releases of
expat seem to use struct XML_ParserStruct *XML_Parser.

Add static_casts so that the build works with either variant.
2015-03-26 16:56:44 +01:00
Bill Hoffman e680d43d7d Fix an unused variable warning from scanbuild. 2015-03-26 11:05:56 -04:00
Kitware Robot 5d1d995bb7 CMake Nightly Date Stamp 2015-03-26 00:01:04 -04:00
Bill Hoffman a4a1b729c6 Fix warnings from clang scanbuild. 2015-03-25 12:38:37 -04:00
Brad King 166e29e453 Merge topic 'file-LOCK-close'
1f289095 file(LOCK): Close file descriptor/handle when releasing a lock
2015-03-25 09:01:18 -04:00
Betsy McPhail 1f289095f9 file(LOCK): Close file descriptor/handle when releasing a lock
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>
2015-03-25 09:00:51 -04:00
Kitware Robot 26c4300584 CMake Nightly Date Stamp 2015-03-25 00:01:04 -04:00
Clinton Stimpson 9c76ff015a QtDialog: Fix CMake packaging with CPack on OS X with Qt5. 2015-03-24 20:56:38 -06:00
Kitware Robot bcdda24851 CMake Nightly Date Stamp 2015-03-24 00:01:04 -04:00
Brad King 64e97edad7 Merge topic 'ninja-require-byproducts'
bd9c7f9b Ninja: Add policy to require explicit custom command byproducts
ed8e30b0 cmGlobalNinjaGenerator: Optimize handling of known build outputs
ad094f43 cmGlobalNinjaGenerator: Fix spelling of "unknown"
82a37d3c cmGlobalNinjaGenerator: Drop unused member
2015-03-23 09:48:07 -04:00
Brad King e85eb2e336 Merge topic 'add-extra-qbs-generator'
f85db2f3 Qbs: Add new 'extra' generator for qbs project files
2015-03-23 09:18:43 -04:00
Brad King ed99514fc1 Merge topic 'cpack-bundle-codesign'
fb3e4de8 CPack: Add support to overwrite or pass additional parameter to codesign
2015-03-23 09:18:40 -04:00
Brad King 114ddb072c Merge topic 'autogen-write-access'
610464c1 QtAutogen: Ensure write access to AutogenInfo.cmake (#15416)
2015-03-23 09:18:38 -04:00
Brad King a37937f7c0 Merge topic 'xcode-xctest'
4178cd88 Help: Add notes for topic 'xcode-xctest'
87a4b858 Tests: Add XCTest example to test Frameworks and Cocoa App Bundles
ba14510b OS X: Add FindXCTest module
3714955b OS X: Add handling for XCTest bundles
54a5cdbb Tests: Compute Xcode version for any generator on OS X
2015-03-23 09:18:29 -04:00
Brad King cc8b8cdc75 Merge topic 'ctest-repeat-until-fail'
6bce0276 Help: Add notes for topic 'ctest-repeat-until-fail'
fde70a1b ctest: Add a new --repeat-until-fail option
2015-03-23 09:18:26 -04:00
André Klitzing fb3e4de8e8 CPack: Add support to overwrite or pass additional parameter to codesign 2015-03-23 09:15:43 -04:00
Gregor Jasny 3714955b9c OS X: Add handling for XCTest bundles
An XCTest bundle is a CFBundle with a special product-type and bundle
extension.  For more information about XCTest visit the Mac Developer
library at:

  http://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/testing_with_xcode/

Signed-off-by: Gregor Jasny <gjasny@googlemail.com>
2015-03-23 09:12:18 -04:00
Bill Hoffman fde70a1b26 ctest: Add a new --repeat-until-fail option
This option tells ctest to run each test N times until the test fails or
the N times have run. This is useful for finding random failing tests.
2015-03-23 09:08:22 -04:00
Kitware Robot d67196d0e8 CMake Nightly Date Stamp 2015-03-23 00:01:03 -04:00
Kitware Robot aeb9fb9774 CMake Nightly Date Stamp 2015-03-22 00:01:05 -04:00
Kitware Robot 2ec1c0d6e0 CMake Nightly Date Stamp 2015-03-21 00:01:03 -04:00
Brad King bd9c7f9b2c Ninja: Add policy to require explicit custom command byproducts
Add policy CMP0058 to avoid generating 'phony' ninja rules for unknown
custom command dependencies.  This requires projects to specify their
custom command byproducts explicitly.  With this requirement we no
longer have to assume that unknown custom command dependencies are
generated and can instead simply assume they are source files expected
to exist when the build starts.  This is particularly important in
in-source builds.  It is also helpful for out-of-source builds to allow
Ninja to diagnose missing files before running custom command rules that
depend on them.
2015-03-20 17:40:12 -04:00
Brad King ed8e30b00d cmGlobalNinjaGenerator: Optimize handling of known build outputs
Teach WriteUnknownExplicitDependencies to take ownership of the set of
WriteBuild outputs immediately since no other methods need the data.
This avoids re-inserting the whole set into another already populated
set.
2015-03-20 13:33:13 -04:00
Brad King ad094f435e cmGlobalNinjaGenerator: Fix spelling of "unknown" 2015-03-20 13:32:55 -04:00
Justin Borodinsky 610464c12e QtAutogen: Ensure write access to AutogenInfo.cmake (#15416)
ConfigureFile uses the input file permissions, but we require write
access in cmQtAutoGenerators::SetupAutoGenerateTarget to append to the
file.
2015-03-20 10:33:52 -04:00
Stanislav Ionascu f85db2f323 Qbs: Add new 'extra' generator for qbs project files 2015-03-20 10:25:11 -04:00
Brad King c95e523db8 Merge topic 'file-globbing-directory-listing'
6e54b0b9 Help: Add notes for topic 'file-globbing-directory-listing'
a2c068a7 file: Teach GLOB to list directories optionally
2015-03-20 09:47:52 -04:00
Brad King d4d56f636b Merge topic 'update-kwsys'
0e8325db Merge branch 'upstream-kwsys' into update-kwsys
bc67dbed KWSys 2015-03-18 (9367a33b)
2015-03-20 09:47:48 -04:00
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