Commit Graph

19575 Commits

Author SHA1 Message Date
Stephen Kelly 09466690f0 Add cmOutputConverter include where needed. 2015-10-05 20:58:06 +02:00
Stephen Kelly 0a73044579 cmake: Remove needless cmLocalGenerator creation. 2015-10-05 20:52:26 +02:00
Stephen Kelly 3339a7508e CTest: Port away from cmLocalGenerator. 2015-10-05 20:46:59 +02:00
Stephen Kelly 6da4cd8fb9 CTest: Remove needless cmLocalGenerator creation. 2015-10-05 20:46:59 +02:00
Stephen Kelly 94cc4e74ae CPack: Remove needless cmLocalGenerator creation. 2015-10-05 19:59:23 +02:00
Stephen Kelly f7738fd122 cmLocalGenerator: Constify target in API. 2015-10-05 19:22:02 +02:00
Stephen Kelly b2054e1661 QtAutogen: Port global generator to cmGeneratorTarget. 2015-10-05 19:21:59 +02:00
Stephen Kelly 1e757c318b QtAutogen: Use a target type between loops. 2015-10-05 19:21:56 +02:00
Stephen Kelly 5fb730174d QtAutogen: Make some private statics file static. 2015-10-05 19:21:48 +02:00
Stephen Kelly 86f7fc5d55 QtAutogen: Move SetupAutoRccTarget method. 2015-10-05 18:55:09 +02:00
Stephen Kelly 2aa3f500c4 QtAutogen: Move MergeRccOptions method. 2015-10-05 18:50:47 +02:00
Stephen Kelly 59b91107d1 QtAutogen: Move GetRccExecutable method. 2015-10-05 18:50:00 +02:00
Stephen Kelly 7254f64525 QtAutogen: Move SetupAutoUicTarget method. 2015-10-05 18:48:41 +02:00
Stephen Kelly 975b753997 QtAutogen: Move GetUicOpts method. 2015-10-05 18:47:49 +02:00
Stephen Kelly f75ec6044c QtAutogen: Move SetupAutoMocTarget method. 2015-10-05 18:46:58 +02:00
Stephen Kelly f3158e45b8 QtAutogen: Move GetCompileDefinitionsAndDirectories method. 2015-10-05 18:46:11 +02:00
Stephen Kelly 493b17f8c7 QtAutogen: Move SetupSourceFiles method. 2015-10-05 18:45:21 +02:00
Stephen Kelly 616f03114e cmGlobalGenerator: Move path computation to Compute. 2015-10-05 18:43:18 +02:00
Stephen Kelly 9eea0486bf cmGlobalGenerator: Do more computation at compute time. 2015-10-05 18:43:18 +02:00
Stephen Kelly 2eca055988 cmGlobalGenerator: De-virtualize Compute().
It now implements the NVI pattern.
2015-10-05 18:43:18 +02:00
Stephen Kelly 21f428f4c0 VisualStudio: Replace Compute override with AddExtraIDETargets override. 2015-10-05 18:43:18 +02:00
Stephen Kelly a9588e90bb VisualStudio10: Initialize the LongestSource at generate time.
There is no need to initialize it at compute time.
2015-10-05 18:43:17 +02:00
Stephen Kelly 4407eee013 cmGlobalGenerator: Call AddExtraIDETargets as a hook of Compute().
Relieve the Xcode generator of having to reimplement Compute().
2015-10-05 18:43:17 +02:00
Stephen Kelly a09c545d3a Xcode: Extract a AddExtraIDETargets method. 2015-10-05 18:43:17 +02:00
Stephen Kelly d945b36a93 cmExportTryCompileFileGenerator: Evaluate genex with cmGeneratorTarget. 2015-10-05 18:42:27 +02:00
Stephen Kelly 48f8b6acf3 cmExportFileGenerator: Evaluate genex with cmGeneratorTarget. 2015-10-05 18:42:27 +02:00
Brad King 091fbd6964 Begin post-3.4 development 2015-10-05 10:16:03 -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
Gilles Khouzam 5dfc4c5f50 VS: Add hook to initialize Windows platform settings
Give VS 10+ generators a chance to choose Windows platform settings just
as they already can for WindowsCE, WindowsStore, and WindowsPhone.
2015-10-02 09:43:24 -04:00
Gilles Khouzam 61c472a287 cmSystemTools: Add VersionCompareGreater helper
Wrap a call to VersionCompare with OP_GREATER in a signature suitable
for use with std::sort.
2015-10-02 09:43:24 -04:00
Kitware Robot 02bc311138 CMake Nightly Date Stamp 2015-10-02 00:01:06 -04:00
Brad King 59202e17ff Merge topic 'compiler-links-statically'
8b4873a1 Disable shared library support when compiler links statically
e90f463a Drop executable symbol export if platform does not support shared libs
2015-10-01 11:02:38 -04:00
Brad King 5303c187b1 Merge topic 'fix-warnings'
f90acf52 cmVisualStudio10TargetGenerator: Fix unsigned integer constant type
e67e0155 cmMakefile: Avoid name conflict with Solaris global typedef
2015-10-01 11:02:34 -04:00
Kitware Robot ab99010a34 CMake Nightly Date Stamp 2015-10-01 00:01:06 -04:00
Chuck Atkins e90f463a31 Drop executable symbol export if platform does not support shared libs
Instead of always adding CMAKE_SHARED_LIBRARY_LINK_<LANG>_FLAGS to
executables, or just when the ENABLE_EXPORTS property is set (CMP0065),
make sure that the target platform also actually supports shared
libraries.  If not, then the executable cannot possibly provide symbols
to them anyway.
2015-09-30 14:59:11 -04:00
Brad King 2cf71cbdf6 Merge topic 'update-kwsys'
def90d5f Merge branch 'upstream-kwsys' into update-kwsys
cc144ebf KWSys 2015-09-28 (2089567a)
2015-09-30 09:43:37 -04:00
Brad King f90acf522b cmVisualStudio10TargetGenerator: Fix unsigned integer constant type
Add a 'u' suffix to FILETIME component integer constant initializers.
This avoids warnings about the range of the signed constant value.
2015-09-30 08:53:09 -04:00
Brad King e67e0155d9 cmMakefile: Avoid name conflict with Solaris global typedef
On Solaris there is a global typedef called 'single':

 /usr/include/floatingpoint.h:77:15: note: shadowed declaration is here
  typedef float single;

