Commit Graph

18742 Commits

Author SHA1 Message Date
Brad King 001f9b3617 Add common base classes to Makefile and Ninja generators
Provide a place to move functionality common to both.
2015-07-09 09:50:05 -04:00
Brad King ab4b662832 Merge topic 'cpack-ifw-framework-version'
ad5c76af CPackIFW: Load module to set CPACK_IFW_FRAMEWORK_VERSION
2015-07-09 09:17:23 -04:00
Brad King 5827d9a626 Merge topic 'eclipse-cygwin-paths'
a672b16a Eclipse: Fix paths in target links on cygwin
2015-07-09 09:17:22 -04:00
Brad King 6b4fccd1a6 Merge topic 'empty-LINK_LIBRARIES'
7aa9e80e set_property: Fix crash when setting LINK_LIBRARIES to nothing
2015-07-09 09:17:17 -04:00
Brad King 53f8ef66a5 Merge topic 'update-kwsys'
65de27b8 Merge branch 'upstream-kwsys' into update-kwsys
42272a82 KWSys 2015-07-07 (8504e845)
2015-07-09 09:17:14 -04:00
Kitware Robot aa550e04f3 CMake Nightly Date Stamp 2015-07-09 00:01:06 -04:00
Konstantin Podsvirov ad5c76af64 CPackIFW: Load module to set CPACK_IFW_FRAMEWORK_VERSION
This setting was added to support QtIFW 2.0 in commit v3.3.0-rc1~70^2~1
(CPackIFW: Add QtIFW 2.0 support, 2015-04-27).  We need to load the
CPackIFW module to initialize it if it is not set.
2015-07-08 16:02:03 -04:00
Markus Grech a672b16a3a Eclipse: Fix paths in target links on cygwin
Add a missing GetEclipsePath call to fix generation of incorrect paths
for target links in Eclipse CDT generator which caused Eclipse to be
unable to open files through such links.  Without this the generator
would generate invalid links for source files under "[Targets]", making
Eclipse unable to open them.  The old links looked like
"C:/cygdrive/c/...", while new links correctly are "C:/...".
2015-07-08 14:29:11 -04:00
Brad King 7aa9e80e35 set_property: Fix crash when setting LINK_LIBRARIES to nothing
We use a special dedicated structure to store the LINK_LIBRARIES target
property.  Do not try to construct a string from a NULL value.  Instead
leave the property structure empty when no value is given.

