Commit Graph

16267 Commits

Author SHA1 Message Date
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
Stephen Kelly bbfd4cd48f Features: Include the language of the compiler in error messages. 2014-05-07 12:36:22 +02:00
Stephen Kelly 205215fb8a cmTarget: Add CXX_STANDARD_REQUIRED to control decay. 2014-05-07 12:17:49 +02:00
Stephen Kelly 1df2116bfa Features: Decay language flag if requested is not available.
Use the highest standard compile flags available if requested language
version is too new.

This supports use-cases like

 set(CMAKE_CXX_STANDARD 14)

 # Compiled with -std=c++11 with GNU 4.7, which has no -std=c++14
 # or equivalent flag
 add_executable(main main.cpp)

This can be used in combination with preprocessor defines which
communicate the availability of certain language features for
optional use.
2014-05-07 12:17:49 +02:00
Kitware Robot c010e7cc80 CMake Nightly Date Stamp 2014-05-07 00:01:08 -04:00
Stephen Kelly d648c4766f cmTarget: Don't assert on object libraries for configure-time location.
Commit b8af2011 (cmTarget: Fix listing of source files at
configure-time., 2014-04-13) refactored a GetObjectLibrariesCMP0026
method out of GetLanguages.  In flight, a conditional use of a target
if available was changed to an assert-available.