Avoid shadowing it by using a different name.
2015-09-30 08:47:02 -04:00
Kitware Robot 11733d2dae CMake Nightly Date Stamp 2015-09-30 00:01:05 -04:00
Brad King def90d5fa5 Merge branch 'upstream-kwsys' into update-kwsys 2015-09-29 10:10:03 -04:00
Brad King f23ab1a150 Merge topic 'vs-old-rule-files'
fa5284f0 VS: Prevent generated "rule" files from causing rebuilds
2015-09-29 10:08:15 -04:00
Brad King 130f116340 Merge topic 'fix-qtautogen-with-object-library-Ninja'
9bc6eb8e cmGlobalGenerator: Initialize generator targets on construction (#15729)
2015-09-29 10:08:13 -04:00
Brad King ee1b041108 Merge topic 'simplify-qt-autogen'
1fe39020 QtAutogen: Port away from cmLocalGenerator.
59a729b2 QtAutogen: Split initializer class into separate file.
1e83a963 QtAutogen: Split initializer methods into separate class.
12f0e13c QtAutogen: Simplify generator initialization API.
65ff75d3 QtAutogen: Remove unnecessary dereference.
64b78c14 QtAutogen: Move Source initialization to prior loop.
c3c20d3c QtAutogen: Add _automoc.cpp sources before initializing.
8b6ec29d QtAutogen: Move initialization condition to caller.
9470b056 QtAutogen: Move condition to prior loop.
b7491b1c QtAutogen: Move condition to prior loop.
e791c854 QtAutogen: Make some methods static.
6210ec64 QtAutogen: Make internal method private.
a3ceb998 QtAutogen: Don't use members to initialize automoc targets.
dced2fe1 QtAutogen: Rename variable.
f9a77e76 QtAutogen: Don't use a member to store skipped uic files.
c3633e7a QtAutogen: Add missing includes and forward declarations.
2015-09-29 10:08:10 -04:00
Brad King 6a072563d2 Merge topic 'cpack-package-empty-dirs'
9298f56d CPack: allow packaging of empty directories
ecd71c9c SystemTools: time operations on directories
19c6f4ee SystemTools: set time file permissions
749a140a CPackDeb: allow empty directories in component packages
2015-09-29 10:08:06 -04:00
Brad King 1d11f3ca68 Merge topic 'link-https-cmake.org'
da7276cf Replace http://www.cmake.org URLs with https://cmake.org
2015-09-29 10:08:02 -04:00
Stephen Kelly 9bc6eb8e1f cmGlobalGenerator: Initialize generator targets on construction (#15729)
The Ninja generator and Visual Studio generators are special-cased for the
QtAutogen feature.  In order to reduce the number of custom targets, the Visual
Studio generators prefer to create custom commands instead, and in order to
create appropriate Ninja files, generated rcc files are listed as byproducts.

This requires the use of the GetConfigCommonSourceFiles API of the
cmGeneratorTarget for those generators when initializing the autogen target.
The initializer method is called from Compute() after the cmGeneratorTarget
objects are created, however the initialization of the object directory occurs
later in the InitGeneratorTargets method.  That means that the resulting object
locations are computed incorrectly and cached before the object directory is
determined, so the generated buildsystem can not find the object files.

The initialization of the object directory was split from the creation of
cmGeneratorTarget instances in commit 0e0258c8 (cmGlobalGenerator: Split
creation of generator object from initialization., 2015-07-25).  The motivation
for the split was to do only what is essential to do early in cases where
cmGeneratorTargets need to be created at configure-time.  That is required for
the purpose of implementing policies CMP0024 and CMP0026, and for
try_compile(LINK_LIBRARIES).  However, the split was not really necessary.

Compute the object directory in the cmGeneratorTarget constructor instead.

The QtAutogen unit test already tests the use of TARGET_OBJECTS with AUTOMOC,
and that test already passes on Ninja.  The reason it already passes is that
the QtAutogen target also uses the AUTORCC feature, and specifies several qrc
files in its SOURCES.  Later in the Compute algorithm (after the
InitGeneratorTargets call), the rcc files are determined and target->AddSource
is called.  The AddSource call clears the previously mentioned cache of source
files, causing it to be regenerated when next queried, this time taking account
of the object directory.

Extend the test suite with a new target which does not make use of AUTORCC with
qrc files so that the test added alone would break without the fix in this
commit.
2015-09-29 09:56:34 -04:00
Stephen Kelly 1fe390201d QtAutogen: Port away from cmLocalGenerator. 2015-09-29 09:56:23 -04:00
Stephen Kelly 59a729b2be QtAutogen: Split initializer class into separate file. 2015-09-29 09:56:23 -04:00
Kitware Robot db70fcb110 CMake Nightly Date Stamp 2015-09-29 00:01:06 -04:00
Domen Vrankar 9298f56dce CPack: allow packaging of empty directories 2015-09-29 01:18:18 +02:00
Domen Vrankar ecd71c9c1a SystemTools: time operations on directories
On windows FILE_FLAG_BACKUP_SEMANTICS enables us to
read/write time both on files and directories.
2015-09-29 01:18:14 +02:00
Domen Vrankar 19c6f4eefc SystemTools: set time file permissions
On Windows if file permissions are read only
FILE_WRITE_ATTRIBUTES will enables us to
get file handle and change file time.
2015-09-29 01:18:10 +02:00
Raffi Enficiaud 749a140a0c CPackDeb: allow empty directories in component packages 2015-09-29 01:18:04 +02:00
Mike Pagel fa5284f07f VS: Prevent generated "rule" files from causing rebuilds
When we generate a ".rule" file to attach a custom command in a VS IDE
project, set the file timestamp to be old enough to prevent the rule
from re-running due to its timestamp.
2015-09-28 10:58:57 -04:00
Brad King 6c6a8c5d5a Merge topic 'minor-cleanups'
51e48637 VS: Remove impossible condition.
203eada6 cmMakefile: Remove Configured state.
5642449a cmCommand: Remove IsDiscouraged interface.
77c6a339 cmSetCommand: Re-use local named variable.
732f5511 cmSetCommand: Fix typo in comment.
8544f16d cmGlobalGenerator: Devirtualize method.
9096daaf Ninja: Remove unused variable.
2015-09-28 10:44:59 -04:00
Brad King bc92647b91 Merge topic 'update-kwsys'
946e8615 Merge branch 'upstream-kwsys' into update-kwsys
29ad0694 KWSys 2015-09-25 (dc4e4a55)
2015-09-28 10:44:52 -04:00
Brad King 5ed2292d3a Merge topic 'ninja-cleanup-path-conversion'
6e2a4087 Ninja: Centralize path conversion in global generator (#15757)
993d0641 Ninja: Fix OBJECT_DIR placeholder substitution in link rules
2015-09-28 10:44:48 -04:00
Brad King cfcd5e8518 Merge topic 'genex-SHELL_PATH'
ca6ba3fe Genex: Add a SHELL_PATH expression
7de868c4 Tests: Simplify GeneratorExpression check implementation
2015-09-28 10:44:43 -04:00
Stefan Kislinskiy ca6ba3fee5 Genex: Add a SHELL_PATH expression
Some commands on Windows do not understand forward slash paths and
require backslashes.  In order to help projects generate shell
invocations of such commands, provide a generator expression to convert
paths to the shell-preferred path format for the current generator.
This will allow custom commands to generate paths the same way CMake
does for compiler command invocations.
2015-09-28 10:37:33 -04:00
Kitware Robot 4480a9262d CMake Nightly Date Stamp 2015-09-28 00:01:04 -04:00
Stephen Kelly 51e4863782 VS: Remove impossible condition. 2015-09-27 12:09:33 +02:00
Stephen Kelly 203eada65e cmMakefile: Remove Configured state.
It is vestigial.
2015-09-27 12:08:07 +02:00
Stephen Kelly 5642449a69 cmCommand: Remove IsDiscouraged interface.
This used to affect documentation, but does not affect the Sphinx
documentation.
2015-09-27 12:08:07 +02:00
Stephen Kelly 77c6a339af cmSetCommand: Re-use local named variable. 2015-09-27 12:08:07 +02:00
Stephen Kelly 732f551187 cmSetCommand: Fix typo in comment. 2015-09-27 12:08:06 +02:00
Stephen Kelly 8544f16d1e cmGlobalGenerator: Devirtualize method. 2015-09-27 12:08:06 +02:00
Stephen Kelly 9096daaf5c Ninja: Remove unused variable. 2015-09-27 12:08:06 +02:00
Kitware Robot a100888b75 CMake Nightly Date Stamp 2015-09-27 00:01:05 -04:00
Stephen Kelly 1e83a963d8 QtAutogen: Split initializer methods into separate class. 2015-09-26 19:32:54 +02:00
Stephen Kelly 12f0e13c5f QtAutogen: Simplify generator initialization API. 2015-09-26 19:32:54 +02:00
Stephen Kelly 65ff75d3f5 QtAutogen: Remove unnecessary dereference. 2015-09-26 19:32:54 +02:00
Stephen Kelly 64b78c147f QtAutogen: Move Source initialization to prior loop.
Ensure that all targets have their _automoc.cpp before attempting
to initialize the autogen target.  The initialization evaluates
generator expressions for target sources, and must include the
_automoc.cpp of object library dependents in order for TARGET_OBJECTS
to include the object file for the corresponding _automoc.cpp file.
2015-09-26 19:32:53 +02:00
Stephen Kelly c3c20d3ce3 QtAutogen: Add _automoc.cpp sources before initializing. 2015-09-26 19:32:53 +02:00
Stephen Kelly 8b6ec29d40 QtAutogen: Move initialization condition to caller. 2015-09-26 19:32:53 +02:00
Stephen Kelly 9470b056fc QtAutogen: Move condition to prior loop. 2015-09-26 19:32:53 +02:00
Stephen Kelly b7491b1cda QtAutogen: Move condition to prior loop. 2015-09-26 19:32:52 +02:00
Stephen Kelly e791c85419 QtAutogen: Make some methods static. 2015-09-26 19:32:52 +02:00
Stephen Kelly 6210ec644a QtAutogen: Make internal method private. 2015-09-26 19:32:52 +02:00
Stephen Kelly a3ceb998d7 QtAutogen: Don't use members to initialize automoc targets. 2015-09-26 19:32:50 +02:00
Stephen Kelly dced2fe10f QtAutogen: Rename variable. 2015-09-26 19:21:49 +02:00
Stephen Kelly f9a77e76e4 QtAutogen: Don't use a member to store skipped uic files. 2015-09-26 18:48:23 +02:00
Stephen Kelly c3633e7a41 QtAutogen: Add missing includes and forward declarations. 2015-09-26 18:48:23 +02:00
Brad King 946e861519 Merge branch 'upstream-kwsys' into update-kwsys 2015-09-26 10:42:35 -04:00
Brad King 64b7baac4a Merge topic 'revert-cpack-package-empty-dirs'
4fa17553 Revert topic 'cpack-package-empty-dirs'
2015-09-26 10:40:40 -04:00
Kitware Robot 1ec54fff11 CMake Nightly Date Stamp 2015-09-26 00:01:07 -04:00
Brad King 414cc18a9a Merge topic 'revert-cmake-W-options'
2e606306 Merge branch 'improve-variable-help-formatting' into revert-cmake-W-options
81739e92 Revert topic 'cmake-W-options' (#15747)
2015-09-25 16:16:17 -04:00
Brad King da7276cf94 Replace http://www.cmake.org URLs with https://cmake.org
The latter is now the preferred URL for visiting cmake.org with a
browser.  Convert using the shell code:

 git ls-files -z | xargs -0 sed -i 's|http://www\.cmake|https://cmake|g'
2015-09-25 15:47:39 -04:00
Brad King 6e2a4087f2 Ninja: Centralize path conversion in global generator (#15757)
In the Ninja generator we run all build rules from the top of the build
tree rather than changing into each subdirectory.  Therefore we convert
all paths relative to the HOME_OUTPUT directory.  However, the Convert
method on cmLocalGenerator restricts relative path conversions to avoid
leaving the build tree with a "../" sequence.  Therefore conversions
performed for "subdirectories" that are outside the top of the build
tree always use full paths while conversions performed for
subdirectories that are inside the top of the build tree may use
relative paths to refer to the same files.

Since Ninja always runs rules from the top of the build tree we should
convert them using only the top-level cmLocalGenerator in order to
remain consistent.  Also extend the test suite with a case that fails
without this fix.
2015-09-25 14:36:30 -04:00
Brad King 993d064197 Ninja: Fix OBJECT_DIR placeholder substitution in link rules
Convert the OBJECT_DIR value to the shell output format so that
it is properly quoted when the path contains spaces.
2015-09-25 14:36:30 -04:00
Brad King 4fa1755315 Revert topic 'cpack-package-empty-dirs'
The changes in commit 47b060ae (CPackDeb: allow empty directories in
component packages, 2015-09-21), commit b58de9fe (CPack: allow packaging
of empty directories, 2015-09-21), and commit b761e90d (CPack: remove
accidental changes, 2015-09-22) regressed packaging of CMake itself.
Revert the changes until they can be revised and rebased on other
changes that make additional fixes.
2015-09-25 11:55:59 -04:00
Brad King 02f95f9b7c Merge topic 'fix-try_compile-internal-argv'
710bde43 cmCoreTryCompile: Fix internal argument vector construction
2015-09-25 10:12:42 -04:00
Brad King 5a83303f50 Merge topic 'install-directory-dest-genex'
bd189cc2 install: Allow generator expressions in DIRECTORY DESTINATION
2015-09-25 10:12:40 -04:00
Brad King ede54544f1 Merge topic 'fix-max-path-initialization'
8bfff686 cmLocalGenerator: Compute object max path on construction.
2c2479fb cmGlobalGenerator: Create all local generators after Configure().
194bb068 cmGlobalGenerator: Remove unused method.
c5f07e05 cmGlobalGenerator: Create local generators after all makefiles configured.
dd408de4 cmGlobalGenerator: Create local generator after configuring the makefile.
8a88089b cmMakefile: Create the local generator after configuring the makefile.
934aa454 Makefiles: Remove need to create local generator at configure time.
61b48e70 Makefiles: Port to cmOutputConverter.
2015-09-25 10:12:35 -04:00
Kitware Robot 7c0b22a84e CMake Nightly Date Stamp 2015-09-25 00:01:06 -04:00
Brad King 710bde43aa cmCoreTryCompile: Fix internal argument vector construction
In TryCompileCode we construct an internal argv[] vector that needs to
have a fake argv[0] so our internal cmake command line looks like a real
command line.  Fix construction of the fake argv[0] when try_compile is
called without the CMAKE_FLAGS argument.  Otherwise the first internal
-DVAR=val argument that we use to pass information like
CMAKE_OSX_SYSROOT is ignored.
2015-09-24 15:26:32 -04:00
Brad King cbfae8c3f2 Merge topic 'install-files-dest-genex'
69ab5f55 Tests: Cover install(FILES) with a genex DESTINATION
17aa6fd3 install: Allow generator expressions in FILES DESTINATION
2015-09-24 10:28:54 -04:00
Robert Goulet bd189cc24e install: Allow generator expressions in DIRECTORY DESTINATION 2015-09-24 09:13:03 -04:00
Stephen Kelly 8bfff68642 cmLocalGenerator: Compute object max path on construction. 2015-09-24 09:39:39 +02:00
Stephen Kelly 2c2479fbed cmGlobalGenerator: Create all local generators after Configure(). 2015-09-24 09:39:39 +02:00
Stephen Kelly 194bb06803 cmGlobalGenerator: Remove unused method. 2015-09-24 09:39:39 +02:00
Stephen Kelly c5f07e0537 cmGlobalGenerator: Create local generators after all makefiles configured. 2015-09-24 09:39:38 +02:00
Stephen Kelly dd408de46b cmGlobalGenerator: Create local generator after configuring the makefile. 2015-09-24 09:39:38 +02:00
Stephen Kelly 8a88089bbe cmMakefile: Create the local generator after configuring the makefile.
The local generator is not used during configure time.
2015-09-24 09:39:38 +02:00
Stephen Kelly 934aa454d0 Makefiles: Remove need to create local generator at configure time.
This method is used during try_compile.
2015-09-24 09:39:38 +02:00
Stephen Kelly 61b48e70bc Makefiles: Port to cmOutputConverter. 2015-09-24 09:39:38 +02:00
Kitware Robot 02ccef2ae5 CMake Nightly Date Stamp 2015-09-24 00:01:05 -04:00
Robert Goulet 17aa6fd362 install: Allow generator expressions in FILES DESTINATION 2015-09-23 14:37:17 -04:00
Brad King c3b3284c93 Merge topic 'vs-target-ordering'
40c7b461 VS: Fix rebuild with regeneration after input CMake code change (#15754)
03bfe71a VS: Refactor target ordering logic
2015-09-23 09:23:01 -04:00
Brad King 3779716616 Merge topic 'cpack-package-empty-dirs'
b761e90d CPack: remove accidental changes
2015-09-23 09:22:59 -04:00
Domen Vrankar b761e90d70 CPack: remove accidental changes
Remove changes accidentally included in commit b58de9fe (CPack: allow
packaging of empty directories, 2015-09-22).
2015-09-23 09:15:57 -04:00
Kitware Robot 44f2ade2cb CMake Nightly Date Stamp 2015-09-23 00:01:05 -04:00
Brad King 2e6063068c Merge branch 'improve-variable-help-formatting' into revert-cmake-W-options
Resolve conflicts in

 Help/variable/CMAKE_ERROR_DEPRECATED.rst
 Help/variable/CMAKE_WARN_DEPRECATED.rst

by integrating changes from both sides.
2015-09-22 13:57:08 -04:00
Brad King 81739e9215 Revert topic 'cmake-W-options' (#15747)
The changes in commit c96fe0b4 (cmake: Add -W options to control
deprecation warnings and errors, 2015-07-28) fail to account for
-Wdev warnings produced by places in CMake other than message().
This causes a regression in which -Wno-dev fails to suppress such
warnings.  Revert the feature until it can be revised accordingly.
2015-09-22 13:53:09 -04:00
Brad King 442d17ef6c Merge topic 'cpack-package-empty-dirs'
b58de9fe CPack: allow packaging of empty directories
47b060ae CPackDeb: allow empty directories in component packages
2015-09-22 10:47:11 -04:00
Brad King da7c8a8dae Merge topic 'restrict-shlib-link-flags-to-enable-exports'
b15f4e9b try_compile: Propogate CMP0065 to the generated project.
9784af1b CMP0065: Restrict the use of CMAKE_SHARED_LIBRARY_LINK_<LANG>_FLAGS
2015-09-22 10:46:59 -04:00
Brad King 4be709a6b7 Merge topic 'fix-policy-CMP0064-version'
402bf096 CMP0064: Fix recorded version of introduction to be 3.4
2015-09-22 10:46:57 -04:00
Brad King f1365f3206 Merge topic 'fix-windows-version-detection'
17009189 Windows: Fix CMAKE_HOST_SYSTEM_VERSION on Windows >= 8 (#15674)
2015-09-22 10:46:54 -04:00
Brad King 40c7b46123 VS: Fix rebuild with regeneration after input CMake code change (#15754)
When using "cmake --build ." or "MSBuild ALL_BUILD.vcxproj" to drive the
build the dependencies in the .sln file are not considered.  This means
that ProjectReference elements in .vcxproj files are used to order
targets.  We must ensure that the ZERO_CHECK target is listed as the
first dependency of every target so that when it causes regeneration of
the build files then MSBuild has not yet loaded the updated files.
2015-09-22 10:26:00 -04:00
Brad King 03bfe71ae0 VS: Refactor target ordering logic
Refactor cmGlobalVisualStudioGenerator::TargetCompare to store the name of
the target that should come first instead of hard-coding "ALL_BUILD".
Update client sites to specify "ALL_BUILD" when ordering for .sln files
and an empty string otherwise (in cases when "ALL_BUILD" should not be
encountered anyway).
2015-09-22 10:25:58 -04:00
Kitware Robot dce7d8befb CMake Nightly Date Stamp 2015-09-22 00:01:04 -04:00
Domen Vrankar b58de9fe2b CPack: allow packaging of empty directories 2015-09-22 02:08:26 +02:00
Raffi Enficiaud 47b060aee0 CPackDeb: allow empty directories in component packages 2015-09-22 01:57:44 +02:00
Chuck Atkins b15f4e9b86 try_compile: Propogate CMP0065 to the generated project.
Set policy CMP0065 to the value used in the calling project.

Set the the value of CMAKE_ENABLE_EXPORTS if set in the calling
project to initialize the target property appropriately.
2015-09-21 10:12:13 -04:00
Chuck Atkins 9784af1b50 CMP0065: Restrict the use of CMAKE_SHARED_LIBRARY_LINK_<LANG>_FLAGS
This new policy restricts the addition of the shared library link flags
to executables only when the ENABLE_EXPORTS property is set to True.
2015-09-21 10:12:13 -04:00
Brad King 402bf096ec CMP0064: Fix recorded version of introduction to be 3.4
This policy was added for CMake 3.4 but accidentally recorded as 3.3.
Fix this and update the RunCMake.CMP0064 test WARN case accordingly.
2015-09-21 10:05:02 -04:00
Brad King 38830fc0ca Merge topic 'cpack-deb-checksum-on-symlinks'
da295f45 CPack/Deb: checksum on symlinks release notes
7c7874c8 CPackDeb: preventing md5sum on symlinks
2015-09-21 09:25:31 -04:00
Brad King dd8285c688 Merge topic 'fix-compatibility-mode-LOCATION'
2514e426 CMP0026: Use compatibility codepath until configure is finished (#15748)
b98f7712 cmGlobalGenerator: Add API for the configure step being finished.
b5de2bd9 cmLocalGenerator: Simplify condition.
2015-09-21 09:25:29 -04:00
Brad King 4f640afc1a Merge topic 'ninja-refactor-msvc-deps'
109a7a24 Ninja: Detect MSVC /showIncludes prefix with compiler flags (#15596)
828c05b9 Ninja: Refactor lookup of cmcldeps location
c73fbda6 CMakeDetermineCompilerId: Drop unused code path
2015-09-21 09:25:27 -04:00
Brad King 82a0c7be3f Merge topic 'ctest-custom-output-size'
fd47df45 CTest: Add options to limit output of passed and failed tests
6e3151f6 CTest: Document and test custom output size settings
2015-09-21 09:25:24 -04:00
Gilles Khouzam 17009189f8 Windows: Fix CMAKE_HOST_SYSTEM_VERSION on Windows >= 8 (#15674)
According to GetVersionEx documentation:

 https://msdn.microsoft.com/en-us/library/windows/desktop/ms724451.aspx
 https://msdn.microsoft.com/en-us/library/windows/desktop/dn481241.aspx

we must manifest each application to explicitly declare support for each
version of Windows.
2015-09-21 09:02:41 -04:00
Kitware Robot 358b564145 CMake Nightly Date Stamp 2015-09-21 00:01:04 -04:00
Kitware Robot ba7f7067ca CMake Nightly Date Stamp 2015-09-20 00:01:05 -04:00
Kitware Robot 0da7a4d4c7 CMake Nightly Date Stamp 2015-09-19 00:01:05 -04:00
Raffi Enficiaud 7c7874c86e CPackDeb: preventing md5sum on symlinks
- Direct call to cmSystemTools::ComputeFileMD5
- Avoiding hashing symlinks
- Tests
2015-09-18 22:20:42 +02:00
Stephen Kelly 2514e4265c CMP0026: Use compatibility codepath until configure is finished (#15748)
Use it instead of the similar cmMakefile API.  It is necessary to
know that the Configure step is completely done, not just that one
particular cmMakefile is finished configuring.

Prior to commit 611220f7 (cmTarget: Use reliable test for CMP0024 and CMP0026
OLD., 2015-07-25), this was determined by checking whether cmGeneratorTargets
exist yet, which happens after the Configure step.
2015-09-18 20:49:00 +02:00
Stephen Kelly b98f7712ea cmGlobalGenerator: Add API for the configure step being finished. 2015-09-18 20:48:15 +02:00
Stephen Kelly b5de2bd9de cmLocalGenerator: Simplify condition.
This API is only called after configure-time.
2015-09-18 19:41:47 +02:00
Roman Wüger fd47df4503 CTest: Add options to limit output of passed and failed tests
Add ctest command-line options:

  --test-output-size-passed <n>
  --test-output-size-failed <n>

to set the amount of test output to store in Test.xml as a command-line
dashboard client.
2015-09-18 11:32:06 -04:00
Brad King 828c05b9f5 Ninja: Refactor lookup of cmcldeps location
This executable comes with CMake so just compute its location in
cmSystemTools instead of storing it in compiler information modules.
2015-09-18 10:01:25 -04:00
Brad King 2b3aad83f2 Merge topic 'cmake-gui-qt5-package'
851915a5 cmake-gui:  Improve packaging of Qt5 libraries.
2015-09-18 09:56:41 -04:00
Brad King 309026147a Merge topic 'ms-manifest-files'
e134e53b Add support for *.manifest source files with MSVC tools
da00be63 MSVC: Rewrite manifest file handling with Makefile and Ninja
d488b5c9 Ninja: Always add OBJECT_DIR variable to link rules
6d620f5a VS: Add manifest tool settings to VS 8 and 9 project files
2015-09-18 09:56:39 -04:00
Kitware Robot 9c7bb9f103 CMake Nightly Date Stamp 2015-09-18 00:01:06 -04:00
Brad King eb154697c0 Merge topic 'cpack-deb-fakeroot-removal'
becb14c9 CPack/DEB: test preserve extra config file permissions
7044e8ee CPackDeb: use of libarchive and removal of fakeroot
415405a3 cmArchiveWrite: control user/group, permissions and recursive file adding
4f2ff601 Tests: Make RunCMake.CPack error messages more readable
81b748ae cmGeneratedFileStream: Fix spelling in comment
2015-09-17 15:34:02 -04:00
Raffi Enficiaud 7044e8ee4b CPackDeb: use of libarchive and removal of fakeroot 2015-09-17 15:30:39 -04:00
Raffi Enficiaud 415405a308 cmArchiveWrite: control user/group, permissions and recursive file adding 2015-09-17 15:30:38 -04:00
Raffi Enficiaud 81b748ae1d cmGeneratedFileStream: Fix spelling in comment
s/destionation/destination/
2015-09-17 15:30:07 -04:00
Clinton Stimpson 851915a58c cmake-gui: Improve packaging of Qt5 libraries.
Fixes #15685, where the right Qt5 dlls on Windows were not packaged because
they were not found when relying on the PATH environment variable.

Also some cleanup of code introduced in 8120e13f, but no longer needed with 678aaad1.
2015-09-17 08:32:51 -06:00
Brad King e134e53b47 Add support for *.manifest source files with MSVC tools
Classify .manifest sources separately, add dependencies on them, and
pass them to the MS manifest tool to merge with linker-generated
manifest files.

Inspired-by: Gilles Khouzam <gillesk@microsoft.com>
2015-09-17 10:21:32 -04:00
Brad King da00be6359 MSVC: Rewrite manifest file handling with Makefile and Ninja
Add a helper class private to "cmcmd.cxx" to contain the implementation.
Update the link logic to use the intermediate files directory for each
target to hold manifest and resource files before embedding into the
binary.  Preserve the old behavior of placing the .manifest file next
to the binary when not linking incrementally even though it will be
embedded.
2015-09-17 10:21:32 -04:00
Brad King d488b5c976 Ninja: Always add OBJECT_DIR variable to link rules
The <OBJECT_DIR> placeholder is always available in Makefile
generators so make it available from the Ninja generator too.
2015-09-17 10:21:32 -04:00
Brad King 6d620f5ad7 VS: Add manifest tool settings to VS 8 and 9 project files
Always generate a VCManifestTool element in targets that compile.
2015-09-17 10:21:31 -04:00
Kitware Robot 6fd548f220 CMake Nightly Date Stamp 2015-09-17 00:01:06 -04:00
Brad King 46915ab963 Merge topic 'detect-c11-broken-thread-local'
ffa6f057 Avoid using C11 to build CMake if _Thread_local support is broken
2015-09-16 08:47:28 -04:00
Brad King 982850a866 Merge topic 'test-search-ordering'
7a6e5f06 Tests: Cover find_program when the environment duplicate some HINTS
40122975 Merge branch 'fix-bad-search-ordering' into test-search-ordering
02440154 find_*: Fix search order when the environment duplicates some HINTS
2015-09-16 08:47:25 -04:00
Brad King 0ec6201547 Merge topic 'ccmake-portability'
7046eedd ccmake: Use more-portable call to set_field_buffer (#15740)
da1a02f7 ccmake: Avoid using non-portable 'curcol' field (#15739)
6c442e5a ccmake: Pass format string to 'printw' (#15738)
2015-09-16 08:47:21 -04:00
Thomas Klausner 7046eedd38 ccmake: Use more-portable call to set_field_buffer (#15740)
The set_field_buffer function on NetBSD and Solaris:

  http://netbsd.gw.com/cgi-bin/man-cgi?set_field_buffer++NetBSD-current
  https://docs.oracle.com/cd/E36784_01/html/E36880/set-field-buffer-3curses.html

has as third argument "char *" while ncurses has "const char *".  Cast
the argument type in our call to account for the missing "const".
2015-09-16 08:42:20 -04:00
Joerg Sonnenberger da1a02f77f ccmake: Avoid using non-portable 'curcol' field (#15739)
'curcol' is an implementation detail of ncurses so other implementations
of 'form' may not have it.  The switch-to-previous-field logic only
exists for overloaded requests of REQ_DEL_PREV, so no need to check for
REQ_DEL_CHAR.  For REQ_DEL_PREV, check if the field changed and if it
did, change it back.
2015-09-16 08:42:20 -04:00
Joerg Sonnenberger 6c442e5a89 ccmake: Pass format string to 'printw' (#15738)
printw takes a format string as first argument, so don't pass variable
strings to it directly.
2015-09-16 08:42:20 -04:00
Kitware Robot 443b0fdb3d CMake Nightly Date Stamp 2015-09-16 00:01:07 -04:00
Raphael Kubo da Costa ffa6f057b4 Avoid using C11 to build CMake if _Thread_local support is broken
Support for C11's _Thread_local was introduced in GCC in the 4.9 series,
even though we make the C11 compiler flags available in CMake with GCC
>= 4.6.

FreeBSD's runetype.h uses _Thread_local, which causes CMake's own build
to fail when using GCC < 4.9 and -std=gnu11:

  /usr/include/runetype.h:92:22: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'const'
   extern _Thread_local const _RuneLocale *_ThreadRuneLocale;

Add a test for _Thread_local support and only build CMake itself with
C11 support if it works.

Bug: http://www.cmake.org/Bug/view.php?id=15741
2015-09-15 10:51:54 -04:00
Brad King 4fe1331f84 Merge topic 'update-kwsys'
ef29f5ef Merge branch 'upstream-kwsys' into update-kwsys
7de8f67a KWSys 2015-09-11 (cfeb27cc)
2015-09-15 09:17:10 -04:00
Brad King 401229759c Merge branch 'fix-bad-search-ordering' into test-search-ordering 2015-09-15 08:52:38 -04:00
Kitware Robot 075de28b36 CMake Nightly Date Stamp 2015-09-15 00:01:04 -04:00
Brad King 050a14f4a7 Merge topic 'extend-windows-version-detection'
4734df5f Windows: Set CMAKE_HOST_SYSTEM_VERSION with three components
2015-09-14 16:20:28 -04:00
Chuck Atkins 02440154fb find_*: Fix search order when the environment duplicates some HINTS
Refactoring in the topic merged by commit v3.2.0-rc1~400 (Merge topic
'refactor-search-path-construction', 2014-11-13) introduced a bug that
filters out duplicate paths in an incorrect order.  Restore the search
path to its documented order even when duplicate paths are present.

Reported-by: Marc CHEVRIER <marc.chevrier@sap.com>
2015-09-14 14:43:38 -04:00
Brad King ef29f5ef89 Merge branch 'upstream-kwsys' into update-kwsys 2015-09-14 09:24:05 -04:00
Brad King 6dad4c25b0 Merge topic 'fix_64bit_autodef'
db7f069a Windows: Fix 64-bit DLL module definition file generation on VS 2015
2015-09-14 09:21:00 -04:00
Brad King 31117bb17c Merge topic 'fix-buildsystem-property-append'
ed258d60 Tests: Cover set_property for buildsystem directory properties
fb45c371 cmState: Only append non-empty values to buildsystem properties.
158f7e31 cmMakefile: Use appropriate parameter name.
08ce3f48 cmTarget: Only append non-empty values to buildsystem properties.
2015-09-14 09:19:59 -04:00
Brad King 8af34749fe Merge topic 'fix-makefile-progress'
5d6aa364 cmLocalGenerator: Always return the end snapshot state of a directory.
3f4e5e8c cmState: Return end snapshot for GetBuildsystemDirectoryParent.
2015-09-14 09:19:51 -04:00
Bill Hoffman db7f069a4b Windows: Fix 64-bit DLL module definition file generation on VS 2015
With 64-bit Windows builds, there is no need to remove the leading
underscore from all the symbols.  This is because it does not have one
in the .obj file unless it is really in the name.  This did not cause
any trouble until VS 2015 which has some system functions that have a
leading underscore that end up in the .def file.
2015-09-14 09:16:49 -04:00
Kitware Robot f844993c24 CMake Nightly Date Stamp 2015-09-14 00:01:04 -04:00
Kitware Robot e52aa5619c CMake Nightly Date Stamp 2015-09-13 00:01:04 -04:00
Stephen Kelly 5d6aa3648b cmLocalGenerator: Always return the end snapshot state of a directory.
This is needed for proper makefile progress tracking.

The cmLocalGenerator is constructed at configure-time, but only used
at generate time.  The StateSnapshot member is currently populated
before configuring, so use the Makefile to get the end snapshot.
2015-09-12 14:09:00 +02:00
Kitware Robot 2e11afd2f7 CMake Nightly Date Stamp 2015-09-12 00:01:07 -04:00
Stephen Kelly 3f4e5e8c3d cmState: Return end snapshot for GetBuildsystemDirectoryParent.
This is the appropriate snapshot for future use.  Existing users
of this method are mostly just calling GetDirectory on the result,
but the progress tracking of the Makefile generator needs a consistent
snapshot to be used, so the end snapshot should be consistently used.
2015-09-11 23:17:27 +02:00
Stephen Kelly fb45c37160 cmState: Only append non-empty values to buildsystem properties.
This is a change in behavior from CMake 3.3, but there is no semantic meaning
to empty entries in buildsystem properties.  This also restores behavior to
that of CMake 2.8.10.
2015-09-11 19:12:46 +02:00
Stephen Kelly 158f7e31dc cmMakefile: Use appropriate parameter name. 2015-09-11 18:30:47 +02:00
Stephen Kelly 08ce3f486e cmTarget: Only append non-empty values to buildsystem properties.
This is a change in behavior from CMake 3.3, but there is no semantic meaning
to empty entries in buildsystem properties.  This also restores behavior to
that of CMake 2.8.10.
2015-09-11 18:30:46 +02:00
Gilles Khouzam 4734df5f79 Windows: Set CMAKE_HOST_SYSTEM_VERSION with three components
Call GetVersionEx with OSVERSIONINFOEX instead of OSVERSIONINFO so that
we can get the dwBuildNumber as a third version component.
2015-09-11 11:21:53 -04:00
Brad King 8e8824149f Merge topic 'fix-TrimWhitespace'
9c4a500f cmSystemTools: Fix TrimWhitespace for non-ascii strings (#15735)
87a9061d cmSystemTools: Factor out a cm_isspace helper
2015-09-11 11:04:06 -04:00
Brad King 1181375381 Merge topic 'revert-fix-windows-version-detection'
4c7744c8 Revert "Windows: Fix CMAKE_HOST_SYSTEM_VERSION on Windows >= 8.1 (#15674)"
2015-09-11 11:04:01 -04:00
Kitware Robot 24b7e3f8fd CMake Nightly Date Stamp 2015-09-11 00:01:04 -04:00
Brad King 4c7744c891 Revert "Windows: Fix CMAKE_HOST_SYSTEM_VERSION on Windows >= 8.1 (#15674)"
This reverts commit d4736d53cd.
RtlGetVersion is a private API not meant for public use.  Another
solution to detecting the Windows version will be needed.

Reported-by: Gilles Khouzam <Gilles.Khouzam@microsoft.com>
2015-09-10 16:02:09 -04:00
Brad King 5ed30f30f5 Merge topic 'ghs-updates'
04de9007 GHS: Fix generated file path slashes and quoting for 6.1.6
fbe0de92 GHS: Tell MULTI to delete .elf.ael file
63591b94 GHS: Find latest 'int' directory
2015-09-10 11:29:44 -04:00
Brad King 9c4a500f75 cmSystemTools: Fix TrimWhitespace for non-ascii strings (#15735)
Since commit v2.8.11~59^2 (cmSystemTools: Generalize TrimWhitespace to
all whitespace, 2013-03-27) we incorrectly use `c <= ' '` to determine
if `c` is a whitespace character.  With a signed `char` type UTF-8
encoded strings may be truncated because values above 0x7f appear
negative and therefore less than 0x20.  Use `isspace(c)` instead.
2015-09-10 10:05:21 -04:00
Brad King 87a9061d57 cmSystemTools: Factor out a cm_isspace helper
Extract the logic added by commit v3.1.0-rc1~386^2 (Encoding: Fix debug
asserts ... with non-ascii chars, 2014-06-16) into a helper function so
we can re-use it.
2015-09-10 10:04:20 -04:00
Kitware Robot ac77a56994 CMake Nightly Date Stamp 2015-09-10 00:01:04 -04:00
Brad King 36fb1e2302 Merge topic 'vs14-win8-store-phone'
4b8b9168 VS: Find Desktop SDK for current VS version (#15662)
2015-09-09 11:30:41 -04:00
Geoff Viola 04de900704 GHS: Fix generated file path slashes and quoting for 6.1.6 2015-09-09 10:15:37 -04:00