Commit Graph

19333 Commits

Author SHA1 Message Date
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