This code is only used to read the LOCATION property at configure
time, when the link information is incomplete, and not all targets
are defined, so the assert is inappropriate, even though it can lead
to incorrect information being generated.  CMP0026 warns about the
potentially incorrect information anyway.
2014-05-06 21:07:40 +02:00
Brad King 8e767a27d2 Merge topic 'CMAKE_CXX_KNOWN_FEATURES-global-property'
3fdfa5d3 Features: Make CMAKE_CXX_KNOWN_FEATURES a property.
2014-05-06 13:48:42 -04:00
Brad King 8c5b9cf915 KWSys SystemInformation: Include backtrace APIs whenever we use them
Include execinfo.h, cxxabi.h, and dlfcn.h under the same conditions
under which we use the APIs from them.  Move their inclusion out of
OS-specific blocks.
2014-05-06 10:05:01 -04:00
Brad King edad036971 Merge branch 'upstream-kwsys' into update-kwsys 2014-05-06 08:46:59 -04:00
Kitware Robot f410c03142 CMake Nightly Date Stamp 2014-05-06 00:01:08 -04:00
Kitware Robot 1aed32faae CMake Nightly Date Stamp 2014-05-05 00:01:06 -04:00
Kitware Robot f16fdc0263 CMake Nightly Date Stamp 2014-05-04 00:01:09 -04:00
Kitware Robot 33696e8331 CMake Nightly Date Stamp 2014-05-03 00:01:07 -04:00
Ben Boeckel 01b79c6385 ninja: Don't use a stringstream to build an argument list
Streams are expensive to construct (looks like some locale-related
stuff), so use strings instead.
2014-05-02 13:22:19 -04:00
Ben Boeckel 3c64089117 ninja: Use string parameters 2014-05-02 13:05:44 -04:00
Stephen Kelly 3fdfa5d3fc Features: Make CMAKE_CXX_KNOWN_FEATURES a property.
As a 'built-in' variable it imposes a cost on all variable lookups
and it is expected to be rarely used.
2014-05-02 10:18:16 +02:00
Kitware Robot 2615185418 CMake Nightly Date Stamp 2014-05-02 00:01:07 -04:00
Brad King ecdc1985e3 Merge topic 'file-generate-if-different'
42e1cd13 file(GENERATE): Only write the file if content is different.
2014-05-01 09:11:23 -04:00
Kitware Robot 849d869223 CMake Nightly Date Stamp 2014-05-01 00:01:12 -04:00
Brad King d41adb440f Merge topic 'osx-init-early'
bbc358c3 Merge branch 'master' into osx-init-early
0cce556b Xcode: Use sysroot and deployment target to identify compiler
0200d0a9 OS X: Factor a Darwin-Initialize module out of Platform/Darwin
416761e3 Add platform-specific initialization step when enabling languages
2014-04-30 09:42:02 -04:00
Brad King 8535d4cf5d Merge topic 'cxx98-features'
a36b957f Features: Add cxx_template_template_parameters.
2014-04-30 09:42:00 -04:00
Stephen Kelly 42e1cd137c file(GENERATE): Only write the file if content is different.
No policy is used to control this behavior for now.
2014-04-30 15:18:13 +02:00
Kitware Robot b0e955f129 CMake Nightly Date Stamp 2014-04-30 00:01:07 -04:00
Ben Boeckel 3f51752264 StoreMatches: Minor cleanups 2014-04-29 16:00:06 -04:00
Ben Boeckel ef62fbad55 ClearMatches: Store match variable names statically
Constructing the names and then turning them into a std::string is
non-negligible in performance testing.
2014-04-29 16:00:05 -04:00
Ben Boeckel f718b30a95 ClearMatches: Only clear matches which were actually set
ClearMatches was clearing many variables which were never set in the
first place. Instead, store how many matches were made last time and
only clear those. It is moved to the cmMakefile class since it is a
common utility used by multiple commands.
2014-04-29 16:00:05 -04:00
Brad King 1b5fac4695 Merge topic 'doc-full-help'
478356e6 Restore --help-full option to output all help manuals
2014-04-29 09:58:46 -04:00
Brad King bbc358c3fc Merge branch 'master' into osx-init-early
Resolve conflict in Source/cmGlobalGenerator.cxx by integrating
changes from both sides.
2014-04-29 09:36:55 -04:00
Brad King 416761e35c Add platform-specific initialization step when enabling languages
Create a Modules/CMakeSystemSpecificInitialize.cmake module loaded after
CMakeSystem.cmake but before per-language initialization.  Use it to
load an optional Platform/<os>-Initialize.cmake module.  This will be
useful to do per-platform initialization that does not depend on the
language and use the results when enabling specific languages.
2014-04-29 09:36:14 -04:00
Kitware Robot c51d07d439 CMake Nightly Date Stamp 2014-04-29 00:01:08 -04:00
Ben Boeckel 77b3796581 cmSourceFile: Take a string 2014-04-28 21:43:40 -04:00
Ben Boeckel 7b8a990424 perf: Cache the language property string 2014-04-28 21:43:39 -04:00
Ben Boeckel 10baf00f3d cmSourceFile: Cache the isUiFile check
The filename extension call is expensive, so cache the .ui check.
2014-04-28 21:43:39 -04:00
Ben Boeckel 14e7a8ae1c cmSourceFileLocation: Return a string reference 2014-04-28 21:43:27 -04:00
Ben Boeckel b4cb543e0c cmSourceFileLocation: Save some string copies 2014-04-28 21:43:27 -04:00
Ben Boeckel e8e1f3a19f cmSourceFileLocation: Simplify logic in Matches 2014-04-28 21:43:26 -04:00
Ben Boeckel 5554910ec2 cmSourceFileLocation: Avoid string allocation in extension checking
The substr call was causing excess allocations. Swap the cheaper
character check to be before the longer string comparison, now using the
prefix checking function.
2014-04-28 21:43:09 -04:00
Kitware Robot bb1c41a085 CMake Nightly Date Stamp 2014-04-28 00:01:10 -04:00
Kitware Robot c8b76d58bd CMake Nightly Date Stamp 2014-04-27 00:01:09 -04:00
Kitware Robot 415b75ff37 CMake Nightly Date Stamp 2014-04-26 00:01:06 -04:00
Brad King 478356e6d9 Restore --help-full option to output all help manuals
This option was removed during conversion to the reStructuredText
documentation.  Restore it.  Process documentation starting at
Help/index.rst so that all manuals are included in the output.
2014-04-25 08:41:31 -04:00
Kitware Robot 041dfea55b CMake Nightly Date Stamp 2014-04-25 00:01:10 -04:00
Brad King 9b8685f7d0 Merge topic 'aix-streams'
817db64c fix compile error on AIX/gcc-2.9 because of unknown std::stringstream
2014-04-24 09:24:55 -04:00
Kitware Robot 533d10e48c CMake Nightly Date Stamp 2014-04-24 00:01:10 -04:00
Kitware Robot 608532fa2b CMake Nightly Date Stamp 2014-04-23 00:01:11 -04:00
Rolf Eike Beer 817db64c2c fix compile error on AIX/gcc-2.9 because of unknown std::stringstream 2014-04-22 22:21:31 +02:00
Brad King 72ab764582 Merge branch 'osx-CFBundle-info-plist' into release 2014-04-22 12:53:51 -04:00
Tim Blechmann 149ce5db5e OS X: Fix Info.plist placement in a CFBundle
Fix cmOSXBundleGenerator::CreateCFBundle to place Info.plist under the
same root directory as the rest of the bundle.  Without this, Info.plist
was placed into CMAKE_BINARY_DIR, not CMAKE_CURRENT_BINARY_DIR because
the target path was not generated correctly.
2014-04-22 12:48:44 -04:00
Kitware Robot 2475acc497 CMake Nightly Date Stamp 2014-04-22 00:01:08 -04:00
Brad King b10083876c Merge topic 'feature-absence-hard-error'
8d0b1cca Features: FATAL_ERROR on compilers with no recorded features.
447fbb3f Tests: Execute compile features tests unconditionally.
597bb72e Tests: Run RunCMake.target_compile_features unconditionally.
2014-04-21 09:35:42 -04:00
Brad King 658cc11cf1 Merge topic 'fix-wix-cpack-crash'
cb59f5da CPackWIX: Delay creation of cmWIXPatch until CPack has initialized Logger
2014-04-21 09:32:33 -04:00
Brad King bb891c2ef1 Merge topic 'internal-error-backtrace'
3de4c295 cmake: Print C++ stack trace after INTERNAL_ERROR messages
2014-04-21 09:32:28 -04:00
Brad King 464c8ab3a2 Merge topic 'autorcc-target-dir'
33774ca2 QtAutogen: Put generated qrc files in a target-specific dir.
2014-04-21 09:32:27 -04:00