Commit Graph

19436 Commits

Author SHA1 Message Date
Brad King 7b13759d5f Merge branch 'reduce-realpath-calls' into release 2015-12-01 11:00:49 -05:00
Brad King 4e3cf8b012 cmOrderDirectories: Reduce repeat realpath() calls
Since commit v3.1.0-rc1~110^2 (Tolerate symlinks during RPATH ordering,
2014-09-09) we call realpath() for every directory ordering constraint
check.  On some platforms/filesystems this is slow, so memoize the
result of the call for each directory.
2015-12-01 11:00:32 -05:00
Brad King 6b18528743 cmOrderDirectories: Factor out directory comparison
Create an `IsSameDirectory` helper method.
2015-12-01 11:00:32 -05:00
Brad King f8deadc16d Merge branch 'reduce-cmState-accumulation' into release 2015-11-30 11:19:01 -05:00
Brad King 5f860ebb67 cmState: Avoid accumulating snapshot storage for short-lived scopes
We need to keep only certain snapshot types and their ancestors.
Also keep those needed for backtraces.
2015-11-25 12:30:13 -05:00
Brad King f21dc4a81c cmState: Avoid accumulating policy stack storage for short-lived scopes
We enforce policy push/pop balance around any scope that pushes/pops a
snapshot.  Therefore a snapshot may never reference entries of
PolicyStack that were created in nested scopes.  Free storage of
short-lived policy stack entries when they are popped.
2015-11-25 10:37:59 -05:00
Brad King bc1d3a8a87 cmListFileCache: Implement cmListFileBacktrace ctor/dtor out-of-line 2015-11-25 10:36:52 -05:00
Brad King 85fe26b5f7 cmLinkedTree: Add Pop method
Add a method to increment an iterator (follow the "up" pointer) to the
previous level in the stack of scopes and free storage of the top of the
stack if possible.  This will allow short-lived scopes to be created and
destroyed by matching Push/Pop pairs without accumulating storage.
2015-11-25 10:33:26 -05:00
Brad King 518d6b22f6 cmLinkedTree: Rename 'Extend' method to 'Push'
Logically the method pushes a nested scope on top of a given scope
because the "up" pointer sequence forms a stack independent of any
other branches of the tree.
2015-11-25 10:23:05 -05:00
Brad King 9ecf8a14fb Merge branch 'fix-find_package-version-file-error-stack' into release 2015-11-25 09:23:13 -05:00
Brad King 32edac6fdd cmState: Enforce policy scope balancing around variable scopes
Everywhere we use cmMakefile::ScopePushPop to manage variable scopes
also expects policy scopes to be balanced.  There is no place that we
use cmMakefile::PolicyPushPop without also using ScopePushPop.  Relieve
PolicyPushPop of responsibility for policy scope balance checks by
moving it to ScopePushPop.
2015-11-24 19:38:36 -05:00
Brad King 0fa7f143a0 cmLocalGenerator: Use ScopePushPop RAII class to manage local variable scopes 2015-11-24 19:38:34 -05:00
Brad King d85c9176ae cmMakefile: Remove unused PolicyPushPop interfaces
The PolicyPushPop constructor arguments and Quiet method were used to
pass non-default arguments to PushPolicy and PopSnapshot, but no clients
use them anymore.
2015-11-24 19:38:33 -05:00
Brad King 8e1be7bf68 cmMakefile: Clarify purpose of method that pops a scope snapshot
The `PopPolicyBarrier` method is actually responsible for closing any
scope opened by creating a snapshot.  Rename it to `PopSnapshot` and add
a comment explaining the purpose of the poilcy-scope-specific part of
the method.
2015-11-24 19:38:31 -05:00
Brad King 2e28c619f8 cmState: Skip variable scope snapshots to avoid call stack duplicates
Since commit v3.4.0-rc1~179^2~1 (cmState: Add a VariableScope snapshot
type, 2015-08-23) the snapshot stack may have a VariableScopeType entry.
Skip over these when constructing the call stack, just as we do for
policy scopes.  Otherwise we report the command causing the variable
scope to be entered twice (e.g. find_package while loading a package
version file).
2015-11-24 14:09:27 -05:00
Brad King e3dfa3506c Merge branch 'backport-fix-autodef-bigobj-64' into release 2015-11-20 08:57:13 -05:00
Bill Hoffman c7ddc5f438 Fix auto export symbols for Dlls containing /bigobj for 64bit builds.
This fixes a bug where 64 bit builds with /bigobj incorrectly determined
that the object files were not 64 bit. This manifested itself with
printf type functions showing up as undefined because the leading
underscore was being removed and should not be removed.
2015-11-20 08:43:58 -05:00
Brad King 16ba21f79a Merge branch 'avoid-divide-by-zero' into release 2015-11-19 13:20:47 -05:00
Ty Smith f5cd92a826 cmELF: Avoid divide by zero if there are no dynamic section entries 2015-11-19 13:20:21 -05:00
Brad King 59b6d8a81b Merge branch 'backport-android-no-versioned-soname' into release 2015-11-19 08:57:27 -05:00
Brad King 3aec561aa2 Android: Restore generation of non-versioned soname (#15851)
Our check of CMAKE_PLATFORM_NO_VERSIONED_SONAME, originally added by
commit v3.1.0-rc1~416^2 (Add basic Android platform module, 2014-06-06),
was dropped accidentally by commit v3.4.0-rc1~250^2~21
(cmGeneratorTarget: Move GetLibraryNames from cmTarget, 2015-08-04).
Restore the check in the new location of the GetLibraryNames method.
2015-11-19 08:52:40 -05:00
Brad King ca263d1d71 MSVC: Fix linking with /MANIFEST:NO option
Refactoring in commit v3.4.0-rc1~74^2~1 (MSVC: Rewrite manifest file
handling with Makefile and Ninja, 2015-09-15) broke handling of this
option.  Fix it and add a test case.
2015-11-18 09:31:56 -05:00
Brad King b4a2ada297 CMake 3.4.0 2015-11-12 09:09:08 -05:00
Stephen Kelly 9103d8ace3 Install: Move SetHaveInstallRule to a more-obvious place
The moved-from location checks for the existence of whether certain
generators are needed for any target in a loop, rather than whether
the current target has an install rule.

This was introduced in commit v3.4.0-rc1~275^2~3 (cmInstallCommand: Move
the SetHaveInstallRule invocation., 2015-07-28).  Move the
SetHaveInstallRule call to a more-obvious place where the
cmInstallTargetGenerator is constructed.
2015-11-08 13:56:11 +01:00
Brad King bc4b6aa68d CMake 3.4.0-rc3 2015-11-02 09:12:44 -05:00
Brad King 1178b53662 Merge branch 'fix-find_program-regression' into release 2015-10-30 08:38:13 -04:00
Brad King 31e6571cca find_program: Fix regression in finding an already-known path
Changes in commit v3.4.0-rc1~124^2~1 (cmFindProgramCommand: Re-implement
search using more flexible approach, 2015-09-01) did not preserve the
behavior of looking for the given name with no search path at all.
Fix this and add a test case covering finding an absolute path with
no search directories.
2015-10-30 07:40:46 -04:00
Brad King 81dbab6e08 Merge branch 'backport-revert-autorcc-qt-5.1' into release 2015-10-29 09:03:44 -04:00
Brad King e41c1be543 Merge branch 'vs-resw-files' into release 2015-10-29 09:03:30 -04:00
Andrew Shaitorov 77dde5cb1f VS: Add support for `.resw` files (#15811)
These are used on the WinRT & WinPhone platforms.  Build them using the
`PRIResource` tool.
2015-10-28 15:19:21 -04:00
Brad King b935db3a11 Revert "cmQtAutoGenerators: Fix rcc invocation for Qt 5.0 and 5.1 (#15644)"
This reverts commit 9a271e1323.  The
`-list` option is not documented and may be removed in future Qt
versions.  Fixing this correctly will require detecting the availability
of `--list` or `-list` based on the `rcc` version found.  For now we
choose to support the documented option that will be supported in future
Qt versions.
2015-10-27 16:30:20 -04:00
Brad King c7c8c2c5e8 Merge branch 'cpack-deb-fakeroot-removal' into release 2015-10-23 11:00:18 -04:00
Raffi Enficiaud 66178ae5a0 CPackDEB: Use proper compression scheme for control.tar.gz
Changes in commit v3.4.0-rc1~79^2~1 (CPackDeb: use of libarchive and
removal of fakeroot, 2015-09-11) accidentally set the wrong compression
scheme for the `control.tar.gz` file.  Set it explicitly to GZip.
2015-10-23 10:58:43 -04:00
Brad King e61973e1ab CTest: Fix regression in handling of a RUN_SERIAL test that fails
Refactoring in commit v3.4.0-rc1~390^2~1 (cmCTestMultiProcessHandler:
Refactor RUN_SERIAL implementation, 2015-06-01) forgot to update a code
path for cleaning up after a failed RUN_SERIAL test.  This causes an
infinite loop after a RUN_SERIAL test fails.  Fix it and add a test.
2015-10-23 09:55:25 -04:00
Brad King 498db9b9bc CMake 3.4.0-rc2 2015-10-21 09:26:43 -04:00
Stephen Kelly d6a03b475e cmIfCommand: Issue CMP0054 warning with appropriate context. (#15802)
Commit v3.4.0-rc1~494^2~4 (cmMakefile: Add API for elseif to create
backtrace., 2015-05-29) removed the use of cmMakefileCall to push/pop
execution context in favor of a new way to create backtraces.

However, a call to cmMakefile::GetExecutionContext is still invoked to
issue a contextual CMP0054 warning through cmConditionEvaluator.  As
the elseif is not part of the call stack, this resulted in trying to
access an empty vector.

Avoid the attempt at getting execution context when evaluating elseif by
constructing a context and backtrace on behalf of the cmConditionEvaluator
in all cases.
2015-10-20 23:40:12 +02:00
Brad King 889d90de44 Merge branch 'ctest-submit-content-type' into release 2015-10-12 10:29:27 -04:00
Derek Bruening 2a6e0b611b CTest: Set Content-Type header for http file upload (#15774)
Sets the Content-Type header for http file uploads to avoid running afoul
of ModSecurity rules on the server.
2015-10-12 10:17:04 -04:00
Brad King 86cc45e3e3 CMake 3.4.0-rc1 version update 2015-10-05 10:11:00 -04:00
Brad King 6c25ceb6a8 Merge topic 'vs-win10-store'
2402bb8c Help: Document Windows 10 Universal Applications in cmake-toolchains(7)
1be2f12c VS: Add support for Windows 10 Universal (Store) Applications
2798dbda VS: Refactor indentation of LinkLibraryDependencies
8c426183 MSVC: Add system libs for WindowsStore on VS 2015
d1b87d72 VS: Select Windows 10 Store SDK and toolset for VS 2015
2015-10-05 10:04:11 -04:00
Brad King 518dc27728 Merge topic 'vs-win10-sdk'
45812111 VS: Select latest Windows 10 SDK if no specific version was requested
2015-10-05 10:04:09 -04:00
Gilles Khouzam 1be2f12cf2 VS: Add support for Windows 10 Universal (Store) Applications
Teach the VS 2015 generator to support WindowsStore 10.0 applications.
Add target properties to customize them:

* VS_WINDOWS_TARGET_PLATFORM_MIN_VERSION: Specifies the minimum version
  of the OS that the project can target.

* VS_DESKTOP_EXTENSIONS_VERSION, VS_MOBILE_EXTENSIONS_VERSIONS,
  VS_IOT_EXTENSIONS_VERSION: Add a reference to the version of the SDK
  specified to the target allowing to target the extended functionality in
  a universal project.

* VS_IOT_STARTUP_TASK: Specifies that the target should be
  built as an IOT continuous background task.
2015-10-05 09:48:11 -04:00
Gilles Khouzam 2798dbdacb VS: Refactor indentation of LinkLibraryDependencies
Use our indentation specifier instead of hard-coding spaces.
2015-10-05 09:24:50 -04:00
Kitware Robot a57f5abdf6 CMake Nightly Date Stamp 2015-10-05 00:01:04 -04:00
Kitware Robot fb4e14d281 CMake Nightly Date Stamp 2015-10-04 00:01:04 -04:00
Kitware Robot 7a6c3ff01b CMake Nightly Date Stamp 2015-10-03 00:01:05 -04:00
Gilles Khouzam d1b87d72f9 VS: Select Windows 10 Store SDK and toolset for VS 2015 2015-10-02 16:34:11 -04:00
Gilles Khouzam 458121116a VS: Select latest Windows 10 SDK if no specific version was requested
If CMAKE_SYSTEM_VERSION is just "10.0" then use the latest SDK available
since no particular version was requested.
2015-10-02 16:18:44 -04:00
Brad King d80161b08c Merge topic 'vs-win10-sdk'
3f077996 VS: Add support for selecting the Windows 10 SDK (#15670)
5dfc4c5f VS: Add hook to initialize Windows platform settings
61c472a2 cmSystemTools: Add VersionCompareGreater helper
2015-10-02 09:58:17 -04:00
Gilles Khouzam 3f077996f5 VS: Add support for selecting the Windows 10 SDK (#15670)
Teach the VS 2015 generator to produce a WindowsTargetPlatformVersion
value.  Use the CMAKE_SYSTEM_VERSION to specify the version and if not
set choose a default based on available SDKs.  Activate this behavior
when targeting Windows 10.

Co-Author: Brad King <brad.king@kitware.com>
2015-10-02 09:53:25 -04:00