Reported-by: Ghyslain Leclerc <ghleclerc@gmail.com>
2015-07-08 13:23:16 -04:00
Brad King c66d232c9c Merge topic 'string-append'
2b18cdca string: add APPEND subcommand
2015-07-08 09:21:52 -04:00
Brad King 0d457c3199 Merge topic 'preserve-generator-on-failure'
3b60232e cmake: Preserve cached CMAKE_GENERATOR when an error occurs (#15640)
2015-07-08 09:19:14 -04:00
Brad King 66e0681ea0 Merge topic 'cmake-install-components'
9ce7a663 Utilities/Sphinx: Add CMake_OPTIONAL_COMPONENT macro
d7725a17 CMake: Add cmakexbuild component as REQUIRED to Tools group for IFW installer
ecca2685 CMake: optional show LGPLv2.1 license when install cmake-gui component
c14f20f7 CMake: Fix Web Site shortcut in IFW installer for Windows
c823f04e CMake: New option CMake_INSTALL_COMPONENTS
7383e4d7 CMake: Install COMPONENTs (sphinx-man)
2531b909 CMake: Install COMPONENTs (QtDialog)
938bbc43 CMake: Install COMPONENTs
2015-07-08 09:19:12 -04:00
Brad King 8c1460653e Merge topic 'add-apple-swift-language'
bf112531 Add rudimentary support for the Apple Swift language with Xcode
2015-07-08 09:19:10 -04:00
Brad King ad91d0edd5 Merge topic 'auto_export_dll_symbols'
8f86407c Windows: Optionally generate DLL module definition files automatically
069aa93b bindexplib: Add support for "/bigobj" format objects
61bbbdcf bindexplib: Fix treatment of some symbols
de70c922 bindexplib: Teach DumpFile to return errors
8ea69dfe bindexplib: Build source as part of CMakeLib
2963cb2a bindexplib: Wrap long lines
4ff09893 bindexplib: Drop code that CMake does not need
7de8276c bindexplib: Add copyright/license notice block
65086ad7 bindexplib: Import original implementation from CERN
2015-07-08 09:19:07 -04:00
Brad King df97bea242 cmOutputConverter: Adopt command line escaping code
Port code from the KWSys System_Shell APIs into cmOutputConverter.
Drop it from our copy of KWSys because upstream will drop it too,
and by doing it in this commit 'git blame' may have an easier time
connecting the history of the content.
2015-07-08 09:09:49 -04:00
Brad King bb7eefe4dd cmOutputConverter: Adopt EscapeWindowsShellArgument method
Move it out of cmSystemTools and into cmOutputConverter.
2015-07-08 09:00:00 -04:00
Brad King cedd6e65d2 cmLocalVisualStudio7Generator: Remove unused include 2015-07-08 09:00:00 -04:00
Brad King 30faf20caf cmLocalGenerator: Remove unused include 2015-07-08 09:00:00 -04:00
Brad King 65de27b856 Merge branch 'upstream-kwsys' into update-kwsys 2015-07-08 08:58:51 -04:00
Kitware Robot b98574dab2 CMake Nightly Date Stamp 2015-07-08 00:01:05 -04:00
Brad King 3b60232ebc cmake: Preserve cached CMAKE_GENERATOR when an error occurs (#15640)
Since commit v2.4.0~4158 (When the initially configured generator is
invalid, allow the user to change the generator without deleting the cache
by hand, 2003-05-13) we remove CMAKE_GENERATOR from the cache if an error
occurs and CMAKE_MAKE_PROGRAM is not cached.  This worked at the time
because all generators initialized the CMAKE_MAKE_PROGRAM cache entry.
Since commit v3.0.0-rc1~260^2~4 (VS: Switch to internal CMAKE_MAKE_PROGRAM
lookup by generators, 2013-11-15) and commit v3.2.0-rc1~39^2 (Xcode:
Switch to internal CMAKE_MAKE_PROGRAM lookup by generator, 2015-01-28) the
VS and Xcode generators no longer store CMAKE_MAKE_PROGRAM in the cache.
Therefore any error during generation would wipe out CMAKE_GENERATOR from
the cache and cause the next configuration to choose a default generator.

Simply drop the behavior introduced by the original commit and always
preserve CMAKE_GENERATOR.  Since the time that behavior was introduced a
lot more state is now saved in CMakeCache.txt and CMakeFiles/ during the
initial configuration so it is not safe to change generators without
starting fresh anyway.
2015-07-07 14:12:38 -04:00
Brad King 86bbcdfeb8 Merge topic 'tar-portability'
edae4023 cmArchiveWrite: do not store sparse files when using standard tar formats
2015-07-07 09:53:52 -04:00
Brad King b33b5cd317 Merge topic 'refactor-cmListFileBacktrace'
d2475bb5 cmListFileBacktrace: Implement in terms of cmState::Snapshot.
238aac23 cmListFile: Remove FilePath member from cmListFileContext.
329098a9 cmMakefile: Set the FilePath on the frame from the cmState.
91158a33 cmMakefile: Create intermediate variables for snapshot frames.
821f91d6 cmMakefile: Create a scoped context for parsing listfiles.
30d44efa cmMakefile: Access the execution list file from the cmState.
6361f680 cmState: Store execution context.
94704d75 cmState: Add GetCallStackParent method.
a8e54460 cmState: Store snapshots for more different types.
dbafb015 cmMakefile: Split CallStack into two pieces.
27ff19a9 cmLinkedTree: Add operator* to the iterator.
2015-07-07 09:53:46 -04:00
Brad King 18fdf13192 Merge topic 'ctest-progress-ticks'
140b1864 CTest: hide progress ticks in verbose output
2015-07-07 09:53:44 -04:00
Brad King 43fafabd99 Merge topic 'fortran-module-preprocessor-defs'
0a203db5 Fortran: Fix passing of preprocessor definitions to dependency scanner
2015-07-07 09:53:42 -04:00
Daniel Pfeifer 2b18cdcaba string: add APPEND subcommand 2015-07-07 09:23:21 -04:00
Konstantin Podsvirov c14f20f7dd CMake: Fix Web Site shortcut in IFW installer for Windows 2015-07-07 09:16:44 -04:00
Konstantin Podsvirov c823f04e0c CMake: New option CMake_INSTALL_COMPONENTS
By default is OFF.
Now it's used with CPack IFW himself installer.
2015-07-07 09:16:40 -04:00
Konstantin Podsvirov 2531b90954 CMake: Install COMPONENTs (QtDialog)
Added "COMPONENT cmake-gui" for all install commands in lists file
2015-07-07 08:11:09 +03:00
Konstantin Podsvirov 938bbc4352 CMake: Install COMPONENTs
Added components:
- cmake
- ctest
- cpack
- cmake-gui
- ccmake
- data
- sphinx-html
- sphinx-singlehtml
- sphinx-qthelp

Other now Unspecified.
2015-07-07 08:11:09 +03:00
Kitware Robot fd23fc5711 CMake Nightly Date Stamp 2015-07-07 00:01:05 -04:00
Brad King bf11253163 Add rudimentary support for the Apple Swift language with Xcode
Allow the `Swift` language to be enabled with the Xcode generator for
Xcode >= 6.1.  Reject it on other generators and with older Xcode
versions.  Since Apple is the only vendor implementing the language
right now, the compiler id can be just `Apple`.
2015-07-06 16:15:49 -04:00
Roman Donchenko edae40239e cmArchiveWrite: do not store sparse files when using standard tar formats
Sparse files in tars are a GNU extension that libarchive will use if it
detects holes in the input file, even when using the standard pax/paxr
formats. Not all tar implementations can handle sparse files; in particular,
the internal implementation dpkg uses to extract packages can't. To
maximize archive portability, turn this feature off by clearing the
sparseness information from archive entries.
2015-07-06 15:01:08 -04:00
Daniel Pfeifer 140b186480 CTest: hide progress ticks in verbose output
The progress ticks and information about the length of the output are
useful when the actual output is not visible.  When the output is
printed, the progress ticks

* add no useful information,
* do not look pretty, and
* make the output hard to parse for tools.
2015-07-06 14:04:35 -04:00
Stephen Kelly d2475bb5c4 cmListFileBacktrace: Implement in terms of cmState::Snapshot.
Avoid copying many strings into each backtrace object.
2015-07-06 11:22:42 -04:00
Stephen Kelly 238aac2351 cmListFile: Remove FilePath member from cmListFileContext.
There is no need to store the FilePath for every function, as it is
known by other means.
2015-07-06 11:22:41 -04:00
Stephen Kelly 329098a9a0 cmMakefile: Set the FilePath on the frame from the cmState.
To verify unit tests pass and for future bisecting.
2015-07-06 11:22:41 -04:00
Stephen Kelly 91158a3369 cmMakefile: Create intermediate variables for snapshot frames. 2015-07-06 11:22:41 -04:00
Stephen Kelly 821f91d6ab cmMakefile: Create a scoped context for parsing listfiles.
Update the Syntax tests to check for updated/improved backtraces.
2015-07-06 11:22:41 -04:00
Bill Hoffman 8f86407cfd Windows: Optionally generate DLL module definition files automatically
Create target property WINDOWS_EXPORT_ALL_SYMBOLS to automatically
generate a module definition file from MS-compatible .obj files and give
it to the linker in order to export all symbols from the .dll part of a
SHARED library.
2015-07-06 11:11:02 -04:00
Bill Hoffman 069aa93b55 bindexplib: Add support for "/bigobj" format objects 2015-07-06 11:11:01 -04:00
Bill Hoffman 61bbbdcf9c bindexplib: Fix treatment of some symbols 2015-07-06 11:11:01 -04:00
Bill Hoffman de70c922d9 bindexplib: Teach DumpFile to return errors
This will allow callers to know if it worked.
2015-07-06 11:11:01 -04:00
Bill Hoffman 8ea69dfef1 bindexplib: Build source as part of CMakeLib 2015-07-06 11:11:01 -04:00
Bill Hoffman 2963cb2a55 bindexplib: Wrap long lines 2015-07-06 11:11:01 -04:00
Bill Hoffman 4ff0989323 bindexplib: Drop code that CMake does not need 2015-07-06 11:11:00 -04:00
Bill Hoffman 7de8276ca9 bindexplib: Add copyright/license notice block 2015-07-06 11:11:00 -04:00
Bill Hoffman 65086ad778 bindexplib: Import original implementation from CERN
Download the original implementation provided by root.cern.ch with the
following session:

$ wget https://raw.githubusercontent.com/gordonwatts/root-vc-port/f0ee59af/build/win/bindexplib/bindexplib.cxx
$ sha1sum bindexplib.cxx
fa6efafb2c58a0644bd0f6a56fe02ee0d55c7fcd  bindexplib.cxx
$ sed -i 's/ *$//;s/'$'\t''/        /' bindexplib.cxx
2015-07-06 11:10:58 -04:00
Brad King b37fb49646 Merge branch 'fortran-module-preprocessor-defs' into release 2015-07-06 10:42:42 -04:00
Brad King 0a203db5dc Fortran: Fix passing of preprocessor definitions to dependency scanner
In commit v3.3.0-rc1~352^2~3 (Genex: Allow COMPILE_LANGUAGE when
processing compile definitions, 2015-03-04) the name of the variable
used to pass preprocessor definitions to the Fortran dependency scanner
was changed to be per-language, but the actual dependency scanning code
was not updated accordingly.  Update the code and add a test case.

Reported-by: Radovan Bast <radovan.bast@gmail.com>
2015-07-06 10:35:02 -04:00
Brad King 7e86f567ac Merge topic 'show-number-of-tests'
42747fcc CTest: Show the number of tests for each label in the summary
2015-07-06 10:08:00 -04:00
Betsy McPhail 42747fcc73 CTest: Show the number of tests for each label in the summary 2015-07-06 10:06:35 -04:00
Kitware Robot d1db123e1c CMake Nightly Date Stamp 2015-07-06 00:01:04 -04:00
Stephen Kelly 30d44efaf8 cmMakefile: Access the execution list file from the cmState. 2015-07-06 01:37:17 +02:00
Stephen Kelly 6361f68056 cmState: Store execution context.
Extend snapshot creation API to store the file being executed and the
entry point to get to that context.
2015-07-06 01:37:15 +02:00
Stephen Kelly 94704d759c cmState: Add GetCallStackParent method. 2015-07-05 16:56:36 +02:00
Kitware Robot 4127a638b0 CMake Nightly Date Stamp 2015-07-05 00:01:04 -04:00
Stephen Kelly a8e5446024 cmState: Store snapshots for more different types.
Adjust cmMakefile implementation to create the snapshots.
2015-07-04 11:51:27 +02:00
Stephen Kelly dbafb01580 cmMakefile: Split CallStack into two pieces. 2015-07-04 11:51:27 +02:00
Stephen Kelly 27ff19a96a cmLinkedTree: Add operator* to the iterator. 2015-07-04 11:51:27 +02:00
Kitware Robot 9b7904d528 CMake Nightly Date Stamp 2015-07-04 00:01:04 -04:00
Kitware Robot 58853582be CMake Nightly Date Stamp 2015-07-03 00:01:05 -04:00
Brad King d59ab78585 Merge topic 'ctest-test-load'
f62d301b ctest: Optionally avoid starting tests that may exceed a given CPU load
07c550ca cmCTestMultiProcessHandler: Refactor RUN_SERIAL implementation
8bf5a80b cmSystemTools: Add StringToULong helper
dffc307c Tests: Teach RunCMake infrastructure to optionally timeout
2015-07-02 10:00:51 -04:00
Brad King 3ae8e84ef5 Merge topic 'update-kwsys'
701226de Merge branch 'upstream-kwsys' into update-kwsys
799c1575 KWSys 2015-07-02 (1f19c187)
2015-07-02 09:06:19 -04:00
Brad King ef97d4429f Merge topic 'use-generator-target'
d4a8a554 cmGlobalGenerator: Map local generators to generator targets.
faec4e61 cmComputeTargetDepends: Change API to use cmGeneratorTarget.
2015-07-02 09:06:17 -04:00
Brad King 5647b243be Merge topic 'clean-up-cmMakefile'
48c6a92b cmMakefile: Merge two Scope types and instances.
e28e110d cmMakefile: Rename a variable.
3f5200ec cmMakefile: Expand the scope of scoped buildsystem file state.
0a34ea59 cmMakefile: Compute the filename processed in a scope.
be5997ef cmMakefile: Inline ProcessBuildsystemFile into only caller.
5bf9bfda cmMakefile: Don't use string comparison to check directory level.
f346d88d cmMakefile: Avoid invoking EnforceDirectoryLevelRules.
b6614031 cmMakefile: Add filename to ReadListFile auto scopes.
6708d216 cmMakefile: Remove IncludeScope Quiet call.
0818737c cmMakefile: Make listfile scopes responsible for logical checks.
dd7e4275 cmMakefile: Move the lexical scope.
92cecd93 cmMakefile: Add automatic scopes to listfile readers.
276c6225 cmMakefile: Move the IncludeScope to where it is used.
2015-07-02 09:06:13 -04:00
Brad King 701226de27 Merge branch 'upstream-kwsys' into update-kwsys 2015-07-02 08:54:12 -04:00
Kitware Robot c6976b0b78 CMake Nightly Date Stamp 2015-07-02 00:01:04 -04:00
Stephen Kelly d4a8a554ea cmGlobalGenerator: Map local generators to generator targets. 2015-07-01 19:46:19 +02:00
Stephen Kelly faec4e611d cmComputeTargetDepends: Change API to use cmGeneratorTarget. 2015-07-01 19:46:19 +02:00
Kitware Robot 09993d888a CMake Nightly Date Stamp 2015-07-01 00:01:05 -04:00
Stephen Kelly 48c6a92b28 cmMakefile: Merge two Scope types and instances. 2015-06-30 23:14:22 +02:00
Stephen Kelly e28e110d22 cmMakefile: Rename a variable. 2015-06-30 23:14:22 +02:00
Stephen Kelly 3f5200ec5f cmMakefile: Expand the scope of scoped buildsystem file state. 2015-06-30 23:14:21 +02:00
Stephen Kelly 0a34ea597a cmMakefile: Compute the filename processed in a scope. 2015-06-30 23:14:21 +02:00
Stephen Kelly be5997ef77 cmMakefile: Inline ProcessBuildsystemFile into only caller. 2015-06-30 23:14:21 +02:00
Stephen Kelly 5bf9bfda3f cmMakefile: Don't use string comparison to check directory level. 2015-06-30 23:14:20 +02:00
Stephen Kelly f346d88d10 cmMakefile: Avoid invoking EnforceDirectoryLevelRules.
This is part of the CMP0000 implementation and only needs to be invoked
for top-level buildsystem files currently.
2015-06-30 23:14:20 +02:00
Stephen Kelly b661403177 cmMakefile: Add filename to ReadListFile auto scopes. 2015-06-30 23:14:19 +02:00
Stephen Kelly 6708d21664 cmMakefile: Remove IncludeScope Quiet call. 2015-06-30 23:14:19 +02:00
Stephen Kelly 0818737c85 cmMakefile: Make listfile scopes responsible for logical checks.
Remove the LexicalPushPop.
2015-06-30 23:14:18 +02:00
Stephen Kelly dd7e42758d cmMakefile: Move the lexical scope. 2015-06-30 23:14:18 +02:00
Stephen Kelly 92cecd9369 cmMakefile: Add automatic scopes to listfile readers. 2015-06-30 23:14:18 +02:00
Stephen Kelly 276c62253e cmMakefile: Move the IncludeScope to where it is used. 2015-06-30 23:14:17 +02:00
Brad King 7e3ac12df4 Merge topic 'enable_language-fail-earlier'
327490e6 enable_language: Allow CMakeDetermine<LANG>Compiler module to fail early
2015-06-30 10:23:31 -04:00
Betsy McPhail f62d301b92 ctest: Optionally avoid starting tests that may exceed a given CPU load
Add a TestLoad setting to CTest that can be set via a new --test-load
command-line option, CTEST_TEST_LOAD variable, or TEST_LOAD option to
the ctest_test command.  Teach cmCTestMultiProcessHandler to measure
the CPU load and avoid starting tests that may take more than the
spare load currently available.  The expression

 <current_load> + <test_processors> <= <max-load>

must be true to start a new test.

Co-Author: Zack Galbreath <zack.galbreath@kitware.com>
2015-06-30 10:21:37 -04:00
Zack Galbreath 07c550caa2 cmCTestMultiProcessHandler: Refactor RUN_SERIAL implementation
The original implementation of the RUN_SERIAL test property worked by
having such a test consume all available processors.  Instead use an
explicit flag to indicate that a serial test is running.  This avoids
artificially inflating the number of processors a test is expected to
consume.
2015-06-30 10:21:37 -04:00
Brad King 8bf5a80b96 cmSystemTools: Add StringToULong helper
Convert a string to an unsigned integer and reject any extra input.
2015-06-30 10:21:37 -04:00
Kitware Robot 5ff47ea93d CMake Nightly Date Stamp 2015-06-30 00:01:04 -04:00
Brad King 327490e698 enable_language: Allow CMakeDetermine<LANG>Compiler module to fail early
If the module reports a FATAL_ERROR, skip the rest of the steps to
enable the language to avoid unnecessary following error messages.
2015-06-29 16:18:32 -04:00
Kitware Robot ebd5eeb656 CMake Nightly Date Stamp 2015-06-29 00:01:04 -04:00
Kitware Robot e5f991f62f CMake Nightly Date Stamp 2015-06-28 00:01:04 -04:00
Kitware Robot b702415d3a CMake Nightly Date Stamp 2015-06-27 00:01:05 -04:00
Brad King 74c99d11bc CMake 3.3.0-rc3 2015-06-26 08:44:27 -04:00
Brad King 6c098a4a72 Merge topic 'fix-target_link_libraries-wrong-dir'
30c2e1dd cmTarget: Fix diagnostic of target_link_libraries in wrong directory (#15626)
2015-06-26 08:41:16 -04:00
Kitware Robot 086b19aeda CMake Nightly Date Stamp 2015-06-26 00:01:05 -04:00
Brad King 1051c4c810 Merge topic 'export-escaping'
60eb396f Export: Escape exported property values when writing CMake language files
2015-06-25 10:39:21 -04:00
Brad King bd5bf762c8 Merge topic 'cmake-gui-osx-install-command-line'
d2cf92ec cmake-gui: Change --install to use /usr/local/bin by default (#15627)
2015-06-25 10:39:19 -04:00
Brad King e4a9346dba Merge branch 'fix-target_link_libraries-wrong-dir' into release 2015-06-25 10:11:50 -04:00
Brad King 30c2e1dd16 cmTarget: Fix diagnostic of target_link_libraries in wrong directory (#15626)
Since commit v3.3.0-rc1~62^2~5 (cmTarget: Store only cmListFileContext
for CMP0023 handling, 2015-05-18) a call to target_link_libraries on a
target that was defined in another (non-ancestor) directory crashes
because no execution context is left active.  Fix this by getting the
execution context from the actual cmMakefile where the current
target_link_libraries call takes place.  Test this by verifying that
such calls correctly produce an error diagnostic instead of crashing.
2015-06-25 09:14:26 -04:00