Commit Graph

28360 Commits

Author SHA1 Message Date
Stephen Kelly e96b5d14f9 cmListFileContext: Implement LessThanComparable.
Move wrapping existing code from cmMakefile, and simplify the
implementation there.
2015-05-18 23:55:43 +02:00
Stephen Kelly 7eb0dfa062 cmMakefile: Use std::set::insert API to simplify CMP0054 handling. 2015-05-18 23:55:43 +02:00
Stephen Kelly f9785e0cb6 cmMakefile: Simplify CMP0054 handling. 2015-05-18 23:55:43 +02:00
Stephen Kelly e17b5e4262 cmMakefile: Add access to the top-level execution context.
This is cheaper than getting the whole backtrace, and the cmListFileBacktrace
will not always be composed of cmListFileContext objects.
2015-05-18 23:55:41 +02:00
Stephen Kelly 1ec1bf9f07 if(): Test the effect of cmMakefileCall use in elseif() handling. 2015-05-18 21:28:09 +02:00
Stephen Kelly 9b4aefad41 cmMakefile: Replace deques with vectors. 2015-05-18 21:25:48 +02:00
Brad King a390de65e0 Ninja: Generate separate compile and link rules for each target
Our <LANG>_COMPILER and <LANG>_<TARGET_TYPE>_LINKER rule generation has
access to a specific cmTarget so the results may depend on it.  Instead
generate separate rules for each target using an encoded target name.
In particular, this makes CTEST_USE_LAUNCHERS report proper target
information.
2015-05-18 15:01:06 -04:00
Stephen Kelly 036372c4cd Remove obsolete overrides of CreateLocalGenerator.
The cmGlobalMakefileGenerator3 has an identical implementation.
2015-05-18 20:06:20 +02:00
Stephen Kelly 684e5cefb2 cmGlobalGenerator: Host the MakeSilentFlag. 2015-05-18 20:06:20 +02:00
Stephen Kelly 2047144f49 cmLocalGenerator: Remove unused IgnoreLibPrefix. 2015-05-18 20:06:20 +02:00
Stephen Kelly 333c1fa83b cmGlobalUnixMakefileGenerator3: Host the UnixCD. 2015-05-18 20:06:16 +02:00
Stephen Kelly a97df5e135 cmGlobalUnixMakefileGenerator3: Host the PassMakeflags. 2015-05-18 20:03:49 +02:00
Stephen Kelly 14f171c3ba Remove method calls just repeating the default. 2015-05-18 20:02:31 +02:00
Brad King 07db2ca3c6 Merge branch 'fix-function-missing-endforeach' into release 2015-05-18 11:16:36 -04:00
Brad King 3a65606591 Fix assertion failure on unmatched foreach in function (#15572)
The lexical scope counting added by commit v3.2.0-rc1~332^2~1 (Track
nested loop levels in CMake language with a stack of counters,
2014-11-18) forgot to account for scopes popped by error messages about
unclosed scopes.  Teach the error handler to pop the lexical scope it
reports as unclosed.  Re-order the lexical scope RAII object to be
inside the variable scope RAII object scope so that the lexical scope
is fully closed before we check assertions about variable scopes.

Extend the RunCMake.Syntax test with a case covering this.
2015-05-18 11:13:05 -04:00
Brad King 00ccfff2bc Merge topic 'cpack-ifw-updates'
342d15cb Update packaging of CMake for QtIFW 2.0
9a0ba4d2 CPackIFW: Add QtIFW 2.0 support
2015-05-18 09:56:17 -04:00
Brad King af1ea52f0c Merge topic 'cpack-deb-reworked-docs'
efab8050 CPack/DEB: reworked documentation
2015-05-18 09:56:15 -04:00
Brad King 9b11b040c8 Merge topic 'doc-cmake_minimum_required-not-in-function'
e5f8ead5 Help: Document behavior of cmake_minimum_required in a function
2015-05-18 09:56:13 -04:00
Brad King 639620eec4 CTestCustom: Suppress HP-UX preprocessor concatenation warning
The HP compiler on HP-UX 11.11 warns:

 Warning (anachronism) 823: ".../test_INT_format.h", line 194 # Redundant
 preprocessing concatenation operation results in two valid preprocessing
 tokens. Depending on this implementation defined behavior will result in
 non-portable code.
       TEST_C(INT32_C, -0x55000000, i32, int32_t, uint32_t)
       ^^^^^^
 Warning (anachronism) 823: ".../test_INT_format.h", line 196 # Redundant
 preprocessing concatenation operation results in two valid preprocessing
 tokens. Depending on this implementation defined behavior will result in
 non-portable code.
       TEST_C(INT64_C, -0x5500000000000000, i64, int64_t, uint64_t)
       ^^^^^^

There is likely a subtle problem with the way one of the system-provided type
macros is defined but the test passes despite the warning.  Simply suppress it.
2015-05-18 09:25:51 -04:00
Kitware Robot 09a3d21d71 CMake Nightly Date Stamp 2015-05-18 00:01:06 -04:00
Stephen Kelly f170985e7a cmDefinitions: Make the ClosureKeys method static.
For consistency with all other closure-related methods.
2015-05-17 16:50:18 +02:00
Stephen Kelly 98c5c90361 cmDefinitions: Centralize knowledge of iterator type.
Currently we process a list of definitions, but that will change.
2015-05-17 16:50:18 +02:00
Stephen Kelly 7872201bf6 cmDefinitions: Remove internal MakeClosure method.
There is no need to have a separate method, or to pass an external
set to it.
2015-05-17 16:50:18 +02:00
Stephen Kelly 820777af03 Tests: Don't rely on ordering of targets in maps. 2015-05-17 11:19:20 +02:00
Kitware Robot fa85829712 CMake Nightly Date Stamp 2015-05-17 00:01:11 -04:00
Stephen Kelly fa9eb814b3 cmLocalGenerator: Remove redundant path access. 2015-05-16 08:12:02 +02:00
Stephen Kelly 1933f3d1a3 cmLocalGenerator: Remove redundant path conversions.
The methods just called store the paths in already-converted form.
2015-05-16 08:12:02 +02:00
Stephen Kelly 9e4b6cc2ce cmState: Store computed relative paths to to current directories. 2015-05-16 08:12:02 +02:00
Stephen Kelly 991f5e4968 cmState::Snapshot: Store components for current directories.
Remove this responsibility from cmLocalGenerator.
2015-05-16 08:12:01 +02:00
Stephen Kelly 57bdc1a2f7 cmState: Compute and store directory components.
There is no need to duplicate these in all cmLocalGenerators.

Rename the symbols according to current conventions.

Add explicit calls to Set{Source,Binary}Directory with empty strings
in order to trigger the population of the components containers with
the current working directory in cmLocalGenerator.  Having
directories set to empty is a special case in CMake, which is relied
on for the `if(CMAKE_BINARY_DIR)` condition at the end of
CMakeDetermineSystem.cmake.
2015-05-16 08:11:33 +02:00
Stephen Kelly 2a44acb937 cmExecutionStatus: Remove inheritance of cmObject.
It is not needed.
2015-05-16 07:06:59 +02:00
Stephen Kelly c8c341690f cmExecutionStatus: De-virtualize API.
It is clearly not required.
2015-05-16 07:06:39 +02:00
Stephen Kelly 921d74d855 AutoGen: Don't iterate over a container while populating it.
The InitializeAutogenTarget creates new targets and adds them to the
Targets container on the makefile.  In this method, we have a reference
to that container and we are iterating over it.  That happens to work
with hash_map, but it fails with undefined behavior when using the
std::unordered_map from libstdc++-4.9 (and likely others).
2015-05-16 06:54:31 +02:00
Kitware Robot ebf8a41984 CMake Nightly Date Stamp 2015-05-16 00:01:07 -04:00
Stephen Kelly cf7f03e522 cmGlobalUnixMakefileGenerator3: Host the DefineWindowsNULL. 2015-05-16 05:20:36 +02:00
Stephen Kelly e9b134b95d cmGlobalUnixMakefileGenerator3: Host the include directive.
There is no sense in copying this to each cmLocalGenerator.
2015-05-16 05:20:12 +02:00
Stephen Kelly 24613d8b45 cmLocalGenerator: Remove unused method. 2015-05-16 05:18:32 +02:00
Stephen Kelly b659d161da cmGlobalGenerator: Add NVI wrapper to create local generator. 2015-05-16 05:18:25 +02:00
Raffi Enficiaud efab80501e CPack/DEB: reworked documentation 2015-05-15 23:07:49 +02:00
Brad King e5f8ead50b Help: Document behavior of cmake_minimum_required in a function
Add a note to the cmake_minimum_required documentation about the
limits of calling it in a function.
2015-05-15 14:48:15 -04:00
Brad King 2e4ea0c055 Merge topic 'refactor-cmLocalGenerator'
ce167b54 cmMakefile: Handle CMP0014 before configuring the generator.
7baef756 cmLocalGenerator: Assert that there is a parent.
63255342 cmMakefile: Remove redundant variable set.
894961af cmMakefile: Use the state to determine the parent directory.
115e9199 Use new top-level check abstraction.
c5059c90 cmLocalGenerator: Add abstraction to check if top-level.
b17686d2 cmGlobalGenerator: Move some flags from cmLocalGenerator.
ed41a8e7 cmLocalGenerator: Port loops to cmState::Snapshot.
48a9e91b cmState: Add an accessor for Parent snapshot and a validity check.
e7f7c2e2 cmLocalGenerator: Convert two recursive methods to loops.
c5cb3a73 cmLocalGenerator: Get project directories from the cmState.
76b59831 cmLocalGenerator: Initialize state before creating cmMakefile.
34c9ee2e cmLocalGenerator: Require a global generator in the constructor.
3837c483 Tests: Add case for 'ctest' run with bad CTestTestfile
b317b38d cmGlobalBorlandMakefileGenerator: Do not inherit from NMake generator
94867698 Don't use a cmLocalGenerator instance to call static methods.
...
2015-05-15 11:22:36 -04:00
Brad King 912dff6253 Merge topic 'disallow-install-of-export'
b85d3b66 install: Disallow installing export() result.
501c237a install: Use an intermediate filesVector variable.
2015-05-15 11:22:29 -04:00
Brad King e0a2be659f Merge topic 'fix-tests-in-usr-local'
d430cb7c Tests: Fix failures when running under the default install prefix (#15566)
332ee3e3 Tests: Fix CheckSourceTree test when build is under source (#15566)
2015-05-15 11:22:27 -04:00
Brad King 1911cb2173 Merge topic 'FindSquish-sh-exit'
12b85b17 FindSquish: Avoid bash-specific behavior in test script (#15568)
2015-05-15 11:22:26 -04:00
Konstantin Podsvirov 342d15cbc2 Update packaging of CMake for QtIFW 2.0 2015-05-15 11:02:49 -04:00
Konstantin Podsvirov 9a0ba4d24a CPackIFW: Add QtIFW 2.0 support
Add variables:

- CPACK_IFW_FRAMEWORK_VERSION
- CPACK_IFW_PACKAGE_ALLOW_NON_ASCII_CHARACTERS
- CPACK_IFW_PACKAGE_ALLOW_SPACE_IN_PATH
- CPACK_IFW_PACKAGE_CONTROL_SCRIPT
- CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_INI_FILE
- CPACK_IFW_PACKAGE_MAINTENANCE_TOOL_NAME
- CPACK_IFW_PACKAGE_START_MENU_DIRECTORY
- CPACK_IFW_VERBOSE
2015-05-15 11:02:49 -04:00
Kitware Robot f6a41a4414 CMake Nightly Date Stamp 2015-05-15 00:01:06 -04:00
Stephen Kelly b85d3b66c6 install: Disallow installing export() result. 2015-05-14 21:38:29 +02:00
Stephen Kelly ce167b546d cmMakefile: Handle CMP0014 before configuring the generator. 2015-05-14 21:26:13 +02:00
Stephen Kelly 7baef75649 cmLocalGenerator: Assert that there is a parent.
If the CMakeLists.txt file does not exist, there must be a parent.
The case for the top-level of the project is already handled in
cmake::DoPreConfigureChecks.
2015-05-14 21:04:17 +02:00