Commit Graph

20193 Commits

Author SHA1 Message Date
Stephen Kelly 3e428fdcb4 cmGeneratorTarget: Move IsImportedSharedLibWithoutSOName from cmTarget. 2015-10-10 11:03:48 +02:00
Stephen Kelly 110fd2fba1 cmGeneratorTarget: Move GetOutputTargetType from cmTarget. 2015-10-10 11:03:48 +02:00
Stephen Kelly e73916992c cmGeneratorTarget: Move HasMacOSXRpathInstallNameDir from cmTarget. 2015-10-10 11:03:48 +02:00
Kitware Robot 3fe240a79a CMake Nightly Date Stamp 2015-10-10 00:01:07 -04:00
Kitware Robot 9f6638c8a7 CMake Nightly Date Stamp 2015-10-09 00:01:08 -04:00
Stephen Kelly 096f098849 cmComputeLinkDepends: Remove unused typedef. 2015-10-09 01:08:31 +02:00
Stephen Kelly c5718217ad cmGeneratorTarget: Move HaveInstallTreeRPATH from cmTarget. 2015-10-09 01:04:38 +02:00
Stephen Kelly bf5eb4a3f3 cmGeneratorTarget: Move ComputePDBOutputDir from cmTarget. 2015-10-09 01:04:38 +02:00
Stephen Kelly 49017cddab cmGeneratorTarget: Move IsNullImpliedByLinkLibraries from cmTarget. 2015-10-09 01:04:38 +02:00
Stephen Kelly 0bae4a416f cmGeneratorTarget: Move output info from cmTarget. 2015-10-09 01:04:38 +02:00
Stephen Kelly 1abc20d81d cmGeneratorTarget: Move UsesDefaultOutputDir from cmTarget. 2015-10-09 01:04:38 +02:00
Stephen Kelly 50dc9b4440 cmGeneratorTarget: Move GetPDBDirectory from cmTarget. 2015-10-09 01:04:37 +02:00
Stephen Kelly 8b0168863e cmGeneratorTarget: Move GetDirectory from cmTarget. 2015-10-09 01:04:37 +02:00
Stephen Kelly ee44be22cb cmGeneratorTarget: Use local GetProperty method. 2015-10-09 00:07:55 +02:00
Stephen Kelly 4f767afe1d cmMakefile: Remove unneeded container clears.
No need to do that in a destructor.
2015-10-09 00:05:14 +02:00
Stephen Kelly c72d276a5a C::B: Remove unused variables. 2015-10-09 00:04:50 +02:00
Stephen Kelly c99b6cefbe cmLocalGenerator: Devirtualize method. 2015-10-09 00:03:40 +02:00
Stephen Kelly 12cb3bdce4 cmLocalGenerator: Add Home directory accessors.
Reduce reasons for cmLocalGenerator to have a cmMakefile.
2015-10-09 00:00:19 +02:00
Stephen Kelly 72efa15dc2 Eclipse: Port API to cmLocalGenerator. 2015-10-09 00:00:19 +02:00
Stephen Kelly f2a641d68b Kate: Remove unused variables. 2015-10-09 00:00:19 +02:00
Stephen Kelly 10cf42f5ae Kate: Port API to cmLocalGenerator. 2015-10-09 00:00:19 +02:00
Stephen Kelly e46ef270ed export: Port internal method to cmGeneratorTarget. 2015-10-09 00:00:18 +02:00
Stephen Kelly 53d3a1c95a cmMakefile: Remove unused GetProjectName calls. 2015-10-09 00:00:18 +02:00
Stephen Kelly 4ab2750c54 cmLocalGenerator: Add GetProjectName method. 2015-10-09 00:00:18 +02:00
Stephen Kelly c8187f414b cmCPluginAPI: Inline code to get project name. 2015-10-09 00:00:18 +02:00
Stephen Kelly 8c6e6dd3ce cmMakefile: Inline initialization of project name. 2015-10-09 00:00:18 +02:00
Stephen Kelly e0261a1e20 cmTarget: Make OutputInfo definition public. 2015-10-08 23:41:30 +02:00
Stephen Kelly df42dbb355 cmGeneratorTarget: Move link implementation from cmTarget. 2015-10-08 23:41:29 +02:00
Stephen Kelly a8429a402d cmTarget: Split storage of link implementation from backtraces. 2015-10-08 23:41:29 +02:00
Stephen Kelly 370bb92c10 cmGeneratorTarget: Issue messages through the local generator. 2015-10-08 23:41:27 +02:00
Stephen Kelly 27916f2cd1 cmLocalGenerator: Add cmake instance accessor. 2015-10-08 23:25:11 +02:00
Brad King 8d27b40778 cmFileTimeComparison: Port to OS X nanosecond times (#15769) 2015-10-08 13:37:37 -04:00
Brad King 265fb0cdc7 cmFileTimeComparison: Update for lack of cmsys_STAT_HAS_ST_MTIM
The KWSys Configure.hxx header no longer exposes this value.
Take the value from the KWSys try compile result variable instead.
2015-10-08 13:26:44 -04:00
Brad King 8083285d1b Merge branch 'upstream-kwsys' into update-kwsys 2015-10-08 13:26:08 -04:00
Brad King 750391afc1 Merge topic 'cmGeneratorTarget-sources'
af71c7b4 cmTarget: Remove Compute method.
dce6581b cmGeneratorTarget: Move computed sources from cmTarget.
7b6dc0fe cmGeneratorTarget: Inline GetSourceFiles from cmTarget.
33f87bb1 cmGeneratorTarget: Move AddInterfaceEntries method.
da1b0449 cmTarget: Remove a conditional for generate-time source addition.
fe113f0f cmTarget: Split storage of sources from genexes.
776ff8eb cmTarget: Add Compute API for sources.
64f73150 cmTarget: Add API for generate-time source addition.
c38e30f6 cmGeneratorTarget: Add methods for generate-time source addition.
5d3776a7 Access sources through cmGeneratorTarget.
7ce0991a GHS: Port API to cmGeneratorTarget.
156bd2c9 Xcode: Port away from unnecessary CMP0049 compatibility.
01e666c7 cmTarget: Join strings conditionally.
bf28b787 cmGeneratorTarget: Rename internal member.
9d653f9c cmFLTKWrapUI: Remove CMake 2.2 compat code.
2015-10-08 13:08:32 -04:00
Brad King db266aaade Merge topic 'refactor-current-dir-initialization'
28749903 cmState: Internalize the initialization of a snapshot from its parent.
6c02f62f Remove now-unused directory setters.
360e4e1d Set the current dirs on the snapshot before creating the cmMakefile.
f716460e cmMakefile: Move invokation to initialize snapshot.
2015-10-08 13:08:30 -04:00
Brad King c997595ea3 Merge topic 'cpack-nsis-bitmap'
3758af12 CPackNSIS: Add options to set the bitmap for NSIS installer left side
2015-10-08 10:31:48 -04:00
Brad King 3cf71728a1 Merge topic 'update-kwsys'
d0c3bf65 Merge branch 'upstream-kwsys' into update-kwsys
bca73252 KWSys 2015-10-06 (d79801bb)
2015-10-08 10:31:46 -04:00
Kitware Robot 24c97529ca CMake Nightly Date Stamp 2015-10-08 00:01:05 -04:00
Stephen Kelly 28749903b6 cmState: Internalize the initialization of a snapshot from its parent. 2015-10-07 20:19:42 +02:00
Stephen Kelly 6c02f62f75 Remove now-unused directory setters. 2015-10-07 20:19:42 +02:00
Stephen Kelly 360e4e1db0 Set the current dirs on the snapshot before creating the cmMakefile.
The cmMakefile should get a fully prepared snapshot and not clobber its
definitions.  It should eventually be able to process list files from any
starting-point snapshot, though that is some refactoring away still.
2015-10-07 20:19:41 +02:00
Stephen Kelly af71c7b479 cmTarget: Remove Compute method. 2015-10-07 20:17:55 +02:00
Stephen Kelly dce6581b7b cmGeneratorTarget: Move computed sources from cmTarget. 2015-10-07 08:37:58 +02:00
Stephen Kelly 7b6dc0fe45 cmGeneratorTarget: Inline GetSourceFiles from cmTarget. 2015-10-07 08:37:58 +02:00
Stephen Kelly 33f87bb1f5 cmGeneratorTarget: Move AddInterfaceEntries method.
It will be needed here in a follow-up commit.
2015-10-07 08:37:57 +02:00
Stephen Kelly da1b0449d9 cmTarget: Remove a conditional for generate-time source addition.
It is not really necessary.
2015-10-07 08:37:57 +02:00
Stephen Kelly fe113f0fd4 cmTarget: Split storage of sources from genexes. 2015-10-07 08:37:57 +02:00
Stephen Kelly 776ff8eb0b cmTarget: Add Compute API for sources.
This method is a refactoring artifact.  It will be removed in a
follow-up.
2015-10-07 08:37:57 +02:00
Stephen Kelly 64f73150b8 cmTarget: Add API for generate-time source addition.
This method is a refactoring artifact.  It will be removed in a
follow-up.
2015-10-07 08:37:57 +02:00
Stephen Kelly c38e30f68c cmGeneratorTarget: Add methods for generate-time source addition. 2015-10-07 08:37:57 +02:00
Stephen Kelly 5d3776a7eb Access sources through cmGeneratorTarget. 2015-10-07 08:37:56 +02:00
Stephen Kelly 7ce0991a7a GHS: Port API to cmGeneratorTarget. 2015-10-07 08:37:56 +02:00
Kitware Robot 2c4f902336 CMake Nightly Date Stamp 2015-10-07 00:01:07 -04:00
Stephen Kelly f716460ed8 cmMakefile: Move invokation to initialize snapshot. 2015-10-06 21:46:09 +02:00
Stephen Kelly 156bd2c983 Xcode: Port away from unnecessary CMP0049 compatibility.
The input does not need the conversion.
2015-10-06 20:16:21 +02:00
Stephen Kelly 01e666c70e cmTarget: Join strings conditionally. 2015-10-06 20:16:20 +02:00
Stephen Kelly bf28b7874b cmGeneratorTarget: Rename internal member.
Leave the old name available for another use.
2015-10-06 20:16:20 +02:00
Stephen Kelly 9d653f9c1c cmFLTKWrapUI: Remove CMake 2.2 compat code.
CMake 3.0 dropped CMake <= 2.4 compatibility.
2015-10-06 20:16:20 +02:00
Brad King 256bf8876a Merge topic 'cmGeneratorTarget-exports'
d945b36a cmExportTryCompileFileGenerator: Evaluate genex with cmGeneratorTarget.
48f8b6ac cmExportFileGenerator: Evaluate genex with cmGeneratorTarget.
2015-10-06 10:59:13 -04:00
Brad King 53d90de3d9 Merge topic 'clean-up-cmLocalGenerator'
74d565e0 Remove unused cmLocalGenerator include.
09466690 Add cmOutputConverter include where needed.
0a730445 cmake: Remove needless cmLocalGenerator creation.
3339a750 CTest: Port away from cmLocalGenerator.
6da4cd8f CTest: Remove needless cmLocalGenerator creation.
94cc4e74 CPack: Remove needless cmLocalGenerator creation.
2015-10-06 10:59:06 -04:00
Brad King c914d2bda2 Merge topic 'refactor-computation'
616f0311 cmGlobalGenerator: Move path computation to Compute.
9eea0486 cmGlobalGenerator: Do more computation at compute time.
2eca0559 cmGlobalGenerator: De-virtualize Compute().
21f428f4 VisualStudio: Replace Compute override with AddExtraIDETargets override.
a9588e90 VisualStudio10: Initialize the LongestSource at generate time.
4407eee0 cmGlobalGenerator: Call AddExtraIDETargets as a hook of Compute().
a09c545d Xcode: Extract a AddExtraIDETargets method.
2015-10-06 10:59:00 -04:00
Brad King 9d5bfa53e6 Merge topic 'refactor-qt-autogen'
15c02cf1 QtAutogen: Port API to cmGeneratorTarget.
f7738fd1 cmLocalGenerator: Constify target in API.
b2054e16 QtAutogen: Port global generator to cmGeneratorTarget.
1e757c31 QtAutogen: Use a target type between loops.
5fb73017 QtAutogen: Make some private statics file static.
86f7fc5d QtAutogen: Move SetupAutoRccTarget method.
2aa3f500 QtAutogen: Move MergeRccOptions method.
59b91107 QtAutogen: Move GetRccExecutable method.
7254f645 QtAutogen: Move SetupAutoUicTarget method.
975b7539 QtAutogen: Move GetUicOpts method.
f75ec604 QtAutogen: Move SetupAutoMocTarget method.
f3158e45 QtAutogen: Move GetCompileDefinitionsAndDirectories method.
493b17f8 QtAutogen: Move SetupSourceFiles method.
2015-10-06 10:58:58 -04:00
Stephen Kelly 15c02cf14e QtAutogen: Port API to cmGeneratorTarget. 2015-10-06 10:56:44 -04:00
Brad King d0c3bf65d5 Merge branch 'upstream-kwsys' into update-kwsys 2015-10-06 10:32:55 -04:00
Colin Tracey 3758af12fa CPackNSIS: Add options to set the bitmap for NSIS installer left side
set MUI_WELCOMEFINISHPAGE_BITMAP
set MUI_UNWELCOMEFINISHPAGE_BITMAP
2015-10-06 09:08:37 -04:00
Kitware Robot 3709e950f4 CMake Nightly Date Stamp 2015-10-06 00:01:06 -04:00
Stephen Kelly 74d565e0e9 Remove unused cmLocalGenerator include. 2015-10-05 20:59:56 +02:00
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
Geoff Viola fbe0de92f0 GHS: Tell MULTI to delete .elf.ael file 2015-09-09 10:14:54 -04:00
Kitware Robot 0e7f34c0a9 CMake Nightly Date Stamp 2015-09-09 00:01:04 -04:00
Brad King 70ea1d91fa Merge topic 'fix-buildsystem-target-properties'
b9856862 Tests: Cover set_property for buildsystem target properties
407ff47e cmTarget: Fix memory leak when SOURCES property is cleared
cf74fc24 cmTarget: Fix buildsystem property empty value set and append operations
2015-09-08 10:24:38 -04:00
Brad King 4da3315db3 Merge topic 'find_program-NAMES_PER_DIR'
8ea7611b find_program: Optionally consider all names in each directory
fc1990c9 cmFindProgramCommand: Re-implement search using more flexible approach
fdbfc9f6 Tests: Add explicit testing for find_program
907a919b cmSystemTools: Drop unused StringEndsWith method
ed4de3c9 cmFindProgramCommand: Use Names member instead of passing it
bf32b95e cmFindLibraryCommand: Avoid repeating search for the same name
2015-09-08 10:24:36 -04:00
Brad King 7f1e896d8e Merge topic 'update-kwsys'
d2b8229d Tests: Fix Plugin test on Watcom compiler
89958fd0 bootstrap: Remove unused KWSys configuration
c5cc3441 Merge branch 'upstream-kwsys' into update-kwsys
1b79433a KWSys 2015-08-28 (dc3fdd7f)
2015-09-08 10:24:30 -04:00
Kitware Robot a897f136c8 CMake Nightly Date Stamp 2015-09-08 00:01:03 -04:00
Kitware Robot d17ecf1164 CMake Nightly Date Stamp 2015-09-07 00:01:04 -04:00
Kitware Robot 9e64fda6a7 CMake Nightly Date Stamp 2015-09-06 00:01:04 -04:00
Kitware Robot 2a8813d62c CMake Nightly Date Stamp 2015-09-05 00:01:04 -04:00
Kitware Robot 20f6007053 CMake Nightly Date Stamp 2015-09-04 00:01:05 -04:00
Brad King 407ff47eca cmTarget: Fix memory leak when SOURCES property is cleared 2015-09-03 06:52:36 -04:00
Brad King cf74fc24d4 cmTarget: Fix buildsystem property empty value set and append operations
Refactoring in commit 1f54bc1c (cmTarget: Split storage of include
directories from genexes, 2015-08-04), commit 772ecef4 (cmTarget: Split
storage of compile options from genexes, 2015-08-04), commit 44e071ae
(cmTarget: Split storage of compile features from genexes, 2015-08-04),
and commit 197f4de1 (cmTarget: Split storage of compile definitions from
genexes, 2015-08-04) failed to account for value==NULL in SetProperty
and AppendProperty methods.
2015-09-03 06:52:36 -04:00
Brad King 18252b5887 Merge topic 'vs-store-phone-cert-thumbs'
7c33b0f9 cmSystemTools: Skip ComputeCertificateThumbprint during bootstrap
2015-09-03 06:49:55 -04:00
Kitware Robot d1dc344cf1 CMake Nightly Date Stamp 2015-09-03 00:01:04 -04:00
Brad King c5cc3441b3 Merge branch 'upstream-kwsys' into update-kwsys 2015-09-02 10:23:17 -04:00
Brad King 8ea7611bc3 find_program: Optionally consider all names in each directory
When more than one value is given to the NAMES option this command by
default will consider one name at a time and search every directory for
it.  Add a NAMES_PER_DIR option to tell this command to consider one
directory at a time and search for all names in it.
2015-09-02 10:17:22 -04:00
Brad King fc1990c933 cmFindProgramCommand: Re-implement search using more flexible approach
Avoid using KWSys SystemTools::FindProgram because it does much more
than we actually need for find_program and does not allow us to control
the order of preference between directories and names.  Create our own
cmFindProgramHelper much like cmFindLibraryHelper but without all the
find_library-specific parts.
2015-09-02 10:17:22 -04:00
Brad King 907a919be1 cmSystemTools: Drop unused StringEndsWith method
It has no callers and we can inherit one from KWSys SystemTools anyway.
2015-09-02 10:17:21 -04:00
Brad King ed4de3c984 cmFindProgramCommand: Use Names member instead of passing it 2015-09-02 10:17:21 -04:00
Brad King bf32b95efe cmFindLibraryCommand: Avoid repeating search for the same name
In FindNormalLibraryDirsPerName we consider one name at a time and
search the entire path.  Avoid repeated consideration of names by
removing each one from the list of candidates before considering the
next one.  This will not change behavior because we already know the
earlier candidates were not found on repeated considering anyway.
2015-09-02 10:17:21 -04:00
Gilles Khouzam 4b8b91688f VS: Find Desktop SDK for current VS version (#15662)
Determine the Desktop SDK for Windows Phone and Windows Store from the
generator instead of the version of the targeted app.  This allows to
build a Windows Phone 8.1 app on VS 2015 for example.
2015-09-02 10:11:36 -04:00
Brad King 7c33b0f9a6 cmSystemTools: Skip ComputeCertificateThumbprint during bootstrap
The implementation of this method requires linking to some extra system
libraries.  Simply leave it out of the bootstrap-built CMake.
2015-09-02 09:23:45 -04:00
Kitware Robot 29eed26aa6 CMake Nightly Date Stamp 2015-09-02 00:01:04 -04:00
Brad King 7b33d4efe1 Merge topic 'jacoco_find_files'
e92c59e7 ctest_coverage: Make Jacoco parser better at finding source files
2015-09-01 09:53:32 -04:00
Brad King dd2b88777f Merge topic 'fix-ios-install'
ad262917 Xcode: Add unit test for iOS project install (#12506)
48fe617e Fix installation of iOS targets (#12506)
d2c2319d Replace CMAKE_XCODE_EFFECTIVE_PLATFORMS with call to PlatformIsAppleIos
2015-09-01 09:53:30 -04:00
Brad King 0e08ab6ef1 Merge topic 'vs-store-phone-cert-thumbs'
e0cf77b3 cmSystemTools: Use CreateFileW explicitly to pass wchar_t path
2015-09-01 09:53:28 -04:00
Brad King d73c445a25 Merge topic 'update-kwsys'
49d293a7 Merge branch 'upstream-kwsys' into update-kwsys
ca96be22 KWSys 2015-08-24 (cdaf522c)
2015-09-01 09:53:24 -04:00
Brad King d833df1228 Merge topic 'add-link-search-static-properties-defaults'
9e21b01a Revert LINK_SEARCH_{START,END}_STATIC behavior change
2015-09-01 09:53:21 -04:00
Zack Galbreath e92c59e77f ctest_coverage: Make Jacoco parser better at finding source files
Instead of searching for source files in a couple hard-coded
locations, we now search the source and binary directory for files
matching both the name of the covered file and its package
directory structure.
2015-09-01 09:48:59 -04:00
Kitware Robot 02ab8e30c1 CMake Nightly Date Stamp 2015-09-01 00:01:04 -04:00
Brad King e0cf77b310 cmSystemTools: Use CreateFileW explicitly to pass wchar_t path
The call to CreateFile added by commit ac0bb433 (VS: Windows Store/Phone
package cert thumbprint, 2015-08-21) passes a wide character path
explicitly so we should call CreateFileW directly.  Otherwise it does
not build without -DUNICODE (e.g. in bootstrap on MSYS).
2015-08-31 16:33:46 -04:00
Brad King 9e21b01a4d Revert LINK_SEARCH_{START,END}_STATIC behavior change
The changes to cmComputeLinkInformation.cxx in commit 675ef165 (Allow
LINK_SEARCH_{START,END}_STATIC props to have default values, 2015-08-07)
are unrelated to the feature added by that change and are incorrect.
They lead to cases of extra -Bdynamic flags.  Revert them.
2015-08-31 13:08:53 -04:00
Brad King 49d293a795 Merge branch 'upstream-kwsys' into update-kwsys 2015-08-31 09:55:01 -04:00
Brad King 51d7a7bb3f Merge topic 'makefile-color-when-needed'
bfb9d34f Makefile: Print color escapes only when necessary
2015-08-31 09:48:42 -04:00
Brad King 08ae6ced4d Merge topic 'vs-store-phone-cert-thumbs'
ac0bb433 VS: Windows Store/Phone package cert thumbprint
92b835ec Simplify condition for using rpcrt4 library on Windows
2015-08-31 09:48:39 -04:00
Brad King e18f6fe276 Merge topic 'fix-ctest-xml-double-encoding'
ab2524d6 CTest: Fix XML double-encoding cases
dee84dc7 cmCTest{BZR,GIT,P4}: Remove unused cmXMLSafe includes
b3372db5 cmExtra{Kate,SublimeText}Generator: Remove unused cmXMLSafe includes
2015-08-31 09:48:37 -04:00
Brad King 9a6d7d2e54 Merge topic 'refactor-compute'
616d8f02 cmGeneratorTarget: Rename method to match operation.
ec56d244 cmGlobalGenerator: Process evaluation files after target depends.
1e5349a5 cmGlobalGenerator: Access makefile from makefiles container.
2015-08-31 09:48:30 -04:00
Brad King 352e8e95b6 Merge topic 'generate-time-generators'
2b9a25d7 cmGlobalGenerator: Create global targets directly after Configure.
3e08b4df cmMakefile: Skip Global targets for CMP0019 evaluation.
357bf469 cmGlobalGenerator: Fill the project map at compute time.
ebf8d0a9 cmGlobalGenerator: Rename method.
bd096d30 cmGlobalGenerator: Avoid cmLocalGenerator until after Configure.
ff8ac8ee cmLocalGenerator: Create from already-constructed cmMakefile.
0bd7279f Ninja: Remove some incorrect comments adding no value.
2f2d4da9 cmCTestScriptHandler: Simplify deletes.
7fdc9a8b QtAutogen: Use a smart pointer.
92041eec cmGlobalGenerator: Remove MakeLocalGenerator method.
acb00622 cmGlobalGenerator: Require a snapshot to create a local generator.
83b8a927 cmMakefile: Remove cmLocalGenerator member.
9b6a743b cmLocalGenerator: Remove Parent pointer.
2015-08-31 09:48:28 -04:00
Kitware Robot a036a41605 CMake Nightly Date Stamp 2015-08-31 00:01:03 -04:00
Stephen Kelly 616d8f02d5 cmGeneratorTarget: Rename method to match operation.
The manifest is computed, not generated, according to current language
used in cmake method naming.
2015-08-30 11:39:52 +02:00
Kitware Robot 2e4eb137b9 CMake Nightly Date Stamp 2015-08-30 00:01:03 -04:00
Stephen Kelly ec56d24451 cmGlobalGenerator: Process evaluation files after target depends.
No need to generate the files if computation aborts generation.
2015-08-29 09:18:01 +02:00
Stephen Kelly 1e5349a5a0 cmGlobalGenerator: Access makefile from makefiles container. 2015-08-29 09:15:37 +02:00
Kitware Robot 746c9f8882 CMake Nightly Date Stamp 2015-08-29 00:01:03 -04:00
Brad King bfb9d34f8a Makefile: Print color escapes only when necessary
Teach cmSystemTools::MakefileColorEcho to use the color printing API
only when we actually have a color to print.  This avoids printing
escape sequences that do not change the text attributes.

Since commit v3.3.0-rc1~480^2~4 (Makefile: Fix output during parallel
builds, 2015-02-05) we always use this code path to print progress and
rule messages even when color is disabled (e.g. in a try_compile).  It
is important to avoid printing escapes when there is no color because on
MSYS we have no isatty and so assume that vt100 escapes are supported,
but we do not want to print them when capturing try_compile output.
If we capture the vt100 escapes in try_compile output, they contain
unbalanced square brackets.  This causes CMakeParseImplicitLinkInfo
to fail to separate lines in a ;-list and therefore fail to extract
information from the link line.  Then mixed-language linking breaks.
2015-08-28 15:16:05 -04:00
Stephen Kelly 2b9a25d7f7 cmGlobalGenerator: Create global targets directly after Configure. 2015-08-28 18:44:39 +02:00
Stephen Kelly 3e08b4df95 cmMakefile: Skip Global targets for CMP0019 evaluation. 2015-08-28 18:44:39 +02:00
Stephen Kelly 357bf469c7 cmGlobalGenerator: Fill the project map at compute time. 2015-08-28 18:44:39 +02:00
Stephen Kelly ebf8d0a99a cmGlobalGenerator: Rename method. 2015-08-28 18:44:39 +02:00
Stephen Kelly bd096d30e0 cmGlobalGenerator: Avoid cmLocalGenerator until after Configure. 2015-08-28 18:44:39 +02:00
Stephen Kelly ff8ac8ee6a cmLocalGenerator: Create from already-constructed cmMakefile.
Don't manage the lifetime of the cmMakefile with cmLocalGenerator.
2015-08-28 18:44:39 +02:00
Stephen Kelly 0bd7279fd9 Ninja: Remove some incorrect comments adding no value. 2015-08-28 18:44:39 +02:00
Stephen Kelly 2f2d4da9dd cmCTestScriptHandler: Simplify deletes.
Deleting a nullptr is fine.
2015-08-28 18:44:38 +02:00
Stephen Kelly 7fdc9a8b5f QtAutogen: Use a smart pointer. 2015-08-28 18:44:38 +02:00
Stephen Kelly 92041eec49 cmGlobalGenerator: Remove MakeLocalGenerator method.
Inline implementation to callers.
2015-08-28 18:44:38 +02:00
Stephen Kelly acb006229d cmGlobalGenerator: Require a snapshot to create a local generator. 2015-08-28 18:44:38 +02:00
Stephen Kelly 83b8a927e5 cmMakefile: Remove cmLocalGenerator member. 2015-08-28 18:44:38 +02:00
Stephen Kelly 9b6a743b80 cmLocalGenerator: Remove Parent pointer. 2015-08-28 18:44:38 +02:00
Daniel Pfeifer ab2524d63f CTest: Fix XML double-encoding cases
Remove use of cmXMLSafe from CTest when generating content that is later
handled by cmXMLWriter.  This was broken by refactoring in the topic
merged by commit v3.3.0-rc1~22 (Merge topic 'ctest-xml-refactor',
2015-05-28).
2015-08-28 10:11:09 -04:00
Daniel Pfeifer dee84dc73d cmCTest{BZR,GIT,P4}: Remove unused cmXMLSafe includes 2015-08-28 10:11:08 -04:00
Daniel Pfeifer b3372db588 cmExtra{Kate,SublimeText}Generator: Remove unused cmXMLSafe includes 2015-08-28 10:11:08 -04:00
Kitware Robot 11d5088a2f CMake Nightly Date Stamp 2015-08-28 00:01:10 -04:00
Gilles Khouzam ac0bb4333d VS: Windows Store/Phone package cert thumbprint
Add the PackageCertificateThumbprint property when there is a
certificate on a WindowsStore or Phone app.
2015-08-27 13:35:18 -04:00
Brad King 92b835ec9d Simplify condition for using rpcrt4 library on Windows
Drop the CMAKE_BUILD_ON_VISUAL_STUDIO variable and hard-code the
condition at its only use.
2015-08-27 13:35:13 -04:00
Brad King 27e4b21dfa Merge topic 'use-generator-target'
c2b7336f cmGeneratorTarget: Move GetConfigCommonSourceFiles from cmTarget.
69329fff cmGeneratorTarget: Move GetLanguages from cmTarget.
0431f2c4 cmGeneratorTarget: Move ComputeLinkImplementationLanguages from cmTarget.
abe9505d cmGeneratorTarget: Move HaveBuildTreeRPath from cmTarget.
d4a24c0e cmGeneratorTarget: Move GetLinkImplementation from cmTarget.
83981cf5 cmTarget: Add GetLinkImplMap method.
771e79a2 cmLinkItem: Add cmOptionalLinkImplementation type.
3846ebcf cmLinkItem: Add cmLinkImplementation type.
a7f5d70d cmGeneratorTarget: Move compile defintions processing from cmTarget.
d051086c cmGeneratorTarget: Move compile features processing from cmTarget.
db4cb92b cmGeneratorTarget: Move compile options processing from cmTarget.
e6ccbf6f cmGeneratorTarget: Move include directory processing from cmTarget.
8bfb0c53 cmGeneratorTarget: Move link iface helpers from cmTarget.
2cb3e574 cmGeneratorTarget: Move GetImportLinkInterface from cmTarget.
6d3d099b cmGeneratorTarget: Move ComputeLinkInterfaceLibraries from cmTarget.
0db9d927 cmGeneratorTarget: Move GetLinkInterfaceLibraries from cmTarget.
...
2015-08-27 10:07:32 -04:00
Brad King 445077cbd2 Merge topic 'minor-cleanups'
7f551b4f cmGlobalGenerator: Implement VS6 check without virtual method.
cd6293cd cmMakefile: Fix style.
de6b2895 cmTarget: Remove vestigal method declaration.
e35ee02d cmTarget: Fix indentation.
00f2298f Reduce uses of cmMakefile::GetGlobalGenerator.
6254ba95 cmMakefile: Remove Internal class.
cf0a78dc cmGeneratorTarget: Issue messages through the local generator.
2015-08-27 10:04:12 -04:00
Brad King 0d0b9b52f8 Merge topic 'cmState-ProjectName'
637c56b4 cmGlobalGenerator: Implement FillProjectMap in terms of cmState.
b3f2299e cmState: Move ProjectName from cmMakefile.
6ce940ac cmMakefile: Use std::string in ProjectName API.
e8c0341d cmMakefile: Out-of-line GetProjectName.
2015-08-27 10:04:09 -04:00
Brad King 6904b6efdc Merge topic 'rm-cmLocalGenerator-Children'
867b5be8 cmLocalGenerator: Remove unused Children member.
6c832219 cmLocalGenerator: Implement child traversal in terms of cmState.
3fcf3837 Makefiles: Remove valueless cast.
223f4a66 cmLocalGenerator: Simplify condition.
ae026f54 cmState: Store Children states in parent state.
2015-08-27 10:04:07 -04:00
Brad King a97bb6ae3f Merge topic 'refactor-features'
e3078aa1 cmLocalGenerator: Implement GetFeature in terms of cmState.
7441fde3 cmLocalGenerator: Convert GetFeature recursion to loop.
ad0b0089 cmLocalGenerator: Simplify GetFeature implementation.
314c9ae3 cmLocalGenerator: Make GetFeature tail-recursive.
2015-08-27 10:04:05 -04:00
Brad King 2985b9c003 Merge topic 'refactor-progress'
7fbc56ac cmGlobalUnixMakefileGenerator3: Implement progress in terms of cmState.
65c434e1 cmGlobalUnixMakefileGenerator3: Inline an IsExcluded call.
be56feb6 cmGlobalGenerator: Extract new IsExcluded overload.
45f52003 cmGlobalGenerator: Implement IsExcluded in terms of cmState::Snapshot.
af9fc277 cmState: Make Snapshot EqualityComparable.
9b44018d cmGlobalGenerator: Convert IsExcluded to loop.
5f05b562 cmGlobalGenerator: Refactor IsExcluded.
95925a60 cmGlobalGenerator: Don't use else after return.
2015-08-27 10:04:03 -04:00
Kitware Robot 81ad5622b4 CMake Nightly Date Stamp 2015-08-27 00:01:06 -04:00
Stephen Kelly c2b7336ff3 cmGeneratorTarget: Move GetConfigCommonSourceFiles from cmTarget. 2015-08-26 19:46:33 +02:00
Stephen Kelly 69329fff70 cmGeneratorTarget: Move GetLanguages from cmTarget. 2015-08-26 19:46:32 +02:00
Stephen Kelly 0431f2c4d7 cmGeneratorTarget: Move ComputeLinkImplementationLanguages from cmTarget. 2015-08-26 19:46:32 +02:00
Stephen Kelly abe9505df9 cmGeneratorTarget: Move HaveBuildTreeRPath from cmTarget. 2015-08-26 19:46:32 +02:00
Stephen Kelly d4a24c0e95 cmGeneratorTarget: Move GetLinkImplementation from cmTarget. 2015-08-26 19:46:32 +02:00
Stephen Kelly 83981cf593 cmTarget: Add GetLinkImplMap method.
This is a temporary refactoring artifact.
2015-08-26 19:46:31 +02:00
Stephen Kelly 771e79a2bf cmLinkItem: Add cmOptionalLinkImplementation type.
Move the associated Compute* methods to the cmTarget class.
2015-08-26 19:46:31 +02:00
Stephen Kelly 3846ebcf2b cmLinkItem: Add cmLinkImplementation type. 2015-08-26 19:46:31 +02:00
Stephen Kelly a7f5d70dde cmGeneratorTarget: Move compile defintions processing from cmTarget. 2015-08-26 19:46:30 +02:00
Stephen Kelly d051086cce cmGeneratorTarget: Move compile features processing from cmTarget. 2015-08-26 19:46:10 +02:00
Stephen Kelly db4cb92bda cmGeneratorTarget: Move compile options processing from cmTarget. 2015-08-26 19:45:51 +02:00
Stephen Kelly e6ccbf6f30 cmGeneratorTarget: Move include directory processing from cmTarget. 2015-08-26 19:45:21 +02:00
Stephen Kelly 8bfb0c53da cmGeneratorTarget: Move link iface helpers from cmTarget. 2015-08-26 19:39:29 +02:00
Stephen Kelly 2cb3e57402 cmGeneratorTarget: Move GetImportLinkInterface from cmTarget. 2015-08-26 19:39:17 +02:00
Stephen Kelly 6d3d099b4a cmGeneratorTarget: Move ComputeLinkInterfaceLibraries from cmTarget. 2015-08-26 19:38:57 +02:00
Stephen Kelly 0db9d92787 cmGeneratorTarget: Move GetLinkInterfaceLibraries from cmTarget. 2015-08-26 19:38:37 +02:00
Stephen Kelly 84b847e42f cmGeneratorTarget: Move ComputeLinkInterface from cmTarget. 2015-08-26 19:38:14 +02:00
Stephen Kelly 6220241fd0 cmGeneratorTarget: Move GetLinkInterface from cmTarget. 2015-08-26 19:37:45 +02:00
Stephen Kelly 6353816786 cmTarget: Add GetHeadToLinkInterfaceMap methods. 2015-08-26 19:37:32 +02:00
Stephen Kelly 20993de464 cmTarget: Move cmHeadToLinkInterfaceMap out. 2015-08-26 19:37:06 +02:00
Stephen Kelly f8ca51a054 cmGeneratorTarget: Move ComputeLinkInterface from cmTarget. 2015-08-26 19:36:13 +02:00
Stephen Kelly d67584ccc4 cmTarget: Move link interface libraries struct out. 2015-08-26 19:35:45 +02:00
Kitware Robot 33df7f36d0 CMake Nightly Date Stamp 2015-08-26 00:01:07 -04:00
Stephen Kelly 7f551b4f26 cmGlobalGenerator: Implement VS6 check without virtual method.
Don't require existence of a global generator for this check.
2015-08-25 23:06:33 +02:00
Stephen Kelly cd6293cdf8 cmMakefile: Fix style. 2015-08-25 23:06:33 +02:00
Stephen Kelly de6b289582 cmTarget: Remove vestigal method declaration.
The definition was removed in commit v3.1.0-rc1~688^2~5 (cmTarget:
Allow any generator expression in SOURCES property., 2014-03-18).
2015-08-25 23:06:33 +02:00
Stephen Kelly e35ee02d6e cmTarget: Fix indentation. 2015-08-25 23:06:33 +02:00
Stephen Kelly 00f2298f07 Reduce uses of cmMakefile::GetGlobalGenerator.
Don't assume the cmMakefile has a global generator.
2015-08-25 23:06:33 +02:00
Stephen Kelly 6254ba9578 cmMakefile: Remove Internal class.
Move only remaining state to the direct class.
2015-08-25 22:19:57 +02:00
Stephen Kelly cf0a78dc4c cmGeneratorTarget: Issue messages through the local generator. 2015-08-25 22:18:39 +02:00
Gregor Jasny 48fe617e66 Fix installation of iOS targets (#12506)
Since cmTarget::ComputeOutputDir results can be used in CMake code of script
cmake_install.cmake and in Xcode internals, string ${EFFECTIVE_PLATFORM_NAME}
should be used instead of $(EFFECTIVE_PLATFORM_NAME) because it works for both.

Value of CMAKE_CFG_INTDIR can't be used in BUILD_TYPE argument of install
command since it contains $(EFFECTIVE_PLATFORM_NAME) (e.g. equals to
`Release-iphoneos`, `Debug-iphoneos`, etc.).
2015-08-25 21:53:51 +02:00
Gregor Jasny d2c2319d64 Replace CMAKE_XCODE_EFFECTIVE_PLATFORMS with call to PlatformIsAppleIos
Currently the CMAKE_XCODE_EFFECTIVE_PLATFORMS property acts only as
a kind of toggle switch to enable iOS project layout features.
But instead of relying on this undocumented property, better detect
the presence of an iOS SDK directly.
2015-08-25 21:53:51 +02:00
Brad King cdb9984bff Merge topic 'consistent-empty'
e876963f Replace '0 == instances.size()' with instances.empty().
44ffb9cd Replace foo.size() pattern with !foo.empty().
8f89f8b1 Replace 'foo.size() != 0' pattern with !foo.empty().
524610f9 Replace 'foo.size() == 0' pattern with foo.empty().
0e14c7ee Replace 'foo.size() > 0' pattern with !foo.empty().
2015-08-25 15:13:33 -04:00
Brad King 96dafff97f Merge topic 'libarchive-modern-apis'
e7f93715 Use modern libarchive APIs
2015-08-25 15:13:31 -04:00
Brad King 9aeee9c608 Merge topic 'cmState-prop_dir'
f4150bd8 cmState: Move directory Properties from cmMakefile.
01787547 cmMakefile: Inline GetDefinitions into GetProperty.
2015-08-25 15:13:23 -04:00
Stephen Kelly 637c56b4e0 cmGlobalGenerator: Implement FillProjectMap in terms of cmState. 2015-08-25 19:57:44 +02:00
Stephen Kelly b3f2299e06 cmState: Move ProjectName from cmMakefile. 2015-08-25 19:57:42 +02:00
Stephen Kelly 6ce940ac97 cmMakefile: Use std::string in ProjectName API. 2015-08-25 19:55:34 +02:00
Stephen Kelly e8c0341d86 cmMakefile: Out-of-line GetProjectName. 2015-08-25 19:55:32 +02:00
Kitware Robot a8f8848241 CMake Nightly Date Stamp 2015-08-25 00:01:07 -04:00
Stephen Kelly e876963fc9 Replace '0 == instances.size()' with instances.empty().
This is not a pattern.
2015-08-24 20:47:18 +02:00
Stephen Kelly 44ffb9cdb4 Replace foo.size() pattern with !foo.empty(). 2015-08-24 20:47:18 +02:00
Stephen Kelly 8f89f8b1e9 Replace 'foo.size() != 0' pattern with !foo.empty(). 2015-08-24 20:47:17 +02:00
Stephen Kelly 524610f967 Replace 'foo.size() == 0' pattern with foo.empty(). 2015-08-24 20:47:17 +02:00
Stephen Kelly 0e14c7ee63 Replace 'foo.size() > 0' pattern with !foo.empty(). 2015-08-24 20:47:17 +02:00
Brad King ddb7f280ce Merge topic 'drop-cmsys-std-layer'
04e708d8 Remove use of include <cmsys/IOStream.hxx> from KWSys
e8585f45 Remove use of include <cmsys/stl/*> and cmsys_stl::*
6db713c0 Remove use of include <cmsys/ios/*> and cmsys_ios::*
2015-08-24 14:28:43 -04:00
Stephen Kelly 867b5be8b8 cmLocalGenerator: Remove unused Children member. 2015-08-24 20:05:38 +02:00
Stephen Kelly 6c832219ea cmLocalGenerator: Implement child traversal in terms of cmState. 2015-08-24 20:05:37 +02:00
Stephen Kelly 3fcf383763 Makefiles: Remove valueless cast. 2015-08-24 20:05:37 +02:00
Stephen Kelly 223f4a662f cmLocalGenerator: Simplify condition. 2015-08-24 20:05:37 +02:00
Stephen Kelly ae026f5458 cmState: Store Children states in parent state. 2015-08-24 20:05:37 +02:00
Stephen Kelly e3078aa153 cmLocalGenerator: Implement GetFeature in terms of cmState. 2015-08-24 20:04:37 +02:00
Stephen Kelly 7441fde34a cmLocalGenerator: Convert GetFeature recursion to loop. 2015-08-24 20:04:37 +02:00
Stephen Kelly ad0b0089ab cmLocalGenerator: Simplify GetFeature implementation. 2015-08-24 20:04:37 +02:00
Stephen Kelly 314c9ae33b cmLocalGenerator: Make GetFeature tail-recursive. 2015-08-24 20:04:37 +02:00
Stephen Kelly 7fbc56ac40 cmGlobalUnixMakefileGenerator3: Implement progress in terms of cmState. 2015-08-24 20:03:30 +02:00
Stephen Kelly 65c434e1b0 cmGlobalUnixMakefileGenerator3: Inline an IsExcluded call. 2015-08-24 20:03:29 +02:00
Stephen Kelly be56feb618 cmGlobalGenerator: Extract new IsExcluded overload. 2015-08-24 20:03:29 +02:00
Stephen Kelly 45f5200396 cmGlobalGenerator: Implement IsExcluded in terms of cmState::Snapshot. 2015-08-24 20:03:29 +02:00
Stephen Kelly af9fc27753 cmState: Make Snapshot EqualityComparable. 2015-08-24 20:03:29 +02:00
Stephen Kelly 9b44018d52 cmGlobalGenerator: Convert IsExcluded to loop. 2015-08-24 20:03:29 +02:00
Stephen Kelly 5f05b56284 cmGlobalGenerator: Refactor IsExcluded.
Make it easier to convert it to a loop.
2015-08-24 20:03:29 +02:00
Stephen Kelly 95925a60fc cmGlobalGenerator: Don't use else after return. 2015-08-24 20:03:29 +02:00
Stephen Kelly f4150bd88d cmState: Move directory Properties from cmMakefile. 2015-08-24 20:02:21 +02:00
Stephen Kelly 0178754725 cmMakefile: Inline GetDefinitions into GetProperty.
It will soon move to cmState.
2015-08-24 19:48:45 +02:00
Páder Rezső e7f937155f Use modern libarchive APIs
Replace use of deprecated libarchive3 functions with their modern
equivalents.
2015-08-24 10:40:04 -04:00
Brad King 2370a99400 Merge topic 'cmState-definitions'
bff27391 cmState: Host variable definitions.
6954c893 cmState: Add a VariableScope snapshot type.
1fc645bd cmState: Add a Base snapshot type.
0f070dd3 cmMakefile: Decouple the container of cmDefinitions from scoping logic.
25e04ddf cmDefinitions: Implement in terms of cmLinkedTree.
4bbe261c cmMakefile: Extract InitializeVarScope method.
2015-08-24 10:07:04 -04:00
Brad King 58043880b9 Merge topic 'ios-app-bundle-layout'
744e6c49 Fix iOS Bundle layouts (#15669)
2015-08-24 10:07:02 -04:00
Brad King eeeb0eb751 Merge topic 'remove-unused-cmPolicies'
d8a57148 cmake: Remove unused cmPolicies member.
2015-08-24 10:07:00 -04:00
Brad King d5d86ecf50 Merge topic 'refactor-progress'
3fa1b964 cmGlobalUnixMakefileGenerator3: Change the progress container key.
55e39276 cmState: Make it possible to order cmState::Snapshot.
04168cbb cmGlobalUnixMakefileGenerator3: Rename member.
2394584c cmGlobalGenerator: Rename progress initializer method.
b9eb3cd1 cmGlobalGenerator: Move LG to target map to subclass.
f5d2b7a6 cmGlobalGenerator: Remove clearance of map.
2015-08-24 10:06:58 -04:00
Brad King 9135e3707d Merge topic 'generators-use-cmLocalGenerator'
1f39ee5b cmInstallExportGenerator: Require cmLocalGenerator, not cmMakefile.
c259b830 cmTestGenerator: Require cmLocalGenerator, not cmMakefile.
75e511ee cmInstallFilesGenerator: Require cmLocalGenerator, not cmMakefile.
2015-08-24 10:06:56 -04:00
Brad King aaf9532bbc Merge topic 'fix-include_directories-BEFORE'
a4bd3010 include_directories: Fix regression in BEFORE option (#15693)
2015-08-24 10:06:54 -04:00
Gregor Jasny 744e6c497c Fix iOS Bundle layouts (#15669)
In contrast to Mac OS X App bundle layout the iOS one lacks the
Contents/MacOSX structure.  See also the Bundle Structures documentation
in Mac Developer Library:

  https://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFBundles/BundleTypes/BundleTypes.html

For now detect iOS targets by checking the SDK name/path.
2015-08-24 09:50:20 -04:00
Kitware Robot 884c63176f CMake Nightly Date Stamp 2015-08-24 00:01:06 -04:00
Stephen Kelly bff27391a9 cmState: Host variable definitions. 2015-08-23 19:05:11 +02:00
Stephen Kelly d8a5714839 cmake: Remove unused cmPolicies member.
heaptrack showed a 1 byte allocation with the backtrace pointing
here, as is the case since commit v3.3.0-rc1~112^2~5 (cmPolicies:
Remove unused cmPolicy class., 2015-05-03)
2015-08-23 18:28:01 +02:00
Stephen Kelly 3fa1b9641d cmGlobalUnixMakefileGenerator3: Change the progress container key. 2015-08-23 18:05:13 +02:00
Stephen Kelly 55e3927634 cmState: Make it possible to order cmState::Snapshot. 2015-08-23 18:05:13 +02:00
Stephen Kelly 04168cbb59 cmGlobalUnixMakefileGenerator3: Rename member. 2015-08-23 18:05:13 +02:00
Stephen Kelly 2394584ce2 cmGlobalGenerator: Rename progress initializer method. 2015-08-23 18:05:13 +02:00
Stephen Kelly b9eb3cd140 cmGlobalGenerator: Move LG to target map to subclass.
This is the only user.
2015-08-23 18:05:01 +02:00
Stephen Kelly f5d2b7a694 cmGlobalGenerator: Remove clearance of map.
It is always cleared before being re-populated.
2015-08-23 17:49:11 +02:00
Stephen Kelly 1f39ee5beb cmInstallExportGenerator: Require cmLocalGenerator, not cmMakefile. 2015-08-23 17:46:23 +02:00
Stephen Kelly c259b83026 cmTestGenerator: Require cmLocalGenerator, not cmMakefile. 2015-08-23 17:46:07 +02:00
Stephen Kelly 75e511eeaf cmInstallFilesGenerator: Require cmLocalGenerator, not cmMakefile. 2015-08-23 17:21:27 +02:00
Stephen Kelly 6954c8936f cmState: Add a VariableScope snapshot type.
Match the scopes currently used in cmMakefile for definitions.
2015-08-23 17:08:54 +02:00
Stephen Kelly 1fc645bd9c cmState: Add a Base snapshot type.
For completeness mostly.
2015-08-23 17:08:54 +02:00
Stephen Kelly 0f070dd3e1 cmMakefile: Decouple the container of cmDefinitions from scoping logic.
Maintain a Parent tree node for writing to in RaiseScope.
2015-08-23 17:08:53 +02:00
Stephen Kelly 25e04ddffe cmDefinitions: Implement in terms of cmLinkedTree.
Store the definitions in a cmLinkedTree in the cmMakefile.  This can
be moved to cmState and then the tree will provide snapshotting
possibilities.  It will also make the Closure copy created at
the start of each cmMakefile unnecesarry.
2015-08-23 17:08:53 +02:00
Stephen Kelly 4bbe261cd3 cmMakefile: Extract InitializeVarScope method. 2015-08-23 17:08:53 +02:00
Kitware Robot b5f17d1b80 CMake Nightly Date Stamp 2015-08-23 00:01:06 -04:00
Kitware Robot 29c1385675 CMake Nightly Date Stamp 2015-08-22 00:01:07 -04:00
Brad King a4bd30104f include_directories: Fix regression in BEFORE option (#15693)
Refactoring in commit 6ed9c7e0 (cmState: Host buildsystem properties for
directories, 2015-07-18) broke include_directories(BEFORE).  Fix it and
add a test case.
2015-08-21 15:21:37 -04:00
Brad King 04e708d8df Remove use of include <cmsys/IOStream.hxx> from KWSys
We no longer need this compatibility layer for the compilers we support.
2015-08-21 10:54:57 -04:00
Brad King badde9c2a1 Merge topic 'modules-no-soname'
f799ffb5 Do not set SONAME for MODULE library targets (#15705)
899458ab Tests: Cover NO_SONAME property for SHARED libraries
2015-08-21 09:29:06 -04:00
Brad King c450686ef2 Merge topic 'OUTPUT_NAME-genex-no-recursion'
3c37d264 cmGeneratorTarget: Avoid recursion in GetOutputName method
2015-08-21 09:29:02 -04:00
Brad King cecd0d186d Merge topic 'vs-fix-obj-extension'
3e94f94b cmLocalVisualStudioGenerator: Use computed .obj extension (#13685)
2015-08-21 09:28:58 -04:00
Brad King 4ae9362b5b Merge topic 'get-filename-component-base-dir'
e89ea3d1 get_filename_component:  Teach new BASE_DIR parameter.
2015-08-21 09:28:53 -04:00
Kitware Robot 3755250f8e CMake Nightly Date Stamp 2015-08-21 00:01:09 -04:00
Brad King e8585f45f5 Remove use of include <cmsys/stl/*> and cmsys_stl::*
We no longer need this compatibility layer for the compilers we support.
2015-08-20 16:19:08 -04:00
Brad King 6db713c07f Remove use of include <cmsys/ios/*> and cmsys_ios::*
We no longer need this compatibility layer for the compilers we support.
2015-08-20 16:19:08 -04:00
Felix Geyer f799ffb5cb Do not set SONAME for MODULE library targets (#15705)
The SONAME field is only useful for shared libraries that application
link against.
2015-08-20 10:45:09 -04:00
Robert Goulet 3c37d2642d cmGeneratorTarget: Avoid recursion in GetOutputName method
Since support for generator expressions was added to OUTPUT_NAME it is
possible for project code to cause recursion in this method by using a
$<TARGET_FILE> genex.  Detect and reject such cases.
2015-08-20 09:56:45 -04:00
Kitware Robot e72a5b2c0b CMake Nightly Date Stamp 2015-08-20 00:01:07 -04:00
Kitware Robot 404d16e7bc CMake Nightly Date Stamp 2015-08-19 00:01:08 -04:00
Bastien Schatt 3e94f94b89 cmLocalVisualStudioGenerator: Use computed .obj extension (#13685)
CMAKE_<LANG>_OUTPUT_EXTENSION tells us the proper extension for the
current toolchain.  Teach the ComputeObjectFilenames method to use
GetLanguageOutputExtension to look up the extension instead of
hard-coding ".obj".  This is already done in the code path for explicit
file names inside our call to GetObjectFileNameWithoutTarget.
2015-08-18 11:39:52 -04:00
Brad King 868be9c640 Merge topic 'cmake-gui-high-resolution'
a41ebd4e cmake-gui: Add support for HiDPI (Retina) screens on OS X
2015-08-18 10:12:01 -04:00
Brad King fb329c0bc1 Merge topic 'build-subdir'
ba1065ab cmake: Add support for "--build ." in subdirectory (#15696)
2015-08-18 10:11:58 -04:00
Kitware Robot 76a54a4486 CMake Nightly Date Stamp 2015-08-18 00:01:08 -04:00
James Johnston e89ea3d190 get_filename_component: Teach new BASE_DIR parameter.
In the get_filename_component command, add a new BASE_DIR parameter to
use with the ABSOLUTE and REALPATH options.  This will be used when
finding an absolute path from a relative path.
2015-08-17 23:55:38 -04:00
Francois Best a41ebd4ee5 cmake-gui: Add support for HiDPI (Retina) screens on OS X 2015-08-17 11:36:42 -04:00
Brad King a38ea312c0 Merge topic 'propagate-link-search-to-try_compile'
7f0b83e0 try_compile: Update documentation for other propagated variables
fb77c2c5 try_compile: Propogate the CMAKE_LINK_SEARCH_ variables
2015-08-17 10:25:04 -04:00
Brad King bc9103ed5b Merge topic 'extended-length-paths'
e06ea837 cmSystemTools: Use extended length paths for Windows apis.
2015-08-17 10:25:02 -04:00
Brad King 89b483f2b6 Merge topic 'update-curl'
4071a747 curl: Update README-CMake.txt for new snapshot
7727d485 curl: Update configuration of build within CMake
3f2f1a94 curl: Fix check for gethostbyname_r with 5 arguments
91e8d35a Merge branch 'curl-upstream' into update-curl
602cdc06 cmCurl: Tolerate lack of CURLOPT_CAPATH support
70654261 curl 7.44.0 (reduced)
2015-08-17 10:24:49 -04:00
Brad King cb99eff642 Merge topic 'use-generator-target'
9b449e9c cmComputeLinkInformation: Lookup a target only if we have one
2015-08-17 10:24:42 -04:00
Kitware Robot 0f27bcc9ec CMake Nightly Date Stamp 2015-08-17 00:01:05 -04:00
Kitware Robot 5c8e1ca283 CMake Nightly Date Stamp 2015-08-16 00:01:05 -04:00
Clinton Stimpson e06ea8373f cmSystemTools: Use extended length paths for Windows apis. 2015-08-14 23:14:06 -06:00
Clinton Stimpson ba1065ab7b cmake: Add support for "--build ." in subdirectory (#15696) 2015-08-14 22:46:53 -06:00
Kitware Robot 1628a8af77 CMake Nightly Date Stamp 2015-08-15 00:01:09 -04:00
Chuck Atkins fb77c2c54b try_compile: Propogate the CMAKE_LINK_SEARCH_ variables 2015-08-14 11:48:01 -04:00
Kitware Robot 17ecfd8210 CMake Nightly Date Stamp 2015-08-14 00:01:08 -04:00
Brad King a07d16085b Merge topic 'OUTPUT_DIRECTORY-genex'
d25819bc Add generator expression support to OUTPUT_DIRECTORY target properties
e36a05fd cmTarget: Detect and diagnose recursion in GetOutputInfo
2015-08-13 10:38:54 -04:00
Chuck Atkins 675ef165f2 Allow LINK_SEARCH_{START,END}_STATIC props to have default values.
Use the CMAKE_LINK_SEARCH_START_STATIC and CMAKE_LINK_SEARCH_END_STATIC
variables to initialize the LINK_SEARCH_START_STATIC and
LINK_SEARCH_END_STATIC target properties respectively.
2015-08-13 10:34:44 -04:00
Brad King 9b449e9c5d cmComputeLinkInformation: Lookup a target only if we have one
The change in commit 27252b24 (cmComputeLinkInformation: Simplify
generator object access, 2015-08-02) broke the conditional use of a
target introduced in commit 41abdc17 (cmGeneratorTarget: Move GetSOName
from cmTarget, 2015-08-04).  Restore the conditional lookup.  Add a test
case that hacks platform information variables to trigger this code
everywhere.
2015-08-13 10:24:10 -04:00
Brad King 4a6fe02908 CMake 3.3.1 2015-08-13 09:17:06 -04:00
Kitware Robot a0b32a348d CMake Nightly Date Stamp 2015-08-13 00:01:07 -04:00
Brad King 602cdc06a0 cmCurl: Tolerate lack of CURLOPT_CAPATH support
Since curl 7.39 the CURLOPT_CAPATH setting may be rejected with a
CURLE_NOT_BUILT_IN error.  Simply tolerate this with silent failure
since we just will not use the CAPATH setting in this case.
2015-08-12 15:43:24 -04:00
Robert Goulet d25819bc26 Add generator expression support to OUTPUT_DIRECTORY target properties
If {ARCHIVE,LIBRARY,RUNTIME}_OUTPUT_DIRECTORY is set with a genex then
do not add the per-config subdirectory on multi-config generators.
This will allow projects to use $<CONFIG> to place the per-config
part of the directory path somewhere other than the end.
2015-08-12 13:43:00 -04:00
Robert Goulet e36a05fd7f cmTarget: Detect and diagnose recursion in GetOutputInfo 2015-08-12 13:42:57 -04:00
Brad King 6731eab90c Merge topic 'ctest-report-compiler-version'
48c6e7f2 CTest: Report to CDash the compiler version used to build the project
2015-08-12 09:30:29 -04:00
Brad King 7216742ea6 Merge topic 'target_include_directories-relative-SYSTEM-dirs'
8c076a8b cmTarget: Remove unused AddSystemIncludeDirectories overload
5790aca4 target_include_directories: Support relative SYSTEM include dirs (#15464)
2015-08-12 09:30:27 -04:00
Kitware Robot b583800203 CMake Nightly Date Stamp 2015-08-12 00:01:06 -04:00
Daniel Pfeifer 48c6e7f2cf CTest: Report to CDash the compiler version used to build the project
The compiler version reported since commit v2.8.2~1018 (CTest-side
support for compiler name and compiler version, 2009-10-12) only
reported the version of the compiler used to build CMake, and only
if it defined "_COMPILER_VERSION".  Instead use the version of
the compiler used to build the project CTest is testing.
2015-08-11 09:40:25 -04:00
Gregor Jasny 8c076a8bdb cmTarget: Remove unused AddSystemIncludeDirectories overload 2015-08-11 08:53:38 -04:00
Gregor Jasny 5790aca4ad target_include_directories: Support relative SYSTEM include dirs (#15464) 2015-08-11 08:53:00 -04:00
Brad King 422d3f68de Merge topic 'bootstrap-no-ninja'
4e3c7725 bootstrap: Do not build Ninja generator
2015-08-11 08:47:12 -04:00
Brad King 9e51147646 Merge topic 'global-generator-makefiles'
6d8a125e cmQtAutoGenerators: Prefer a generator to access global generator.
5f66900e cmGlobalGenerator: Port Find API to cmMakefile.
c5b8841f cmGlobalGenerator: Create global targets from cmMakefiles.
8f75ea3b cmGlobalGenerator: Port global target creation to cmMakefile.
56f0540b cmGlobalGenerator: Port Configure-time check to cmMakefile.
19b546ef cmGlobalGenerator: Base final target property computation on Makefiles.
f8be9ba9 cmGlobalGenerator: Base progress on Makefiles, not LocalGenerators.
bc1097e3 cmExportLibraryDependenciesCommand: Port to cmMakefile.
204aecdf cmGlobalGenerator: Port configure-time code to cmMakefile.
3dd6f0a5 cmake: Port configure-time code to cmMakefile.
73e4df99 cmGlobalGenerator: Store a container of cmMakefiles.
19369937 cmGeneratorTarget: Port internal type to cmGeneratorTarget.
32f131b0 cmGeneratorTarget: Prefer the local generator to access the global.
2015-08-11 08:47:10 -04:00
Brad King 6e5953e9a4 Merge topic 'use-generator-target'
29886ce7 cmTarget: Use a simpler delete algorithm.
197f4de1 cmTarget: Split storage of compile definitions from genexes.
44e071ae cmTarget: Split storage of compile features from genexes.
772ecef4 cmTarget: Split storage of compile options from genexes.
1f54bc1c cmTarget: Split storage of include directories from genexes.
7568199b cmTarget: Request only the link libraries where needed.
10040601 cmLinkImplementationLibraries: Move to namespace scope.
d9da6ee2 cmLinkItem: Split to separate file.
27252b24 cmComputeLinkInformation: Simplify generator object access.
2015-08-11 08:47:08 -04:00
Brad King f33ccc270e Merge topic 'rm-Makefile-LocalGenerator'
1689c91d cmMakefile: Remove unused method.
dd11f72c cmGlobalGenerator: Base exclusion computation on cmGeneratorTarget.
2015-08-11 08:47:05 -04:00
Kitware Robot 489ab9cb3a CMake Nightly Date Stamp 2015-08-11 00:01:05 -04:00
Brad King 4e3c7725d0 bootstrap: Do not build Ninja generator
The CMake bootstrap process uses Makefile generators so there is no
need to build the Ninja generators during bootstrap.
2015-08-10 13:26:52 -04:00
Brad King 2f16e60843 Merge topic 'ninja-version-handling'
874e70bc Ninja: Prevent generating if installed Ninja version is too old.
c5ac2b9d Ninja: Centralized required Ninja version numbers and comparisons.
2015-08-10 09:13:24 -04:00
Brad King 815a2c09d3 Merge topic 'fix-process-error-handling'
203b20df cmcmd:  Improve error handling when executing a process.
b28b07db cmCTestCoverageHandle:  Improve error handling.
2015-08-10 09:13:22 -04:00
Brad King 16b889da9a Merge topic 'fix-get-filename-component'
d035e968 get_filename_component: Fix bug where CACHE was ignored.
38ed5866 get_filename_component: Added initial tests for PROGRAM component.
772ca69f get_filename_component: Tests now check for proper CACHE usage.
2015-08-10 09:13:20 -04:00
Brad King 3d0a719b70 Merge topic 'change-nmake-env-warning'
afeb4eb2 nmake/jom: Only warn about bad VS environment if compiler not found.
2015-08-10 09:13:18 -04:00
Brad King e8592e555f Merge topic 'fix-TARGET_FILE-imported'
35aab9df Reject TARGET_PDB_FILE for imported targets instead of crashing
2015-08-10 09:13:16 -04:00
Kitware Robot 7979e25c8b CMake Nightly Date Stamp 2015-08-10 00:01:09 -04:00
James Johnston 874e70bc57 Ninja: Prevent generating if installed Ninja version is too old. 2015-08-09 13:51:35 -04:00
James Johnston c5ac2b9df3 Ninja: Centralized required Ninja version numbers and comparisons. 2015-08-09 13:31:24 -04:00
Kitware Robot cf4bbf734c CMake Nightly Date Stamp 2015-08-09 00:01:05 -04:00
James Johnston 203b20df98 cmcmd: Improve error handling when executing a process. 2015-08-08 01:06:27 -04:00
James Johnston b28b07db47 cmCTestCoverageHandle: Improve error handling. 2015-08-08 00:28:38 -04:00
Kitware Robot 101ba25e6a CMake Nightly Date Stamp 2015-08-08 00:01:08 -04:00
Stephen Kelly 29886ce764 cmTarget: Use a simpler delete algorithm.
This way, the methods can be moved without requiring a local algorithm.

The containers use automatic storage.
2015-08-07 21:55:17 +02:00
Stephen Kelly 197f4de110 cmTarget: Split storage of compile definitions from genexes. 2015-08-07 17:06:19 +02:00
Stephen Kelly 44e071aeff cmTarget: Split storage of compile features from genexes. 2015-08-07 17:06:18 +02:00
Stephen Kelly 772ecef4b8 cmTarget: Split storage of compile options from genexes. 2015-08-07 17:06:17 +02:00
Stephen Kelly 1f54bc1cf3 cmTarget: Split storage of include directories from genexes. 2015-08-07 17:06:15 +02:00
Stephen Kelly 7568199b4d cmTarget: Request only the link libraries where needed. 2015-08-07 17:06:15 +02:00
Kitware Robot 3cefadbff0 CMake Nightly Date Stamp 2015-08-07 00:01:07 -04:00
Stephen Kelly 6d8a125e49 cmQtAutoGenerators: Prefer a generator to access global generator. 2015-08-07 04:10:29 +02:00
Stephen Kelly 5f66900e71 cmGlobalGenerator: Port Find API to cmMakefile. 2015-08-07 04:10:29 +02:00
Stephen Kelly c5b8841fd9 cmGlobalGenerator: Create global targets from cmMakefiles. 2015-08-07 04:10:29 +02:00
Stephen Kelly 8f75ea3b5e cmGlobalGenerator: Port global target creation to cmMakefile. 2015-08-07 04:10:29 +02:00
Stephen Kelly 56f0540b51 cmGlobalGenerator: Port Configure-time check to cmMakefile.
This uses no generate-time state.
2015-08-07 04:10:29 +02:00
Stephen Kelly 19b546ef76 cmGlobalGenerator: Base final target property computation on Makefiles. 2015-08-07 04:10:29 +02:00
Stephen Kelly f8be9ba9c2 cmGlobalGenerator: Base progress on Makefiles, not LocalGenerators. 2015-08-07 04:10:28 +02:00
Stephen Kelly bc1097e3d9 cmExportLibraryDependenciesCommand: Port to cmMakefile. 2015-08-07 04:10:28 +02:00
Stephen Kelly 204aecdf82 cmGlobalGenerator: Port configure-time code to cmMakefile. 2015-08-07 04:10:28 +02:00
Stephen Kelly 3dd6f0a5bc cmake: Port configure-time code to cmMakefile. 2015-08-07 04:10:28 +02:00
Stephen Kelly 73e4df99cb cmGlobalGenerator: Store a container of cmMakefiles.
For use at configure-time.
2015-08-07 04:10:28 +02:00
Stephen Kelly 193699376a cmGeneratorTarget: Port internal type to cmGeneratorTarget. 2015-08-07 04:10:28 +02:00
Stephen Kelly 32f131b0ca cmGeneratorTarget: Prefer the local generator to access the global. 2015-08-07 04:10:28 +02:00
Stephen Kelly 10040601a2 cmLinkImplementationLibraries: Move to namespace scope. 2015-08-07 00:51:49 +02:00
Stephen Kelly d9da6ee29f cmLinkItem: Split to separate file. 2015-08-07 00:51:45 +02:00
Stephen Kelly 27252b2414 cmComputeLinkInformation: Simplify generator object access. 2015-08-07 00:51:40 +02:00
Stephen Kelly 1689c91d8d cmMakefile: Remove unused method. 2015-08-07 00:32:15 +02:00
Stephen Kelly dd11f72ced cmGlobalGenerator: Base exclusion computation on cmGeneratorTarget. 2015-08-07 00:32:15 +02:00
James Johnston d035e9687a get_filename_component: Fix bug where CACHE was ignored.
If PROGRAM_ARGS is provided to get_filename_component, fix bug where the
command failed to honor the CACHE argument.

Added test cases to RunCMake.get_filename_component that fail when the
bug is not fixed to prevent regressions.

Signed-off-by: James Johnston <johnstonj.public@codenest.com>
2015-08-06 17:53:34 +00:00
James Johnston afeb4eb243 nmake/jom: Only warn about bad VS environment if compiler not found.
nmake and jom generators no longer warn about missing INCLUDE/LIB
environment variables unless the C/CXX compiler cannot be found.  This
is useful if the user does not want to use these generators with the
Visual C++ compiler, or they do not want to enable any language.
2015-08-06 17:32:43 +00:00
Brad King 35aab9df9f Reject TARGET_PDB_FILE for imported targets instead of crashing
Reported-by: Justin Borodinsky <justin.borodinsky@gmail.com>
2015-08-06 09:42:31 -04:00
Brad King 91c1b13d6e Merge topic 'ninja-LINK_DEPENDS'
43c94281 Ninja: Honor the LINK_DEPENDS target property (#14796)
2015-08-06 09:38:31 -04:00
Brad King 55706506c7 Merge topic 'use-generator-target'
a309409e cmOrderDirectories: Port to cmGeneratorTarget.
f83e8402 cmGeneratorTarget: Move CompileInfoMap from cmTarget.
b3f0e353 cmGeneratorTarget: Move GetCompilePDBDirectory from cmTarget.
34c43741 cmGeneratorTarget: Move GetOutputName from cmTarget.
4329a71c cmComputeLinkDepends: Port to cmGeneratorTarget.
c93230ac cmComputeLinkInformation: Port to cmGeneratorTarget.
ee26add4 cmGeneratorTarget: Move IsBundleOnApple from cmTarget.
c8a5f5ae cmMakefileTargetGenerator: Add accessor for GeneratorTarget.
f8076644 cmGeneratorTarget: Move GetLinkClosure from cmTarget.
7c809fa2 cmGeneratorTarget: Move GetLinkerLanguage from cmTarget.
6da99de3 cmGeneratorTarget: Move GetFrameworkDirectory from cmTarget.
d6bb319b cmGeneratorTarget: Move GetFullName from cmTarget.
7a460852 cmGeneratorTarget: Move GetAppBundleDirectory from cmTarget.
d560bfd2 cmGeneratorTarget: Move GetInstallNameDir* from cmTarget.
89e2a080 cmGeneratorTarget: Move GetMacContentDirectory from cmTarget.
62720e44 cmGeneratorTarget: Move GetFullNameComponents from cmTarget.
...
2015-08-06 09:38:27 -04:00
Brad King 73e3de381d Merge topic 'cmState-policies'
757a1f54 cmState: Move PolicyState from cmMakefile.
52dbe654 cmState: Record the end position of each directory.
65a5e0c6 cmLinkedTree: Add Clear API.
34835433 cmState: Add Type for policy scope.
af0de01c cmState: Remove call stack parent tracking.
6ae8b30b cmMakefile: Move policy barriers inside cmState scopes.
a5fc17b5 cmMakefile: Re-order policy entries and barriers.
0a01e6c6 cmState: Add Snapshot Type accessor.
f0005bb4 Tests: Verify generate-time policy scope behavior.
2015-08-06 09:38:24 -04:00
Brad King 370e2c6785 Merge topic 'refactor-evaluation-files'
12c3f248 cmGeneratorExpressionEvaluationFile: Require generator context.
6c0e9ee2 cmMakefile: Store EvaluationFiles.
2015-08-06 09:38:22 -04:00
Brad King d356bced9b Merge topic 'fix-missing-subdir-error'
c4d2f64f add_subdirectory: Fix error message on missing CMakeLists.txt (#15680)
2015-08-06 09:38:17 -04:00
Kitware Robot 42526efec4 CMake Nightly Date Stamp 2015-08-06 00:01:07 -04:00
Brad King 43c9428140 Ninja: Honor the LINK_DEPENDS target property (#14796) 2015-08-05 14:12:05 -04:00
Brad King 863b0a8ee9 Merge topic 'xcode-improve-quoting'
2eee2943 Xcode: Invert quoting logic to whitelist of characters
2015-08-05 13:54:38 -04:00
Gregor Jasny 2eee2943cc Xcode: Invert quoting logic to whitelist of characters
Our explicit list of characters that require quoting does not account
for non-ascii characters (e.g. UTF-8) that also need quoting.  Invert
the logic to quote a string unless it contains exclusively a set of
characters we whitelist.
2015-08-05 13:51:31 -04:00
Stephen Kelly a309409ead cmOrderDirectories: Port to cmGeneratorTarget. 2015-08-05 18:20:50 +02:00
Stephen Kelly f83e84028a cmGeneratorTarget: Move CompileInfoMap from cmTarget. 2015-08-05 18:20:50 +02:00
Stephen Kelly b3f0e35308 cmGeneratorTarget: Move GetCompilePDBDirectory from cmTarget. 2015-08-05 18:20:50 +02:00
Stephen Kelly 34c437411d cmGeneratorTarget: Move GetOutputName from cmTarget. 2015-08-05 18:20:50 +02:00
Stephen Kelly 4329a71c12 cmComputeLinkDepends: Port to cmGeneratorTarget. 2015-08-05 18:20:49 +02:00
Stephen Kelly c93230ac38 cmComputeLinkInformation: Port to cmGeneratorTarget. 2015-08-05 18:20:49 +02:00
Stephen Kelly ee26add4f4 cmGeneratorTarget: Move IsBundleOnApple from cmTarget. 2015-08-05 18:20:49 +02:00
Stephen Kelly c8a5f5ae60 cmMakefileTargetGenerator: Add accessor for GeneratorTarget. 2015-08-05 18:20:49 +02:00
Stephen Kelly f8076644ce cmGeneratorTarget: Move GetLinkClosure from cmTarget. 2015-08-05 18:20:49 +02:00
Stephen Kelly 7c809fa2a6 cmGeneratorTarget: Move GetLinkerLanguage from cmTarget. 2015-08-05 18:20:48 +02:00
Stephen Kelly 6da99de323 cmGeneratorTarget: Move GetFrameworkDirectory from cmTarget. 2015-08-05 18:20:48 +02:00
Stephen Kelly d6bb319b09 cmGeneratorTarget: Move GetFullName from cmTarget.
Bring GetFullNameInternal with it.
2015-08-05 18:20:48 +02:00
Stephen Kelly 7a460852fa cmGeneratorTarget: Move GetAppBundleDirectory from cmTarget. 2015-08-05 18:20:48 +02:00
Stephen Kelly d560bfd273 cmGeneratorTarget: Move GetInstallNameDir* from cmTarget. 2015-08-05 18:20:47 +02:00
Stephen Kelly 89e2a080e9 cmGeneratorTarget: Move GetMacContentDirectory from cmTarget. 2015-08-05 18:20:47 +02:00
Stephen Kelly 62720e44be cmGeneratorTarget: Move GetFullNameComponents from cmTarget. 2015-08-05 18:20:47 +02:00
Stephen Kelly e27d737e27 cmGeneratorTarget: Move IsChrPathUsed from cmTarget. 2015-08-05 18:20:47 +02:00
Stephen Kelly 8d2de00244 cmGeneratorTarget: Move NeedRelinkBeforeInstall from cmTarget. 2015-08-05 18:20:47 +02:00
Stephen Kelly 3df705681b cmGeneratorTarget: Move GetPDBName from cmTarget. 2015-08-05 18:20:46 +02:00
Stephen Kelly a45fed81e5 cmGeneratorTarget: Move GetCompilePDBPath from cmTarget. 2015-08-05 18:20:46 +02:00
Stephen Kelly f0aa660772 cmGeneratorTarget: Move HasSOName from cmTarget. 2015-08-05 18:20:46 +02:00
Stephen Kelly 766839c56d cmGeneratorTarget: Move GetLibraryNames from cmTarget. 2015-08-05 18:20:46 +02:00
Stephen Kelly 47803e6f8e cmGeneratorTarget: Move GetExecutableNames from cmTarget. 2015-08-05 18:20:46 +02:00
Stephen Kelly 7da4c9d4ed cmGeneratorTarget: Move GetLinkImplementationClosure 2015-08-05 18:20:45 +02:00
Stephen Kelly 97f10e488a cmGeneratorTarget: Move ReportPropertyOrigin from cmTarget. 2015-08-05 18:20:45 +02:00
Stephen Kelly 4b86f5edc9 cmGeneratorTarget: Make CompatibleType enum private again. 2015-08-05 18:20:45 +02:00
Stephen Kelly 5ff813c7a6 cmGeneratorTarget: Move LinkInterfaceDependent methods from cmTarget. 2015-08-05 18:20:45 +02:00
Stephen Kelly 38d4ba3564 cmGeneratorTarget: Port internal API to cmGeneratorTarget. 2015-08-05 18:20:44 +02:00
Stephen Kelly 90bad039c4 cmGeneratorTarget: Move CheckPropertyCompatibility from cmTarget. 2015-08-05 18:20:44 +02:00
Stephen Kelly 803a7982b4 cmGeneratorTarget: Move GetLinkInformation from cmTarget 2015-08-05 18:20:44 +02:00
Stephen Kelly c971338416 Export: Port more API to cmGeneratorTarget. 2015-08-05 18:20:44 +02:00
Stephen Kelly 244c5b5dcd cmGeneratorTarget: Move IsLinkInterfaceDependent* from cmTarget. 2015-08-05 18:20:44 +02:00
Stephen Kelly 12bc571c13 cmGeneratorTarget: Move GetAutoUicOptions from cmTarget. 2015-08-05 18:20:43 +02:00
Stephen Kelly 41abdc17df cmGeneratorTarget: Move GetSOName from cmTarget.. 2015-08-05 18:20:43 +02:00
Kitware Robot a15b69cbc7 CMake Nightly Date Stamp 2015-08-05 00:01:06 -04:00
Brad King c645590152 Merge branch 'fix-missing-subdir-error' into release 2015-08-04 16:45:43 -04:00
Brad King c4d2f64f3c add_subdirectory: Fix error message on missing CMakeLists.txt (#15680)
Refactoring in commit v3.3.0-rc1~76^2 (cmMakefile: Handle CMP0014 before
configuring the generator, 2015-05-14) accidentally left the file name
"/CMakeLists.txt" in the error message.  Remove it and add a test case.
2015-08-04 16:40:13 -04:00
Stephen Kelly 1aa13f2b58 cmExportInstallFileGenerator: Simplify local generator access. 2015-08-04 19:19:41 +02:00
Stephen Kelly 1ab59f688f cmGlobalNinjaGenerator: Simplify usage of API. 2015-08-04 19:19:40 +02:00
Brad King 87b869c1da Merge topic 'update-kwsys'
3da43137 Merge branch 'upstream-kwsys' into update-kwsys
9a59ae5c KWSys 2015-08-03 (dad68c33)
2015-08-04 09:15:12 -04:00
Brad King 4a1173fda0 Merge topic 'cmake-W-options'
975426ce cmake: Do not treat developer warnings as errors by default in scripts
2015-08-04 09:15:08 -04:00
Kitware Robot 331e791a3e CMake Nightly Date Stamp 2015-08-04 00:01:07 -04:00
Brad King 3da431379b Merge branch 'upstream-kwsys' into update-kwsys 2015-08-03 13:17:54 -04:00
Brad King 975426ceb3 cmake: Do not treat developer warnings as errors by default in scripts
The logic in commit c96fe0b4 (cmake: Add -W options to control
deprecation warnings and errors, 2015-07-28) accidentally enables
errors on warnings by default in scripts because there is no
initialization of CMAKE_SUPPRESS_DEVELOPER_ERRORS to TRUE.

Rename internal CMAKE_SUPPRESS_DEVELOPER_ERRORS cache entry to
CMAKE_ERROR_DEVELOPER_WARNINGS.  Fix the logic in the message() command
to treat AUTHOR_WARNING as an error only if the option is explicitly
enabled.
2015-08-03 10:03:27 -04:00
Brad King 7ac2b1256b Merge topic 'if-test'
14e49ed1 if: Add "TEST <test>" condition
623dcc85 ExternalProject: Avoid if() auto-dereference of a "TEST" variable
2015-08-03 09:25:10 -04:00
Matt McCormick 14e49ed156 if: Add "TEST <test>" condition
if(TEST TestNameThatExists) will return true if a test with the name
TestNameThatExists has been added with add_test.  The syntax is similar
to if(TARGET TargetName).  Since use of "TEST" as an argument to if()
could previously be interpreted as a non-keyword argument, add policy
CMP0064 to treat it as a keyword as NEW behavior.
2015-08-03 09:22:25 -04:00
Brad King 25ec835571 Merge topic 'fix-windows-version-detection'
d4736d53 Windows: Fix CMAKE_HOST_SYSTEM_VERSION on Windows >= 8.1 (#15674)
2015-08-03 09:11:30 -04:00
Brad King db519cae57 Merge topic 'fix-xcode-quoting'
f7a9ed7e Xcode: Quote strings containing a tilde (#15672)
2015-08-03 09:11:28 -04:00
Brad King 5c02ae4ac9 Merge topic 'update-kwsys'
da98b896 Tests: In CTestTest2 skip the kwsys.testProcess-10 test that leaks
129640f2 CTestCustom: Ignore kwsys.testProcess-10 for MemCheck as KWSys does
d0915bc8 Merge branch 'upstream-kwsys' into update-kwsys
1feafc64 KWSys 2015-07-30 (f63febb7)
2015-08-03 09:11:25 -04:00
Kitware Robot ebacce3f0b CMake Nightly Date Stamp 2015-08-03 00:01:05 -04:00
Stephen Kelly 757a1f5408 cmState: Move PolicyState from cmMakefile.
Implement lexical scope checking in terms of the state stack instead
of barriers.
2015-08-02 08:56:57 +02:00
Stephen Kelly 52dbe654de cmState: Record the end position of each directory.
At generate time, variables and policies are determined from the end
state of the cmMakefile.
2015-08-02 08:56:57 +02:00
Stephen Kelly 65a5e0c671 cmLinkedTree: Add Clear API. 2015-08-02 08:56:57 +02:00
Stephen Kelly 348354333a cmState: Add Type for policy scope. 2015-08-02 08:56:57 +02:00
Kitware Robot 614786cc5c CMake Nightly Date Stamp 2015-08-02 00:01:07 -04:00
Stephen Kelly 12c3f24827 cmGeneratorExpressionEvaluationFile: Require generator context.
Avoid storing a cmMakefile as a member, and evaluate in the context of
a cmLocalGenerator instead.
2015-08-01 13:07:11 +02:00
Stephen Kelly 6c0e9ee276 cmMakefile: Store EvaluationFiles.
Relieve the cmGlobalGenerator of this responsibility.  Evaluate
the generator expressions in the context of the cmLocalGenerator.
2015-08-01 13:07:11 +02:00
Stephen Kelly af0de01c6b cmState: Remove call stack parent tracking.
This was added at a time when I thought the cmState would report errors,
but that is not the direction it is going.  The ordering of the stack of
scopes is canonical and clients are required to maintain it.
2015-08-01 07:31:08 +02:00
Stephen Kelly 6ae8b30bf4 cmMakefile: Move policy barriers inside cmState scopes. 2015-08-01 07:18:34 +02:00
Stephen Kelly a5fc17b509 cmMakefile: Re-order policy entries and barriers.
Make the barriers surround the entries.
2015-08-01 07:18:34 +02:00
Stephen Kelly 0a01e6c6e7 cmState: Add Snapshot Type accessor. 2015-08-01 07:18:34 +02:00
Kitware Robot 9432b14e91 CMake Nightly Date Stamp 2015-08-01 00:01:06 -04:00
Brad King d0915bc86f Merge branch 'upstream-kwsys' into update-kwsys 2015-07-31 09:26:35 -04:00
Brad King 609e8b181a Merge topic 'cmake-W-options'
c96fe0b4 cmake: Add -W options to control deprecation warnings and errors
2015-07-31 09:21:47 -04:00
Brad King 82e77d7430 Merge topic 'refactor-install'
a23fcc95 cmInstallTargetGenerator: Port to cmGeneratorTarget.
4e41913f cmInstallCommand: Store only a targetName, not a cmTarget.
e5e52970 cmInstallGenerator: Add a Compute() virtual hook.
3ef8aaaa cmInstallCommand: Move the SetHaveInstallRule invocation.
5f662b38 cmScriptGenerator: Remove unused method.
0368552d cmGlobalGenerator: Move QtAutogen handling to Compute().
5edb3354 cmGlobalGenerator: Virtualize the Compute step and override it.
ff1019bf cmGlobalGenerator: Move generation object creation to Compute().
aa2407d8 Xcode: Use allBuild target return value.
610572b7 cmMakefile: Simplify generate-time cmGeneratorTarget creation.
2e94cba3 cmGlobalGenerator: Move FinalizeTargetCompileInfo to Compute().
fb9355c5 cmGlobalGenerator: Return from Compute whether to generate.
29e8b7bf cmGlobalGenerator: Create a new Compute step before generation.
1ef9b2b6 cmGlobalGenerator: Remove the TargetManifest member.
5c14f780 cmGlobalGenerator: Remove unused manifest accessor.
a1209be5 VisualStudio: Skip global targets when processing.
...
2015-07-31 09:21:45 -04:00
Brad King d4736d53cd Windows: Fix CMAKE_HOST_SYSTEM_VERSION on Windows >= 8.1 (#15674)
The GetVersionEx API is deprecated, so try RtlGetVersion first.

Co-Author: Christian Maaser
2015-07-31 09:12:41 -04:00
Brad King bcba0d3099 Merge branch 'fix-xcode-quoting' into release 2015-07-31 08:56:20 -04:00
Gregor Jasny f7a9ed7e90 Xcode: Quote strings containing a tilde (#15672)
Since commit v3.3.0-rc1~183^2 (Xcode: Refine quoting rules for Strings,
2015-04-09) we no longer quote strings containing a period ('.').
However, file names like "icon29x29~ipad.png" still need quoting because
they contain a tilde ('~').  Add tilde to our explicit list of
characters that need quoting because such file names will no longer
happen to be quoted because they contain a period.
2015-07-31 08:44:27 -04:00
Kitware Robot 1687060b58 CMake Nightly Date Stamp 2015-07-31 00:01:06 -04:00
Brad King a8c3698526 Merge topic 'refactor-fortran-module-directory'
e90372a0 cmCommonTargetGenerator: Factor out Fortran module directory computation
70c21301 cmCommonTargetGenerator: Store working directory for relative paths
7371d8f3 cmCommonTargetGenerator: Return string from GetFortranModuleDirectory
613bc08a cmDependsFortran: Use string to store module directory
2015-07-30 09:56:16 -04:00
Brad King 7e27a42ebd Merge topic 'cmCommonTargetGenerator-GetLinkedTargetDirectories'
6d79eda7 cmCommonTargetGenerator: Adopt linked target directory computation
2015-07-30 09:56:14 -04:00
Stephen Kelly a23fcc9558 cmInstallTargetGenerator: Port to cmGeneratorTarget. 2015-07-30 08:28:32 +02:00
Stephen Kelly 4e41913f9a cmInstallCommand: Store only a targetName, not a cmTarget.
Compute the cmTarget at Compute() time.
2015-07-30 08:28:31 +02:00
Stephen Kelly e5e5297018 cmInstallGenerator: Add a Compute() virtual hook. 2015-07-30 08:28:31 +02:00
Stephen Kelly 3ef8aaaa71 cmInstallCommand: Move the SetHaveInstallRule invocation.
Remove the call from cmInstallTargetGenerator because that is
to be ported away from cmTarget.
2015-07-30 08:28:31 +02:00
Stephen Kelly 5f662b3887 cmScriptGenerator: Remove unused method. 2015-07-30 08:28:31 +02:00
Stephen Kelly 0368552d7f cmGlobalGenerator: Move QtAutogen handling to Compute(). 2015-07-30 08:28:31 +02:00
Stephen Kelly 5edb335485 cmGlobalGenerator: Virtualize the Compute step and override it. 2015-07-30 08:28:31 +02:00
Stephen Kelly ff1019bfac cmGlobalGenerator: Move generation object creation to Compute(). 2015-07-30 08:28:30 +02:00
Kitware Robot 3a755559d1 CMake Nightly Date Stamp 2015-07-30 00:01:06 -04:00
Brad King e90372a0db cmCommonTargetGenerator: Factor out Fortran module directory computation
Move computation from GetFortranModuleDirectory to a virtual method
so it can be customized for each type of generator.
2015-07-29 13:37:54 -04:00
Brad King 70c21301b2 cmCommonTargetGenerator: Store working directory for relative paths
The Makefile generators run tools with the current working directory set
to the subdirectory of the build tree for the each target.  The Ninja
generator runs tools with the current working directory set to the top
of the build tree.  Tell cmCommonTargetGenerator where the working
directory will be so it can compute proper relative paths.
2015-07-29 13:20:03 -04:00
Brad King 7371d8f3b4 cmCommonTargetGenerator: Return string from GetFortranModuleDirectory 2015-07-29 13:18:46 -04:00
Brad King 613bc08ac1 cmDependsFortran: Use string to store module directory 2015-07-29 11:48:58 -04:00
Stephen Kelly aa2407d84d Xcode: Use allBuild target return value. 2015-07-29 10:43:34 -04:00
Stephen Kelly 610572b7d2 cmMakefile: Simplify generate-time cmGeneratorTarget creation. 2015-07-29 10:43:33 -04:00
Stephen Kelly 2e94cba356 cmGlobalGenerator: Move FinalizeTargetCompileInfo to Compute(). 2015-07-29 10:43:33 -04:00
Stephen Kelly fb9355c50e cmGlobalGenerator: Return from Compute whether to generate. 2015-07-29 10:43:33 -04:00
Stephen Kelly 29e8b7bfcc cmGlobalGenerator: Create a new Compute step before generation.
Replace the DoGenerate method.
2015-07-29 10:43:33 -04:00
Stephen Kelly 1ef9b2b600 cmGlobalGenerator: Remove the TargetManifest member. 2015-07-29 10:43:32 -04:00
Stephen Kelly 5c14f78005 cmGlobalGenerator: Remove unused manifest accessor. 2015-07-29 10:43:32 -04:00
Stephen Kelly a1209be550 VisualStudio: Skip global targets when processing. 2015-07-29 10:43:32 -04:00
Stephen Kelly 32e4f6beca Xcode: Skip Global targets when processing. 2015-07-29 10:43:32 -04:00
Stephen Kelly 34b902a5a6 cmMakefile: Move method out of line. 2015-07-29 10:43:31 -04:00
Brad King aaa322a5cb cmMakefile: Return target from all AddUtilityCommand signatures 2015-07-29 10:43:31 -04:00
Brad King 22b8f23849 Merge topic 'minor-cleanups'
3942ec32 cmMakefileTargetGenerator: Remove unused variable.
a034dc0d cmGeneratorExpressionNode: Remove unused variable.
aeb74ae9 Fix include guard.
2015-07-29 10:29:32 -04:00
Brad King 8697dca7f1 Merge topic 'ninja-implib-byproduct'
35fb0bb8 Ninja: Make import libraries BYPRODUCTs instead of regular OUTPUTs
2015-07-29 10:29:30 -04:00
Michael Scott c96fe0b40d cmake: Add -W options to control deprecation warnings and errors
Refactor the -Wdev and -Wno-dev to use a generic -W parser that follows
the GCC pattern.  Include support for setting CMAKE_ERROR_DEPRECATED and
CMAKE_WARN_DEPRECATED via the deprecated warning.  Add -Werror=dev and
-Wno-error=dev options so that dev warning options are in line with
deprecated warning options.  Use a new CMAKE_SUPPRESS_DEVELOPER_ERRORS
internal cache entry to store the above new dev options persistently.
Add tests for new options and updated cmake documentation and release
notes to list new options.
2015-07-29 09:20:10 -04:00
Kitware Robot 700d537e60 CMake Nightly Date Stamp 2015-07-29 00:01:05 -04:00
Brad King 6d79eda769 cmCommonTargetGenerator: Adopt linked target directory computation
Factor a GetLinkedTargetDirectories method out of
cmMakefileTargetGenerator::WriteTargetDependRules to compute the list of
directories associated with targets to which the current target links.
2015-07-28 15:40:06 -04:00
Stephen Kelly 3942ec32dd cmMakefileTargetGenerator: Remove unused variable. 2015-07-28 20:08:11 +02:00
Stephen Kelly a034dc0df4 cmGeneratorExpressionNode: Remove unused variable. 2015-07-28 20:07:46 +02:00
Stephen Kelly aeb74ae9f9 Fix include guard. 2015-07-28 20:06:38 +02:00
Brad King 98d6e9ec2d Merge topic 'use-generator-target'
57f03e59 Port some of the cmExportFileGenerator API to cmGeneratorTarget.
57ab0f70 Port cmExportBuildFileGenerator to cmGeneratorTarget.
570938cb cmExportTryCompileFileGenerator: Create cmGeneratorTargets.
ec38e4c8 Move GetFullPath to cmGeneratorTarget
dfb025bf Move GetLocationForBuild to cmGeneratorTarget.
9f2dca80 Move GetLocation to cmGeneratorTarget.
c7a8e74b Always access target location from a cmGeneratorTarget instance.
5b60eaf6 cmTarget: Restore the ImportedGetLocation method.
50b17a61 cmIncludeCommand: Populate the cmGeneratorTargets in deprecated path.
ba266858 cmTarget: Create cmGeneratorTargets before reading deprecated LOCATION.
5ab3a946 cmTarget: Inline GetLocation into deprecated callers.
496f4cd0 cmGlobalGenerator: Create cmGeneratorTargets before QtAutomoc.
de80993a cmGlobalGenerator: Create cmGeneratorTargets earlier.
611220f7 cmTarget: Use reliable test for CMP0024 and CMP0026 OLD.
bbad6ba5 cmLocalGenerator: Remove unused AddCustomCommandToCreateObject method.
e4dc83ad cmLocalGenerator: Remove unused AddBuildTargetRule method.
...
2015-07-28 10:08:50 -04:00
Brad King 16dffb3136 Merge topic 'cmConditionEvaluator-minor-cleanup'
e7d5c142 cmConditionEvaluator: Remove superfluous spaces in expressions
2015-07-28 10:08:48 -04:00
Brad King eda29e6632 Merge topic 'ctest-add_subdirectory-crash'
64821e8a ctest: fix add_subdirectory() crash
2015-07-28 10:08:46 -04:00
Brad King eb2b23e0d9 Merge topic 'cmake-install-dependencies-option'
068e7962 CMake: Add CMake_INSTALL_DEPENDENCIES option
2015-07-28 10:08:44 -04:00
Brad King be938ab3f8 Merge topic 'cmake-gui-install-plugin'
42f0155b cmake-gui: Install Qt5 Windows platform plugin
2015-07-28 10:08:42 -04:00
Brad King 2a2a560125 Merge topic 'refactor-ninja-command-exporter'
cd530df8 cmNinjaTargetGenerator: Factor out compile command exporter
2015-07-28 10:08:40 -04:00
Brad King 24dd88d156 Merge topic 'fortran-parser-updates'
ecca8fd9 cmFortranParser: Port to bison 3
eebe732b cmFortranParser: Factor out of cmDependsFortran
fd194458 cmDependsFortran: Simplify storage of preprocessor definitions
295480b9 cmDependsFortran: Move FindIncludeFile method into parser class
98b9645b Rename Fortran parser infrastructure to drop "Depends" prefix
096dd3c9 cmDependsFortranLexer: Remove trailing blank line
2015-07-28 10:08:37 -04:00
Nils Gladitz 35fb0bb8c0 Ninja: Make import libraries BYPRODUCTs instead of regular OUTPUTs
The MSVC linker may update a binary without touching the associated
import library.

Making the import library a BYPRODUCT prevents the linker from
unnecessarily rerunning when the import library does not get regenerated
as previously expected.
2015-07-28 14:02:47 +02:00
Kitware Robot 9e29319447 CMake Nightly Date Stamp 2015-07-28 00:01:06 -04:00
Stephen Kelly 57f03e59ba Port some of the cmExportFileGenerator API to cmGeneratorTarget.
Enough to make it more possible to move GetLinkInterface
to cmGeneratorTarget.
2015-07-27 21:59:03 +02:00
Stephen Kelly 57ab0f70b5 Port cmExportBuildFileGenerator to cmGeneratorTarget. 2015-07-27 21:59:03 +02:00
Stephen Kelly 570938cbfd cmExportTryCompileFileGenerator: Create cmGeneratorTargets.
This is not a deprecated behavior, but only requires IMPORTED targets
be made.
2015-07-27 21:59:03 +02:00
Stephen Kelly ec38e4c84f Move GetFullPath to cmGeneratorTarget 2015-07-27 21:59:02 +02:00
Stephen Kelly dfb025bf12 Move GetLocationForBuild to cmGeneratorTarget. 2015-07-27 21:58:50 +02:00
Stephen Kelly 9f2dca805c Move GetLocation to cmGeneratorTarget. 2015-07-27 21:58:50 +02:00
Stephen Kelly c7a8e74b8c Always access target location from a cmGeneratorTarget instance. 2015-07-27 21:58:50 +02:00
Stephen Kelly 5b60eaf619 cmTarget: Restore the ImportedGetLocation method.
It was removed in commit f154475b (cmTarget: Refactor GetLocation
API, 2014-03-08), but it is more readable for targets we know are
imported.
2015-07-27 21:58:50 +02:00
Stephen Kelly 50b17a6112 cmIncludeCommand: Populate the cmGeneratorTargets in deprecated path. 2015-07-27 21:58:50 +02:00
Stephen Kelly ba26685882 cmTarget: Create cmGeneratorTargets before reading deprecated LOCATION.
The intention is to move generation-semantic cmTarget API to cmGeneratorTarget
and then use the latter for generator expressions.

This means that each time we read a deprecated LOCATION property, we have to
clear and re-populate the container.  That must be done each time because the
result can change through the configure process, which is why this is
deprecated in the first place.
2015-07-27 21:58:49 +02:00
Stephen Kelly 5ab3a94651 cmTarget: Inline GetLocation into deprecated callers. 2015-07-27 21:58:49 +02:00
Stephen Kelly 496f4cd07d cmGlobalGenerator: Create cmGeneratorTargets before QtAutomoc.
Add cmGeneratorTargets as needed in the QtAutomoc processing.
2015-07-27 21:58:49 +02:00
Stephen Kelly de80993a20 cmGlobalGenerator: Create cmGeneratorTargets earlier. 2015-07-27 21:58:49 +02:00
Stephen Kelly 611220f77a cmTarget: Use reliable test for CMP0024 and CMP0026 OLD.
Check whether the Makefile is fully configured instead of checking
whether generator targets exist.
2015-07-27 21:58:49 +02:00
Stephen Kelly bbad6ba537 cmLocalGenerator: Remove unused AddCustomCommandToCreateObject method. 2015-07-27 21:58:48 +02:00
Stephen Kelly e4dc83ade5 cmLocalGenerator: Remove unused AddBuildTargetRule method. 2015-07-27 21:58:47 +02:00
Stephen Kelly 72f43fa13d cmLocalGenerator: Remove CreateCustomTargetsAndCommands method.
It loops over cmGeneratorTargets, but at the point it is called, there are no
cmGeneratorTargets.  This must be dead code.
2015-07-27 21:57:29 +02:00
Stephen Kelly 58811998fb cmGlobalGenerator: Add global targets at the end of Configure.
Rather than at the start of Generate.
2015-07-27 21:57:28 +02:00
Stephen Kelly 57a69f9341 cmGlobalGenerator: Extract method to create generator objects. 2015-07-27 20:09:39 +02:00
Stephen Kelly 0e0258c8b9 cmGlobalGenerator: Split creation of generator object from initialization. 2015-07-27 20:09:38 +02:00
Stephen Kelly a8e5d838ed cmCPackPropertiesGenerator: Require cmLocalGenerator in API. 2015-07-27 20:09:38 +02:00
Stephen Kelly d568eefe10 cmCustomCommandGenerator: Require cmLocalGenerator in API. 2015-07-27 20:09:38 +02:00
Sebastian Schuberth e7d5c142c6 cmConditionEvaluator: Remove superfluous spaces in expressions 2015-07-27 17:24:59 +02:00
Ben Boeckel 64821e8a40 ctest: fix add_subdirectory() crash
The directory is at args[0], not args[1].  Introduced in commit
v2.6.0~489 (... 5889 ... tests are not found in some cases when using
add_subdirectory ..., 2008-01-18).
2015-07-27 11:14:51 -04:00
Konstantin Podsvirov 068e7962bb CMake: Add CMake_INSTALL_DEPENDENCIES option
By default this option is ON.  Turn OFF to disable installing runtime
3rd-party dependencies.
2015-07-27 10:30:41 -04:00
Konstantin Podsvirov 42f0155bb9 cmake-gui: Install Qt5 Windows platform plugin
Qt5 requires a platform-specific runtime-loaded plugin.  We already
install it for OS X.  Install it for Windows too.
2015-07-27 10:21:10 -04:00
Brad King cd530df88f cmNinjaTargetGenerator: Factor out compile command exporter 2015-07-27 09:54:07 -04:00
Brad King ecca8fd908 cmFortranParser: Port to bison 3
Use %-directives to specify the scanner/lexer arguments and update the
yyerror signature.  Reduce the list of post-bison modifications needed.
2015-07-27 09:45:36 -04:00
Brad King eebe732bb6 cmFortranParser: Factor out of cmDependsFortran
Move the main parser class and method implementations out of
cmDependsFortran.cxx and into separate source files.
2015-07-27 09:45:36 -04:00
Brad King fd19445802 cmDependsFortran: Simplify storage of preprocessor definitions
Collect the original preprocessor definitions in a std::set<> so that
it can be copied directly by cmFortranParser's constructor instead of
making a copy on the stack.
2015-07-27 09:45:35 -04:00
Brad King 295480b923 cmDependsFortran: Move FindIncludeFile method into parser class
This drops the only awareness of cmDependsFortran that cmFortranParser
needed.
2015-07-27 09:45:35 -04:00
Kitware Robot 98b9645bce Rename Fortran parser infrastructure to drop "Depends" prefix
The parser can be re-used outside cmDependsFortran or the cmDepends
class hierarchy so drop the "Depends" from its name:

 rename 's/DependsFortran([A-Za-z0-9_])/Fortran$1/' Source/*.*
 sed -i 's/DependsFortran\([A-Za-z0-9_]\)/Fortran\1/g' Source/*.*
 sed -i 's/FortranInternals/DependsFortranInternals/g' Source/*.*

Also manually fix Source/CMakeLists.txt source file ordering.
2015-07-27 09:45:35 -04:00
Brad King 096dd3c963 cmDependsFortranLexer: Remove trailing blank line 2015-07-27 09:45:35 -04:00
Brad King 280dde34dd Merge topic 'trace-expand'
594bafe5 cmake: add --trace-expand option
2015-07-27 09:31:22 -04:00
Brad King cb21c548db Merge topic 'policy-refactor'
8329fc01 cmPolicies: Replace unused include.
5447ca1a cmMakefile: Remove CMP0001 handling to callers.
d0dcce15 cmMakefile: Simplify computation of ancient policy status.
658bfc5c cmMakefile: Remove redundant condition from policy status computation.
f4a25874 cmMakefile: Inline internal policy status method.
3c45471c cmPolicies: Enable RVO for internal method.
71e69fc9 cmPolicies: Store only state that users can set.
84e18056 cmMakefile: Convert recursion to loop.
2015-07-27 09:31:18 -04:00
Brad King d74abbea89 Merge topic 'refactor-cmMakefile-properties'
bbb507ae cmMakefile: Move the InitializeFromParent method
6ed9c7e0 cmState: Host buildsystem properties for directories.
8f0a5d84 cmState: Fix compilation on IBM XL compiler
9644a2d1 cmAlgorithms: Add cmMakeReverseIterator.
1e77de74 cmMakefile: Don't clear buildsystem properties.
c1bf1a59 CompileDefinitions: Add unit test for setting empty content.
2015-07-27 09:31:16 -04:00
Brad King 91a159245f Merge topic 'cmRange-API'
8d336875 cmMakefile: Use Ranges for buildsystem property access.
514a1dff cmAlgorithms: Add some convenient typedefs.
c7b39d06 cmMakefile: Split accessors for include directories and origins.
b2de25ad cmMakefile: Split accessors for compile options and origins.
d6239507 cmMakefile: Split accessors for compile definitions and origins.
ef17bbef cmMakefile: Separate storage of buildsystem properties and their origins.
a89c02ce cmMakefile: Out of line some API.
b19587e7 cmMakefile: Remove some references from APIs.
1fe71e2e cmAlgorithms: Move Range type out of private namespace.
8ea0b81d cmAlgorithms: Rename cmRange to cmMakeRange.
2015-07-27 09:31:14 -04:00
Kitware Robot 317df61fc8 CMake Nightly Date Stamp 2015-07-27 00:01:06 -04:00
Kitware Robot 983d7b5c3a CMake Nightly Date Stamp 2015-07-26 00:01:05 -04:00
Stephen Kelly bbb507aebc cmMakefile: Move the InitializeFromParent method 2015-07-25 14:53:06 +02:00
Stephen Kelly 6ed9c7e024 cmState: Host buildsystem properties for directories. 2015-07-25 14:53:05 +02:00
Brad King 8f0a5d84e3 cmState: Fix compilation on IBM XL compiler
Delay use of the PositionType constructor until after SnapshotDataType
is fully defined.
2015-07-25 14:52:05 +02:00
Stephen Kelly 8329fc016f cmPolicies: Replace unused include. 2015-07-25 14:48:37 +02:00
Stephen Kelly 5447ca1a94 cmMakefile: Remove CMP0001 handling to callers. 2015-07-25 14:48:37 +02:00
Stephen Kelly d0dcce15f4 cmMakefile: Simplify computation of ancient policy status. 2015-07-25 14:48:37 +02:00
Stephen Kelly 658bfc5c52 cmMakefile: Remove redundant condition from policy status computation. 2015-07-25 14:48:36 +02:00
Stephen Kelly f4a25874a2 cmMakefile: Inline internal policy status method. 2015-07-25 14:48:36 +02:00
Stephen Kelly 3c45471c2d cmPolicies: Enable RVO for internal method. 2015-07-25 14:48:36 +02:00
Stephen Kelly 71e69fc93b cmPolicies: Store only state that users can set.
cmPolicies::PolicyMap does not need to store the REQUIRED_ALWAYS or
REQUIRED_IF_USED states as they are statically determined.
2015-07-25 14:48:36 +02:00
Stephen Kelly 84e1805666 cmMakefile: Convert recursion to loop. 2015-07-25 14:48:36 +02:00
Kitware Robot 26d1a9d356 CMake Nightly Date Stamp 2015-07-25 00:01:05 -04:00
Kitware Robot d546133d49 CMake Nightly Date Stamp 2015-07-24 00:01:07 -04:00
Ben Boeckel 594bafe527 cmake: add --trace-expand option
The --trace option is helpful, but sometimes, what you're looking for is
deep under many layers of function calls and figuring out what instance
of the function call you're looking at is tedious to determine (usually
involving patching and message()). Instead, add a --trace-expand option
to trace while expanding commands into what CMake actually sees.
2015-07-23 15:33:10 -04:00
Brad King 3a0db0223b CMake 3.3.0 2015-07-23 08:49:45 -04:00
Kitware Robot 900554b021 CMake Nightly Date Stamp 2015-07-23 00:01:06 -04:00
Stephen Kelly 9644a2d11c cmAlgorithms: Add cmMakeReverseIterator. 2015-07-22 21:23:50 +02:00
Stephen Kelly 1e77de7411 cmMakefile: Don't clear buildsystem properties.
Instead put a sentinal empty entry in the container when a property
is overwritten.  Use this sentinal when reading from the containers.

Use iterator::operator+(size_type) directly instead of std::advance,
because this only really makes sense if using RandomAccessIterators.
2015-07-22 21:23:49 +02:00
Stephen Kelly 8d336875b3 cmMakefile: Use Ranges for buildsystem property access.
Don't return vector copies.
2015-07-22 20:25:48 +02:00
Stephen Kelly 514a1dff5b cmAlgorithms: Add some convenient typedefs. 2015-07-22 20:25:47 +02:00
Stephen Kelly c7b39d06f9 cmMakefile: Split accessors for include directories and origins. 2015-07-22 20:25:47 +02:00
Stephen Kelly b2de25aded cmMakefile: Split accessors for compile options and origins. 2015-07-22 20:25:46 +02:00
Stephen Kelly d6239507b2 cmMakefile: Split accessors for compile definitions and origins. 2015-07-22 20:25:45 +02:00
Stephen Kelly ef17bbefd7 cmMakefile: Separate storage of buildsystem properties and their origins.
This simplifies some existing and upcoming algorithms.
2015-07-22 20:25:43 +02:00
Stephen Kelly a89c02ce3d cmMakefile: Out of line some API. 2015-07-22 20:06:23 +02:00
Stephen Kelly b19587e7d7 cmMakefile: Remove some references from APIs. 2015-07-22 20:06:22 +02:00
Brad King e00e8713de Merge topic 'export-no-custom-target'
7e9f908e export: Reject custom target exports earlier (#15657)
3b09398a Tests: Teach RunCMake.export to enable languages only when needed
2015-07-22 11:04:32 -04:00
Brad King 4c3d431210 Merge topic 'target-directory-properties'
45c5f8ca Add SOURCE_DIR and BINARY_DIR target properties
2015-07-22 11:04:30 -04:00
Stephen Kelly 1fe71e2ef0 cmAlgorithms: Move Range type out of private namespace. 2015-07-22 10:58:19 -04:00
Stephen Kelly 8ea0b81d20 cmAlgorithms: Rename cmRange to cmMakeRange. 2015-07-22 10:58:19 -04:00
Brad King a398acd02f Revert "CMake 3.3.0"
This reverts commit 0e3cfc134c.
Due to VS 2015 RTM being released, additional changes are needed
to CMake 3.3.
2015-07-22 08:35:21 -04:00
Kitware Robot 91d2497286 CMake Nightly Date Stamp 2015-07-22 00:01:06 -04:00
Brad King 7e9f908ef5 export: Reject custom target exports earlier (#15657)
Diagnose and reject custom targets given to the export() command
immediately.  Previously we would generate an internal error later.
2015-07-21 14:39:10 -04:00
Clifford Yapp 45c5f8cad2 Add SOURCE_DIR and BINARY_DIR target properties
This will allow project code to recover the directory information about
where a target was created.
2015-07-21 14:19:35 -04:00
Brad King 5b2754d41f Merge topic 'remove-special-MACROS-handling'
41bb831f cmMakefile: Remove special handling of MACROS property.
2015-07-21 09:22:23 -04:00
Brad King e13c189743 Merge topic 'remove-special-LINK_DIRECTORIES-handling'
881613c4 cmMakefile: Remove special handling of LINK_DIRECTORIES property.
35734260 cmMakefile: Inline only use of GetLinkDirectories.
2015-07-21 09:22:21 -04:00
Brad King ae64efa1ce Merge topic 'cmState-Directory'
9ebc7502 cmState: Extract a Directory class.
27ec21db cmState: Forward-declare a type earlier.
2015-07-21 09:22:19 -04:00
Brad King 93b393e74c Merge topic 'remove-Properties-accessor'
c6055d9d cmMakefile: Remove GetProperties method.
cbe3ee58 cmMakefile: Add a PropertyKeys accessor.
2015-07-21 09:22:17 -04:00
Brad King 64aa41b248 Merge topic 'clean-up-include_regular_expression'
4efda261 cmMakefile: Remove special handling of INCLUDE_REGULAR_EXPRESSION.
2015-07-21 09:22:15 -04:00
Brad King ce597a022b Merge topic 'minor-cleanups'
cff2dc34 cmLocalUnixMakefileGenerator3: Port away from the Parent.
5505bff7 cmMakefile: Add include which we use.
2007d11c cmState: Remove unused variable.
a622b829 cmGetCMakePropertyCommand: Clean up VARIABLES handling.
52f22616 cmListFileBacktrace: Constify API.
fc1c7cf8 Genex: Store a backtrace, not a pointer to one.
4dc45707 cmMakefile: Fix indentation.
12c82fd8 cmMakefile: Remove dead code.
f19653eb CodeLite: Remove unused code.
2015-07-21 09:22:13 -04:00
Brad King b953d526d1 Merge topic 'remove-ListFileStack'
640fc5b5 cmMakefile: Remove unused ListFileStack.
54cc0c0e cmMakefile: Port some users of ListFileStack to cmState.
e77c4666 cmMakefile: Remove obsolete condition.
8e7d3030 cmMakefile: Simplify setting of current snapshot.
6083ec9a cmMakefile: Implement LISTFILE_STACK property in terms of cmState.
647b533b cmMakefile: Implement FormatListFileStack in terms of cmState.
2015-07-21 09:22:10 -04:00
Kitware Robot 533798275c CMake Nightly Date Stamp 2015-07-21 00:01:05 -04:00
Brad King 0e3cfc134c CMake 3.3.0 2015-07-20 11:05:01 -04:00
Kitware Robot 04b45acc3d CMake Nightly Date Stamp 2015-07-20 00:01:05 -04:00
Stephen Kelly 41bb831fc9 cmMakefile: Remove special handling of MACROS property. 2015-07-19 16:01:39 +02:00
Kitware Robot 0d48bb6273 CMake Nightly Date Stamp 2015-07-19 00:01:06 -04:00
Stephen Kelly 9ebc7502b2 cmState: Extract a Directory class.
Move Directory-scoped state accessors to it.  This will be expanded
with directory property state soon.
2015-07-18 19:37:58 +02:00
Stephen Kelly 27ec21dbb2 cmState: Forward-declare a type earlier. 2015-07-18 19:09:51 +02:00
Stephen Kelly c6055d9d4c cmMakefile: Remove GetProperties method.
The storage details of properties do not belong in the API.
2015-07-18 18:59:41 +02:00
Stephen Kelly cbe3ee58ca cmMakefile: Add a PropertyKeys accessor. 2015-07-18 18:59:18 +02:00
Stephen Kelly cff2dc34f9 cmLocalUnixMakefileGenerator3: Port away from the Parent. 2015-07-18 18:43:17 +02:00
Stephen Kelly 5505bff7ae cmMakefile: Add include which we use.
Don't rely on this through the cmLocalGenerator include.
2015-07-18 18:40:36 +02:00
Stephen Kelly 2007d11caf cmState: Remove unused variable. 2015-07-18 14:40:12 +02:00
Stephen Kelly a622b829bd cmGetCMakePropertyCommand: Clean up VARIABLES handling. 2015-07-18 14:39:51 +02:00
Stephen Kelly 4efda261fe cmMakefile: Remove special handling of INCLUDE_REGULAR_EXPRESSION.
It costs an extra cmMakefile member and extra code to maintain in
directory property handling.  Remove documentation note that it
is read-only and specify high-level command to populate it.
2015-07-18 14:10:34 +02:00
Stephen Kelly 881613c4ab cmMakefile: Remove special handling of LINK_DIRECTORIES property.
There is no need to handle it in a special way.
2015-07-18 13:56:48 +02:00
Stephen Kelly 357342602d cmMakefile: Inline only use of GetLinkDirectories. 2015-07-18 13:45:43 +02:00
Stephen Kelly 640fc5b54a cmMakefile: Remove unused ListFileStack. 2015-07-18 13:27:19 +02:00
Stephen Kelly 54cc0c0e1f cmMakefile: Port some users of ListFileStack to cmState. 2015-07-18 13:26:06 +02:00
Stephen Kelly e77c46664c cmMakefile: Remove obsolete condition. 2015-07-18 13:22:51 +02:00
Stephen Kelly 8e7d303077 cmMakefile: Simplify setting of current snapshot. 2015-07-18 13:17:24 +02:00
Stephen Kelly 6083ec9a78 cmMakefile: Implement LISTFILE_STACK property in terms of cmState. 2015-07-18 13:12:07 +02:00
Stephen Kelly 647b533bce cmMakefile: Implement FormatListFileStack in terms of cmState. 2015-07-18 13:11:45 +02:00
Stephen Kelly 52f2261685 cmListFileBacktrace: Constify API. 2015-07-18 11:10:15 +02:00
Kitware Robot e7fbd489e0 CMake Nightly Date Stamp 2015-07-18 00:01:05 -04:00
Stephen Kelly fc1c7cf85d Genex: Store a backtrace, not a pointer to one.
The storage of a pointer means that the ownership and lifetime are
externally determined, which is harder to reason about. It also imposes
API constraints, requiring APIs to return references to backtraces.

This pointer storage was introduced in commit v3.1.0-rc1~425^2~3 (genex:
remove the need for backtraces, 2014-05-23).  As backtraces are now cheap
to copy around, just do that instead.
2015-07-17 22:14:37 +02:00
Stephen Kelly 4dc4570734 cmMakefile: Fix indentation. 2015-07-17 22:14:37 +02:00
Stephen Kelly 12c82fd8c0 cmMakefile: Remove dead code. 2015-07-17 22:14:36 +02:00
Stephen Kelly f19653eb94 CodeLite: Remove unused code. 2015-07-17 22:14:36 +02:00