Commit Graph

16219 Commits

Author SHA1 Message Date
Brad King 775458dede Merge topic 'fix-atomic-rename-Windows-sharing-violation'
24bd7ae1 cmSystemTools::RenameFile: Retry on Windows ERROR_SHARING_VIOLATION
2014-05-14 13:58:33 -04:00
Brad King 07163ca070 Merge topic 'update-kwsys'
7fa16df4 Merge branch 'upstream-kwsys' into update-kwsys
7762c574 KWSys 2014-05-07 (6074f33f)
2014-05-14 13:58:32 -04:00
Kitware Robot 7ceab3d08a CMake Nightly Date Stamp 2014-05-14 00:01:10 -04:00
Eric Berge 24bd7ae11a cmSystemTools::RenameFile: Retry on Windows ERROR_SHARING_VIOLATION
Add ERROR_SHARING_VIOLATION to the set of errors (previously including
only ERROR_ACCESS_DENIED) that cause a rename (MoveFile) on Windows to
retry.  The condition was observed when two renames to the same target
file name were happening simultaneously.
2014-05-13 15:23:36 -04:00
Brad King 7fa16df4d7 Merge branch 'upstream-kwsys' into update-kwsys 2014-05-13 14:55:35 -04:00
Kitware Robot f692014a2b CMake Nightly Date Stamp 2014-05-13 00:01:10 -04:00
Brad King 58fcd57c40 Merge topic 'package-disable-registry'
ba387cb8 Help: Add notes for topic 'package-disable-registry'
be8ae960 Allow the Package Registry to be disabled (#14849)
d09fda5d Tests: Improve FindPackageTest for in-source builds
ac24a1c0 Tests: Improve FindPackageTest exported package version
2014-05-12 10:45:51 -04:00
Daniele E. Domenichelli be8ae96098 Allow the Package Registry to be disabled (#14849)
When a project is packaged for redistribution the local package
registries should not be updated or consulted.  They are for developers.

Add variables to disable use of package registries globally:

* CMAKE_EXPORT_NO_PACKAGE_REGISTRY that disables the export(PACKAGE)
  command
* CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY that disables the User Package
  Registry in all the find_package calls.
* CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY that disables the
  System Package Registry in all the find_package calls.

Update documentation and unit tests.
2014-05-12 09:50:01 -04:00
Brad King f20bb8f003 Merge topic 'minor-cleanups'
bc9a8bba Makefile: Undef FEATURE_STRING iteration define after use.
eb638c75 Tests: Make CompileFeatures feature list lang-specific.
e2f09aff CMakeConfigurableFile: Remove excess newline.
5109b042 Features: Fix GNU 4.8.1 version test.
6a9fdbeb Test: Parameterize the language in the CompileFeature test.
f5bf9d43 Tests: Make CompileFeature tests use highest standard known.
2014-05-12 09:31:06 -04:00
Brad King 68f6460f66 Merge topic 'ninja-intel-linux'
54535f47 Ninja: Fix deptype for Intel compiler on Linux
2014-05-12 09:31:04 -04:00
Brad King c1e428c039 Merge topic 'target-property-policy-context'
75c3d18d Merge branch 'backport-target-property-policy-context' into target-property-policy-context
911cc9a3 cmTarget: Evaluate CMP0026 and CMP0051 in calling context
cb810abe cmTarget: Drop unused GetProperty signature
23409f50 cmTarget: Evaluate CMP0026 in calling context
2e75bf67 cmTarget: Drop unused GetProperty signature
2014-05-12 09:31:02 -04:00
Brad King a2bb00d196 Merge topic 'osx-package-DragNDrop'
dc3c2102 OS X: Package with DragNDrop instead of PackageMaker
2014-05-12 09:31:00 -04:00
Kitware Robot d2d15b0d26 CMake Nightly Date Stamp 2014-05-12 00:01:05 -04:00
Kitware Robot 17c65008fc CMake Nightly Date Stamp 2014-05-11 00:01:07 -04:00
Stephen Kelly bc9a8bba46 Makefile: Undef FEATURE_STRING iteration define after use. 2014-05-10 13:12:14 +02:00
Kitware Robot 2fd7b44fc0 CMake Nightly Date Stamp 2014-05-10 00:01:18 -04:00
Brad King 9996b9846d Merge branch 'ninja-intel-linux' into release 2014-05-09 15:20:26 -04:00
Brad King 54535f4730 Ninja: Fix deptype for Intel compiler on Linux
Since commit v3.0.0-rc1~305^2 (Ninja: deptype msvc for Intel's compiler
on Windows, 2013-11-25) we used "deps = msvc" for the Intel compiler.
This is correct only on Windows.  On Linux we still want "deps = gcc".

Fix the logic to use "deps = msvc" when the compiler id or the "simulate
id" is "MSVC".  This will preserve the behavior on Intel for Windows and
fix the behavior on Intel for Linux.  In the future this should be
converted to a platform information module variable.
2014-05-09 15:11:54 -04:00
Brad King 911cc9a39e cmTarget: Evaluate CMP0026 and CMP0051 in calling context
These policies should be checked at the call site that tries to access
the LOCATION or SOURCES property, not the directory scope containing the
target.  Thread the caller context through cmTarget::GetProperty to use
for checking the policy setting and emitting a diagnostic with proper
backtrace.

Extend the RunCMake.CMP0026 and RunCMake.CMP0051 tests with
cross-directory cases.
2014-05-09 11:24:15 -04:00
Brad King cb810abe6d cmTarget: Drop unused GetProperty signature
No callers use the second "scope" argument.  Drop this signature and
hard-code the default parameter value internally.
2014-05-09 11:17:32 -04:00
Brad King 23409f50f1 cmTarget: Evaluate CMP0026 in calling context
This policy should be checked at the call site that tries to access the
LOCATION property, not the directory scope containing the target.
Thread the caller context through cmTarget::GetProperty to use for
checking the policy setting and emitting a diagnostic with proper
backtrace.

Extend the RunCMake.CMP0026 test with a cross-directory case.
2014-05-09 11:12:48 -04:00
Brad King 2e75bf672b cmTarget: Drop unused GetProperty signature
No callers use the second "scope" argument.  Drop this signature and
hard-code the default parameter value internally.
2014-05-09 11:06:13 -04:00
Kitware Robot 3547a00d77 CMake Nightly Date Stamp 2014-05-09 00:01:08 -04:00
Brad King dc3c210244 OS X: Package with DragNDrop instead of PackageMaker
Use the CPack DragNDrop generator instead of the deprecated PackageMaker
tool to package CMake itself.  This provides an installation experience
that is more consistent with other products on OS X and allows users to
select the destination directory easily.  It also avoids installing
"/private/var/db/receipts/com.Kitware.CMake.*" receipts that must be
removed by "pkgutil --forget com.Kitware.CMake" before another version
of CMake can be installed.

The DragNDrop installer does not support a post-flight script, so drop
our configuration of it.  The cmake-gui has an option for installing
symbolic links to enable command-line use.  In practice users may simply
add "/Applications/CMake.app/Contents/bin" to their PATH instead.
2014-05-08 14:13:20 -04:00
Ben Boeckel bc38565863 EVIS: Reimplement using custom parsing code
Introduce a new implementation of ExpandVariablesInString and select
between the old and new implementations based on policy CMP0053.
Instead of cmCommandArgumentParserHelper, use a custom parser with our
own stack.  This is much faster and works well for our simple grammar.

The new behavior of CMP0053 should expand @VAR@ syntax only in certain
contexts.  All existing EVIS callers use "replaceAt == true" so
hard-code our call to the old implementation.  Update the signature to
default to "replaceAt == false" and pass "replaceAt == true" explicitly
in the call sites for configure_file and string(CONFIGURE).

Testing the configure (no generate) step with ParaView shows ~20%
performance improvement.

In terms of complete configure/generate steps, further testing with
ParaView shows a 20% performance improvement over 2.8.12.2 with Unix
Makefiles and minimal with Ninja. Ninja is less because it generate step
is the expensive part (future work will address this) by a long shot and
these changes help the configure step for the most part.
2014-05-08 13:24:49 -04:00
Ben Boeckel 25102efc1d EVIS: Add policy CMP0053
This policy switches between the old EVIS parser and the new, faster
parser.
2014-05-08 13:24:49 -04:00
Brad King a07b979c1c Merge topic 'vs-fix-MANIFESTUAC'
9c7f234c VS: Fix /MANIFESTUAC:NO linker option mapping
2014-05-08 11:28:01 -04:00
Brad King 65a71a5db2 Merge topic 'ctest-bad-generator'
54111286 ctest_build: Do not crash on bad generator name
2014-05-08 11:27:59 -04:00
Brad King 3e206022ab Merge topic 'minor-cleanups'
47795421 Fix whitespace in docs.
aa283b6b Features: Fix test for GNU 4.8.1.
bbfd4cd4 Features: Include the language of the compiler in error messages.
2014-05-08 11:27:57 -04:00
Brad King 7b3def93b6 Merge topic 'decay-language-version'
205215fb cmTarget: Add CXX_STANDARD_REQUIRED to control decay.
1df2116b Features: Decay language flag if requested is not available.
c4f4dac2 Project: Fix exit-on-error with compile feature tests.
5bb7ce72 Project: Use nullary form of main for compile feature tests.
64254e7a Project: Remove extern from static string in feature tests.
0d9c99bf Help: Fix order of help entries.
dc7639bd Tests: Fix name of cache variable.
2014-05-08 11:27:53 -04:00
Brad King 159cc31f63 Merge topic 'desktop-icon'
0c4c29ed cmake-gui: Fix desktop file icon configuration
2014-05-08 11:27:46 -04:00
Kitware Robot ef595af8b3 CMake Nightly Date Stamp 2014-05-08 00:01:15 -04:00
Brad King b80928f0ae Merge topic 'dev/source-file-performance'
77b37965 cmSourceFile: Take a string
7b8a9904 perf: Cache the language property string
10baf00f cmSourceFile: Cache the isUiFile check
14e7a8ae cmSourceFileLocation: Return a string reference
b4cb543e cmSourceFileLocation: Save some string copies
e8e1f3a1 cmSourceFileLocation: Simplify logic in Matches
5554910e cmSourceFileLocation: Avoid string allocation in extension checking
2014-05-07 15:59:49 -04:00
Brad King 1cc1efc063 Merge topic 'dev/regex-variables'
3f517522 StoreMatches: Minor cleanups
ef62fbad ClearMatches: Store match variable names statically
f718b30a ClearMatches: Only clear matches which were actually set
2014-05-07 15:59:47 -04:00
Brad King 45f338e3d9 Merge topic 'dev/hashmap-for-targets'
325599ca cmGlobalGenerator: Store targets in hash maps
ac4106c6 cmMakefile: Use a hashmap for imported targets
2014-05-07 15:59:46 -04:00
Ben Boeckel 325599caa2 cmGlobalGenerator: Store targets in hash maps 2014-05-07 15:48:32 -04:00
Ben Boeckel ac4106c69a cmMakefile: Use a hashmap for imported targets 2014-05-07 15:48:32 -04:00
Brad King 890efcb607 Merge branch 'vs-fix-MANIFESTUAC' into release 2014-05-07 15:35:32 -04:00
Eric Berge 9c7f234ceb VS: Fix /MANIFESTUAC:NO linker option mapping
There are no versions of /MANIFESTUAC:NO where addition values are
appended.  Remove both of the MANIFESTUAC:NO entries from our flag
tables and replace them with one which would set EnableUAC to false and
immediately stop processing the /MANIFESTUAC:NO option.
2014-05-07 15:24:08 -04:00
Brad King 4777e82a0a Merge topic 'dev/refactor-source-depends-in-ninja'
2583eff6 ninja: Factor out custom command order-only depends
18e478a8 ninja: Factor out target-level order-only dependencies
6fa6bedf LocalGenerator: Add a string overload for AppendFlags
01b79c63 ninja: Don't use a stringstream to build an argument list
3c640891 ninja: Use string parameters
2014-05-07 15:04:49 -04:00
Brad King 74dc1a0be6 Merge branch 'desktop-icon' into release 2014-05-07 15:04:15 -04:00
Johannes Huber 0c4c29edf2 cmake-gui: Fix desktop file icon configuration
Drop the icon file extension.  This fixes the desktop file validation
message:

 "CMakeSetup32.png" for key "Icon" in group "Desktop Entry" is an icon
 name with an extension, but there should be no extension as described in
 the Icon Theme Specification if the value is not an absolute path

Applied-by: Rolf Eike Beer <eike@sf-mail.de>
2014-05-07 15:03:05 -04:00
Ben Boeckel 2583eff6fe ninja: Factor out custom command order-only depends
This makes WebKitGTK's CMake build.ninja file go from 165M to 11M and
configure/generate in 5 seconds.
2014-05-07 14:30:31 -04:00
Ben Boeckel 18e478a860 ninja: Factor out target-level order-only dependencies
This reduces ninja file output even more for projects with lots of
libraries with entangled transitive dependencies. ParaView goes from the
previous 58M to about 45M.
2014-05-07 14:30:31 -04:00
Ben Boeckel 6fa6bedf78 LocalGenerator: Add a string overload for AppendFlags 2014-05-07 14:30:31 -04:00
Brad King 5411128645 ctest_build: Do not crash on bad generator name
If creation of the global generator fails, return early with an error
message instead of trying to use the generator and crashing.

Add a CTestTestBadGenerator test to cover this case.

Reported-by: Mathieu Malaterre <malat@debian.org>
Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=747306
2014-05-07 11:02:16 -04:00
Brad King 295cf31ca6 Merge topic 'no-assert-missing-objlib'
d648c476 cmTarget: Don't assert on object libraries for configure-time location.
2014-05-07 09:18:35 -04:00
Brad King 2e095099ec Merge topic 'osx-iframework'
1bed75a5 OS X: Use -iframework for system framework directories
2014-05-07 09:13:37 -04:00
Brad King 139b86b7ed Merge topic 'update-kwsys'
edad0369 Merge branch 'upstream-kwsys' into update-kwsys
397bccba KWSys 2014-05-05 (f3a36760)
2014-05-07 09:13:28 -04:00
Mikołaj Siedlarek 1bed75a590 OS X: Use -iframework for system framework directories
Just like -I flag has its -isystem counterpart which marks an include
directory as a system directory and prevents unwanted warnings, on Apple
systems there is -iframework -- a system directory replacement for -F.
Use this flag to implement include_directories(SYSTEM) for frameworks.
2014-05-07 09:04:48 -04:00