Commit Graph

17310 Commits

Author SHA1 Message Date
Kitware Robot 7a2d1cd6d4 CMake Nightly Date Stamp 2014-12-23 00:01:15 -05:00
Brad King fdbfcfdf01 Ninja: Generate rules only for languages compiled in a target (#15325)
Refactoring in commit v3.1.0-rc1~688^2~2 (cmTarget: Compute languages
from object libraries on demand, 2014-03-18) taught cmTarget::GetLanguages
to (correctly) include the languages of object library sources.  Previously
this was done only in cmTarget::ComputeLinkImplementationLanguages to
choose the linker language.

The Ninja generator writes out generic build rules for each language
compiled within a target using the rule variables defined in the
directory of the target.  This only needs to be done for languages
actually compiled within the current target.  Switch from using the
cmTarget::GetLanguages method to get the list of languages over to
using cmTarget::GetSourceFiles directly so we do not get the languages
in object libraries.

Strictly speaking this should make no difference because it is not safe
to use objects from a language not enabled in the directory containing
a target or else the link information for the language may not be
considered.  However, in cases when no link information happens to be
needed for a language it was possible in CMake 3.0 and below to enable
a language only in a subdirectory providing an object library, and then
use the objects from a containing directory.  The above change teaches
the Ninja generator to continue working in this case.
2014-12-22 20:13:30 -05:00
Brad King 62b1998403 Merge branch 'ninja-fix-crash-on-error' into release 2014-12-22 20:00:07 -05:00
Brad King 9a13fcbf02 Ninja: Do not crash when CMAKE_<LANG>_COMPILE_OBJECT is empty (#15325) 2014-12-22 18:36:07 -05:00
Rolf Eike Beer 82fbf490b5 cmCTestTestHandler: take reference to temporary string instead of doing a copy
This will increase the lifetime of the temporary until the end of the function.
2014-12-22 21:38:59 +01:00
Brad King 6c39bc5520 Merge topic 'macho-parser'
c294a115 Mach-O: Use Mach-O parser to extract install names instead of otool.
e42da307 Mach-O: Add Mach-O parser for OS X and iOS.
2014-12-22 13:41:03 -05:00
Clinton Stimpson c294a115f2 Mach-O: Use Mach-O parser to extract install names instead of otool.
This has much better performance than calling "otool" or "xcrun -r otool"
to extract install names for rpath support.

Fixes bug #15178.
2014-12-22 11:33:00 -07:00
Clinton Stimpson e42da30782 Mach-O: Add Mach-O parser for OS X and iOS.
This parser also supports fat binaries which archive multiple
Mach-O binaries.
2014-12-22 11:32:10 -07:00
Vladislav Vinogradov 9c4984b4e5 ctest_coverage: Fix error message to report the file name
Print file name instead of line content for "Looks like there are more
lines in the file:" error message.
2014-12-22 09:25:24 -05:00
Calin Cascaval 42ed76bc99 cpack: Fix installed size computation with PackageMaker generator
Use the CPACK_PACKAGING_INSTALL_PREFIX when looking for files in a
component.  Otherwise we report all packages having size 1.
2014-12-22 09:17:12 -05:00
Kitware Robot d63609ed2a CMake Nightly Date Stamp 2014-12-22 00:01:08 -05:00
Kitware Robot 2c76f6f4da CMake Nightly Date Stamp 2014-12-21 00:01:07 -05:00
Kitware Robot 5bb0ae03ef CMake Nightly Date Stamp 2014-12-20 00:01:09 -05:00
Brad King bf731becfa Merge topic 'update-kwsys'
2e9acb6d Merge branch 'upstream-kwsys' into update-kwsys
1f7de543 KWSys 2014-12-18 (87c65319)
2014-12-19 08:26:59 -05:00
Brad King ccd5822a83 Merge topic 'osx-cfbundle-tweaks'
b189c599 Tests: Run CFBundleTest only with valid configuration
3a605693 Xcode: Call IsCFBundleOnApple to decide if bundle is being built
207b7af0 cmTarget: Use GetCFBundleDirectory within GetFullNameInternal
2014-12-19 08:26:57 -05:00
Brad King 1ac8523c3b Merge topic 'install-EXPORT-absolute-prefix'
dd089e08 install: Allow absolute EXPORT destination with relative targets (#15258)
2014-12-19 08:26:55 -05:00
Kitware Robot d48ccbe458 CMake Nightly Date Stamp 2014-12-19 00:01:09 -05:00
Stephen Kelly e2a489c76a Remove some temporary vectors for ExpandListArgument.
Expand directly into the target when possible.
2014-12-19 00:06:00 +01:00
Stephen Kelly 0f99feec04 cmGeneratorExpression: Remove unused header. 2014-12-19 00:06:00 +01:00
Stephen Kelly 722f1a71e3 CTest: Expand a string directly into a container.
Change the follow-up loop to use a const_iterator to log the
content.
2014-12-19 00:05:57 +01:00
Chuck Atkins 107dcac3e0 Fix compilation with the Oracle / Sun compiler (#15318)
One piece of code has some ambiguous type deduction that seems to
resolve correctly for most compilers but not for the Oracle compiler.
Make it more explicit.
2014-12-18 11:23:41 -05:00
Brad King 2e9acb6d43 Merge branch 'upstream-kwsys' into update-kwsys 2014-12-18 10:17:20 -05:00
Brad King cd7bde80bf Merge topic 'update-kwsys'
3470704f Merge branch 'upstream-kwsys' into update-kwsys
6a5ab894 KWSys 2014-12-16 (cc4046a8)
2014-12-18 10:16:42 -05:00
Brad King 45b1e31451 Merge topic 'vs-nsight-tegra-min-api'
eeaa25e5 Add 'ANDROID_API_MIN' target property to set Android Target MIN API
2014-12-18 10:16:40 -05:00
Brad King a39e65a817 Merge topic 'fix-sha2-cast-constness'
d4d2d72f sha2: Fix -Wcast-qual warnings by adding const to some casts
2014-12-18 10:16:38 -05:00
Kitware Robot 2a45da6ea4 CMake Nightly Date Stamp 2014-12-18 00:01:20 -05:00
Brad King 3470704f5a Merge branch 'upstream-kwsys' into update-kwsys 2014-12-17 15:00:39 -05:00
Brad King 9c7c6e434a Merge topic 'ctest_memcheck-no-empty-BC-output'
1c812979 ctest_memcheck: Do not open empty BC output file name
2014-12-17 14:54:14 -05:00
Brad King f408667d19 Merge topic 'fix_coverage_scanbuild_errors'
0622f92d CTest: Remove code to fix scanbuild errors
2014-12-17 14:44:19 -05:00
Sean McBride d4d2d72f5d sha2: Fix -Wcast-qual warnings by adding const to some casts 2014-12-17 13:53:04 -05:00
Gregor Jasny 3a605693a5 Xcode: Call IsCFBundleOnApple to decide if bundle is being built
Narrow down the decision if a CFBundle is built to one place.
This is a preparation patch to add another target property
which, if set, will imply BUNDLE.  Having only one function
which will have to look at both properties helps to keep code
clean.

Signed-off-by: Gregor Jasny <gjasny@googlemail.com>
2014-12-17 11:26:10 -05:00
Gregor Jasny 207b7af00b cmTarget: Use GetCFBundleDirectory within GetFullNameInternal
Replace duplicated code by call to GetCFBundleDirectory.

Signed-off-by: Gregor Jasny <gjasny@googlemail.com>
2014-12-17 11:24:02 -05:00
Dmitry Polyanitsa eeaa25e521 Add 'ANDROID_API_MIN' target property to set Android Target MIN API
Also add a 'CMAKE_ANDROID_API_MIN' variable to set the property
default.  Teach the VS generator to write the MIN API value into
Nsight Tegra project files.
2014-12-17 11:17:28 -05:00
Kitware Robot ddd193fcdd CMake Nightly Date Stamp 2014-12-17 00:01:08 -05:00
Brad King 1c8129795a ctest_memcheck: Do not open empty BC output file name
In cmCTestMemCheckHandler::PostProcessBoundsCheckerTest return early
if the output file name is empty.  We already do this in the similar
cmCTestMemCheckHandler::AppendMemTesterOutput method.
2014-12-16 13:49:38 -05:00
Kitware Robot f30bac5eb4 CMake Nightly Date Stamp 2014-12-16 00:01:09 -05:00
Joseph Snyder 0622f92d23 CTest: Remove code to fix scanbuild errors
Remove code from cmParseBlanketJSCoverage.cxx and
cmParseDelphiCoverage.cxx which caused scanbuild errors
about not reading the value that was stored.
2014-12-15 12:48:08 -05:00
Brad King dd089e08b5 install: Allow absolute EXPORT destination with relative targets (#15258)
When install(EXPORT) is given an absolute destination we cannot compute
the install prefix relative to the installed export file location.
Previously we disallowed installation of targets in such exports with a
relative destination, but did not enforce this for target property
values besides the location of the main target file.  This could lead to
broken installations when the EXPORT is installed to an absolute path
but usage requirements are specified relative to the install prefix.

Since an EXPORT installed to an absolute destination cannot be relocated
we can just hard-code the value of CMAKE_INSTALL_PREFIX as the base for
relative paths.  This will allow absolute install(EXPORT) destinations
to work with relative destinations for targets and usage requirements.

Extend the ExportImport test with a case covering this behavior.
2014-12-15 11:45:49 -05:00
Brad King c118816d44 CMake 3.1.0 2014-12-15 11:08:08 -05:00
Brad King 872ad7a26d Merge topic 'assert-no-string-conversion'
2e92570b Fix some Clang -Wstring-conversion warnings
2014-12-15 11:06:49 -05:00
Brad King 6da3f17309 Merge topic 'suncc-fixes'
97b65f81 Misc. fixes for the Oracle / Sun compiler.
2014-12-15 11:06:44 -05:00
Kitware Robot bbabb9d810 CMake Nightly Date Stamp 2014-12-15 00:01:07 -05:00
Kitware Robot 18817e07d6 CMake Nightly Date Stamp 2014-12-14 00:01:08 -05:00
Kitware Robot fef31f1f21 CMake Nightly Date Stamp 2014-12-13 00:01:30 -05:00
Sean McBride 2e92570bda Fix some Clang -Wstring-conversion warnings
Some false positives, but some flagged faulty asserts
where the ! was inside the string instead of outside.
2014-12-12 14:38:23 -05:00
Brad King 9f41c45f43 Merge topic 'catch-ctest-errors-better'
d8589e64 ctest: count errors from scripts properly
2014-12-12 11:16:04 -05:00
Brad King 9c4ef206c7 Merge topic 'drop-double-underscores'
111be180 Rename header guards to not start with double underscore
2014-12-12 11:16:00 -05:00
Chuck Atkins 97b65f8156 Misc. fixes for the Oracle / Sun compiler.
A few pieces of code have some ambiguous type deduction that seems to
resolve correctly for most compilers but not for the Oracle compiler.
This makes those few instances more explicit.
2014-12-12 10:04:47 -05:00
Kitware Robot 17f638a4c9 CMake Nightly Date Stamp 2014-12-12 00:01:09 -05:00
Sean McBride 111be1801f Rename header guards to not start with double underscore
Use regex to find/replace:

__(cm.*_h)
\1

Then fix QCMake.h by hand.
2014-12-11 13:53:06 -05:00
Kitware Robot 3171fe0afa CMake Nightly Date Stamp 2014-12-11 00:01:07 -05:00
Ben Boeckel d8589e6437 ctest: count errors from scripts properly
In the unlikely event that someone has a billion+ scripts (or some
codepath returns negative numbers), we could overflow and make a pile of
errors a non-error. This change also allows us to use flags for the
error in the future rather than just "something went wrong".
2014-12-10 17:22:21 -05:00
Kitware Robot a7d8345d8c CMake Nightly Date Stamp 2014-12-10 00:01:08 -05:00
Brad King 3b9477231d Merge topic 'find_library-updated-directory-content'
ce331bab find_library: Fix repeat call after changing directory content (#15293)
2014-12-09 10:54:54 -05:00
Kitware Robot 2372cdaa3a CMake Nightly Date Stamp 2014-12-09 00:01:08 -05:00
Brad King ce331bab92 find_library: Fix repeat call after changing directory content (#15293)
We use cmGlobalGenerator::GetDirectoryContent to avoid repeating
directory listings.  However, GetDirectoryContent loads content from
disk at most once.  This breaks find_library calls that occur when disk
content has changed since preceding find_library calls.

Teach cmGlobalGenerator::GetDirectoryContent to save the directory
modification time when content is loaded and re-load content if it
changes.

Create a RunCMake.find_library test with a case covering this.
2014-12-08 15:35:50 -05:00
Brad King 1f6f114a7a CMake 3.1.0-rc3 2014-12-08 09:09:24 -05:00
Brad King e72987dc11 Merge topic 'custom-command-multiple-outputs'
6c67b816 Makefile: Workaround Borland Make bug with multiple outputs
65ea5eb7 Tests: Cover rebuild with multiple custom command outputs (#15116)
644b4688 Makefile: Fix rebuild with multiple custom command outputs (#15116)
8a4c6d2d Xcode: Fix rebuild with multiple custom command outputs (#15116)
2014-12-08 09:07:18 -05:00
Brad King 47c41d902c Merge topic 'file-LOCK-timeout-type'
97841dad file: Use 'long' to represent the parsed LOCK TIMEOUT value
2014-12-08 09:07:14 -05:00
Brad King 79d1e1347a Merge topic 'ctest-binary-pipe'
29b0c8c3 ctest --launch: write to cout and cerr in binary
2014-12-08 09:07:12 -05:00
Brad King b61994d0a7 Merge topic 'vs-inherit-wd'
f545eb0b VS: Inherit target-level "-wd" flags in source files (#15284)
2014-12-08 09:07:08 -05:00
Brad King 90070a65d2 Merge topic 'try_compile-link-flags'
88eb5824 try_compile: Pass linker flags into test project (#14066)
a4f9b6f0 CMakeDetermineCompilerABI: Use normal linker flags in ABI project
2014-12-08 09:07:04 -05:00
Kitware Robot cfe666f1a2 CMake Nightly Date Stamp 2014-12-08 00:01:08 -05:00
Kitware Robot 9e6e6801d0 CMake Nightly Date Stamp 2014-12-07 00:01:16 -05:00
Brad King 6c67b8168c Makefile: Workaround Borland Make bug with multiple outputs
Given a rule of the form

  out1 out2: dep1
  out1 out2: dep2

Borland Make complains that there are multiple rules for "out1"
even though this works when there is only one output.  Instead
generate

  out1 out2: dep1 dep2

for Borland Make, but only when there are multiple outputs.
2014-12-06 07:36:52 -05:00
Kitware Robot bec5b3df01 CMake Nightly Date Stamp 2014-12-06 00:01:15 -05:00
Ruslan Baratov 97841dad2b file: Use 'long' to represent the parsed LOCK TIMEOUT value
Convert the StringToInt helper into a StringToLong helper with a 'long'
result type.  This will make the helper more useful to other callers
that want to use strtol.

While at it, also check errno after calling strtol in case the
conversion fails with a range error.
2014-12-05 12:59:37 -05:00
Ben Boeckel 29b0c8c360 ctest --launch: write to cout and cerr in binary
Because ctest reads in binary but writes in text mode, Windows' newline
transformation can be applied multiple times causing '\n' in the source
application to be written out as '\r\r\n' instead.
2014-12-05 12:47:18 -05:00
Brad King 644b4688d7 Makefile: Fix rebuild with multiple custom command outputs (#15116)
Fix the generated makefiles for custom commands with multiple outputs to
list all the outputs on the left hand side of the build rule.  This is
much simpler and more reliable than the old multiple-output-pair
infrastructure.
2014-12-05 09:55:49 -05:00
Brad King 8a4c6d2d2e Xcode: Fix rebuild with multiple custom command outputs (#15116)
The Xcode generator uses Makefiles under a run-script build-phase to
drive custom commands.  Fix the generated makefiles for custom commands
with multiple outputs to list all the outputs on the left hand side of
the build rule.  This is much simpler and more reliable than the old
multiple-output-pair infrastructure.
2014-12-05 09:52:09 -05:00
Kitware Robot c90633df9e CMake Nightly Date Stamp 2014-12-05 00:01:15 -05:00
Brad King f545eb0b0b VS: Inherit target-level "-wd" flags in source files (#15284)
If a source file COMPILE_FLAGS option adds "-wd", the .vcxproj file
will have a DisableSpecificWarnings setting for the source file.
Add to the setting a reference to %(DisableSpecificWarnings) to
inherit any such flags set for the whole target.
2014-12-04 15:40:04 -05:00
Brad King c7bd275393 Merge topic 'cached-regex-clear-fixed'
ceecd790 cmMakefile: store the number of last matches in a CMake var
7878d061 test: add a test for clearing regex results
2014-12-04 10:23:26 -05:00
Brad King e4665171f4 Merge topic 'fix-add_library-check-for-shared'
bd360ee3 add_library: Fix target type check for non-shared-lib platforms
2014-12-04 10:23:24 -05:00
Brad King 09f797c19c Merge topic 'vs-hlsl-typo'
955fbf29 VS: Fix typo in VS_SHADER_MODEL lookup comment
2014-12-04 10:23:21 -05:00
Brad King ba98442610 Merge topic 'vs-phone-store-deployment-location'
352f246f VS: Add source file property to specify Windows App deployment location
2014-12-04 09:10:05 -05:00
Kitware Robot 0f381ad521 CMake Nightly Date Stamp 2014-12-04 00:01:09 -05:00
Brad King 88eb5824da try_compile: Pass linker flags into test project (#14066)
Copy CMAKE_EXE_LINKER_FLAGS into the test project generated by
try_compile, just like we already copy CMAKE_<LANG>_FLAGS.

Add CMake Policy CMP0056 to activate this behavior in a compatible way,
but do not warn by default when the policy is not set since it will
affect all try_compile calls.

Extend the RunCMake.try_compile test with a case covering this behavior
for each policy setting.
2014-12-03 15:30:22 -05:00
Brad King a4f9b6f0ca CMakeDetermineCompilerABI: Use normal linker flags in ABI project
When compiling the ABI detection test project, do not override
CMAKE_EXE_LINKER_FLAGS completely.  The normally selected value of this
variable may influence how the link is done and may be needed to be
representative of how the calling project will be built.  Instead pass a
variable that try_compile will reference as additional flags.  Leave
this behavior of try_compile undocumented for now.
2014-12-03 14:53:14 -05:00
Brad King 955fbf29c7 VS: Fix typo in VS_SHADER_MODEL lookup comment 2014-12-03 14:12:32 -05:00
Ben Boeckel ceecd7902f cmMakefile: store the number of last matches in a CMake var
With PushScope and PopScope, keeping track of another bit of data for
each scope isn't easy. Instead, store it as another CMake variable so it
gets implicitly tracked along with everything else.

This works in a revert of commit
7d674b5f0b.
2014-12-03 11:06:44 -05:00
Brad King d90e288b7b Merge topic 'file-LOCK-command'
93017828 Help: Add notes for topic 'file-LOCK-command'
e6db4c5a file: Add LOCK subcommand to do file and directory locking
05d6531c cmSystemTools: Add StringToInt helper
2014-12-03 10:02:07 -05:00
Brad King cebce135c0 Merge topic 'fix-wince-unicode-entry-point'
681cda02 VS, WINCE: Fix entry point for Unicode builds
2014-12-03 10:02:01 -05:00
Brad King 03b3ee7de2 Merge topic 'xcode-target-search-perf'
48f78f5f Xcode: use a map to look up target pointers (#15201)
2014-12-03 10:01:53 -05:00
Brad King b9eac05fb6 Merge topic 'vs-hlsl-settings'
2a224b4c VS: Add source file properties to set the hlsl shader entry point and model
2014-12-03 10:01:49 -05:00
Brad King 53fa072e6a Merge topic 'add-continue-command'
0de867dd continue: Add a new CMake language command for loop continuation (#14013)
2014-12-03 10:01:44 -05:00
Ruslan Baratov e6db4c5a4e file: Add LOCK subcommand to do file and directory locking
Provide options to fail without blocking or to block up to a timeout.
Provide options to specify the scope containing the lock so it can be
released automatically at the end of a function, file, or process.

Extend the RunCMake.file test with cases covering the file(LOCK) command
usage and error cases.
2014-12-03 09:47:44 -05:00
Ruslan Baratov 05d6531c7a cmSystemTools: Add StringToInt helper
Convert a string to a signed integer and reject any extra input.

Co-Author: Rolf Eike Beer <eike@sf-mail.de>
2014-12-03 09:47:26 -05:00
Brad King 1c104c019a Merge branch 'vs-phone-store-deployment-location' into release 2014-12-03 09:32:42 -05:00
Brad King 7c28e7c172 Merge branch 'vs-hlsl-settings' into release 2014-12-03 09:32:38 -05:00
Gilles Khouzam 352f246f3e VS: Add source file property to specify Windows App deployment location
Add a VS_DEPLOYMENT_LOCATION source file property to specify where to
put files that are part of the package.  For example:

  set_property(SOURCE ${ASSET_FILES} PROPERTY VS_DEPLOYMENT_LOCATION "assets")

Without this, sources marked with VS_DEPLOYMENT_CONTENT cannot be
located properly.
2014-12-03 09:31:59 -05:00
Cedric Perthuis 2a224b4ce3 VS: Add source file properties to set the hlsl shader entry point and model
Create properties VS_SHADER_ENTRYPOINT and VS_SHADER_MODEL.  Without
these many .hlsl source files may not be possible to use.  Extend the
VSWinStorePhone test project to cover them.
2014-12-03 09:30:59 -05:00
Brad King 17e1ead25e Merge branch 'fix-wince-unicode-entry-point' into release 2014-12-03 09:08:40 -05:00
Pascal Bach 681cda02bf VS, WINCE: Fix entry point for Unicode builds
When _UNICODE is defined VS uses wmain instead of main as the entry function.
To make this correctly work on WindowsCE EntryPointSymbol needs to be set to
mainWCRTStartup instead of mainACRTStartup for console applications and to
wWinMainCRTStartup instead of WinMainCRTStartup for GUI applications.

Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
2014-12-03 09:07:11 -05:00
Brad King bd360ee329 add_library: Fix target type check for non-shared-lib platforms
When checking target types for TARGET_SUPPORTS_SHARED_LIBS == false,
enumerate exactly the library types not supported rather than trying to
maintain a list of all the types that are supported.  Otherwise

 add_library(SomeImportedLib UNKNOWN IMPORTED)

warns on platforms that do not support shared libraries.

Reported-by: Kelly Thompson <kgt@lanl.gov>
2014-12-03 08:51:11 -05:00
Kitware Robot 0e466f89fd CMake Nightly Date Stamp 2014-12-03 00:01:08 -05:00
Ben Boeckel 48f78f5f9e Xcode: use a map to look up target pointers (#15201)
Use an efficient internal lookup to associate cmTarget and cmXCodeObject
instances.
2014-12-02 10:51:15 -05:00
Brad King 983e434b00 Merge topic 'link-no-empty-response-files'
1c5be1f3 Makefile: Do not create an empty linker response file
2014-12-02 10:21:16 -05:00
Kitware Robot 0d757166fe CMake Nightly Date Stamp 2014-12-02 00:01:09 -05:00
Brad King 95b89e3fd3 Merge branch 'link-no-empty-response-files' into release 2014-12-01 13:59:41 -05:00
Brad King 1c5be1f367 Makefile: Do not create an empty linker response file
Since commit v3.1.0-rc1~821^2 (Windows: Use response files to specify
link libraries for GNU tools, 2014-03-04) we use a response file to pass
possibly long linker flag lists to the GNU linker on Windows.  On MinGW,
this may cause gfortran to use a response file to pass some flags to its
own internal invocation.  This is okay except when we are parsing
implicit link flags from the compiler ABI detection build.  If gfortran
uses a response file in that case then we may miss extracting some of
the implicit link flags, such as -lgfortran.  Fortunately, in the
compiler ABI detection case we do not actually link to anything so the
response file is empty.  Work around this problem by simply not using a
response file when the list of flags it is used to pass is empty (or
just whitespace).

Reported-by: Bill Somerville <bill@classdesign.com>
2014-12-01 13:49:26 -05:00
Gregor Jasny 0de867dde2 continue: Add a new CMake language command for loop continuation (#14013)
Inspired-by: Doug Barbieri
Signed-off-by: Gregor Jasny <gjasny@googlemail.com>
2014-12-01 09:50:49 -05:00
Brad King 8e75f1d2fa Merge topic 'target-sources-error-conditions'
8a75c7ef Help: Document the export limitation of INTERFACE_SOURCES.
e1348056 Export: Disallow export of targets with INTERFACE_SOURCES
bb5905bb cmTarget: Don't allow relative paths in INTERFACE_SOURCES
2014-12-01 08:57:34 -05:00
Brad King 22b72b1894 Merge topic 'fix-transitive-OBJECT_SOURCES-context'
672f1001 Genex: Fix evaluation context propagation for TARGET_OBJECTS.
2014-12-01 08:57:28 -05:00
Brad King 9f59caa9bd Merge topic 'fix-source-case-matching'
84d124e8 Fix lookup of source names after conversion to their actual case (#15259)
2014-12-01 08:57:25 -05:00
Brad King d724640fa2 Merge topic 'revert-cached-regex-clear-for-master'
808c77e2 Merge branch 'revert-cached-regex-clear' into revert-cached-regex-clear-for-master
7d674b5f Revert "ClearMatches: Only clear matches which were actually set" (#15261)
2014-12-01 08:57:23 -05:00
Brad King 58d3898083 Merge branch 'target-sources-error-conditions' into release 2014-12-01 08:55:45 -05:00
Brad King baa283f922 Merge branch 'fix-transitive-OBJECT_SOURCES-context' into release 2014-12-01 08:51:59 -05:00
Kitware Robot b9d437a292 CMake Nightly Date Stamp 2014-12-01 00:01:08 -05:00
Kitware Robot 9e4e0a2307 CMake Nightly Date Stamp 2014-11-30 00:01:08 -05:00
Stephen Kelly e134805666 Export: Disallow export of targets with INTERFACE_SOURCES
This can be allowed in the next release, but it needs to have some
features present and tested such as

* Ensuring that relative paths do not appear in the generated property.
* Ensuring that paths to the source or build directories do not appear.
* Generating a check in the file for CMake 3.1 or later so that the
    resulting property will be consumed.
* Ensuring that any referenced targets are part of an export set and
    generating a check for them.
* INSTALL_INTERFACE and BUILD_INTERFACE content.

All of these checks are already done for INTERFACE_INCLUDE_DIRECTORIES,
but it is too late to add them for INTERFACE_SOURCES for CMake 3.1.
As the checks introduce some new error conditions, it is better to
disallow exporting fully for this case and introduce proper error
conditions later instead of policies.
2014-11-29 12:24:59 +01:00
Stephen Kelly bb5905bb13 cmTarget: Don't allow relative paths in INTERFACE_SOURCES
Follow the pattern of checks that are made for INTERFACE_INCLUDE_DIRECTORIES.
Existence is already checked by cmSourceFile::GetFullPath.  Add a check
to disallow relative paths in source directories. Otherwise code such as

 target_sources(lib1 INTERFACE foo.cpp)

would fail if consumed by a target in a different directory.

Unlike the INTERFACE_INCLUDE_DIRECTORIES behavior, we don't care whether
the entry comes from an IMPORTED target or not.  In the include directories
case, the directory for a non-imported target might not exist yet but
might be created.  In the sources case, a file which does not yet
exist in the filesystem must be explicitly marked with the GENERATED
property.

Adjust existing tests and add a new test for the error.
2014-11-29 12:24:59 +01:00
Kitware Robot 584d625a04 CMake Nightly Date Stamp 2014-11-29 00:01:08 -05:00
Kitware Robot 0963fb64c6 CMake Nightly Date Stamp 2014-11-28 00:01:08 -05:00
Kitware Robot 3fae1f9265 CMake Nightly Date Stamp 2014-11-27 00:01:14 -05:00
Brad King d7e4bd34e0 Merge branch 'fix-source-case-matching' into release 2014-11-26 17:17:41 -05:00
Brad King 84d124e8f0 Fix lookup of source names after conversion to their actual case (#15259)
Since commit v3.1.0-rc1~688^2~15 (cmTarget: Add a method to obtain list of
filenames for sources, 2014-03-17) we have code paths that lookup sources by
strings containing their own full path after normalization to the actual case
on disk.  This fails in the case that a cmSourceFile has already been created
with a different case in the filename.  The comparison of the directory works
because it is always normalized.  Only the comparison of the file name fails.

Fix this by using a case-insensitive comparison of source file names on
platforms that do not have case-sensitive filesystems.
2014-11-26 17:03:40 -05:00
Stephen Kelly 672f1001c0 Genex: Fix evaluation context propagation for TARGET_OBJECTS.
Extract a new method to encapsulate the requirements of evaluating
dependent-expressions, namely, propagation of the
EvaluateForBuildsystem setting, which is missing from the
getLinkedTargetsContent implementation.

Commit v3.1.0-rc1~688^2 (Genex: Only evaluate TARGET_OBJECTS to determine
target sources., 2014-03-20) introduced an error case for use of
TARGET_OBJECTS outside of the context of generating the buildsystem,
as the path to object files may be dependent on buildsystem
variables (See bug #15226).

Commit v3.1.0-rc1~314^2 (Allow INTERFACE_SOURCES to specify
$<TARGET_OBJECTS> (#14970), 2014-07-09) made it possible to
propagate such content to dependent targets.

While that commit propagated the EvaluateForBuildsystem setting
for the case of a TARGET_PROPERTY expression, as generated for
direct dependencies of a target in
cmTargetInternals::AddInterfaceEntries, it did not add propagation
for content from further transitive target dependencies, as determined
by getLinkedTargetsContent.
2014-11-26 22:16:15 +01:00
Brad King 808c77e231 Merge branch 'revert-cached-regex-clear' into revert-cached-regex-clear-for-master
Resolve conflict in Source/cmMakefile.h by integrating both changes.
2014-11-26 13:53:06 -05:00
Brad King 82582c96bd Merge topic 'break-command-strictness'
d54617d0 break: Add policy CMP0055 to check calls strictly
bae604d9 Track nested loop levels in CMake language with a stack of counters
2014-11-26 13:50:47 -05:00
Ben Boeckel 7d674b5f0b Revert "ClearMatches: Only clear matches which were actually set" (#15261)
This reverts commit v3.1.0-rc1~557^2~2 (ClearMatches: Only clear matches
which were actually set, 2014-03-12).  The optimization did not track
the match count in the same scope as the variables, allowing possible
inconsistency.

Resolve conflicts in Source/cmIfCommand.cxx, Source/cmMakefile.cxx,
and Source/cmMakefile.h by moving the changes to the new location
of the code involved.
2014-11-26 13:45:06 -05:00
Brad King 57a77fbe69 Merge topic 'ccmake-system-form'
6b045c3b ccmake: Add CMAKE_USE_SYSTEM_FORM option to use libform instead of cmForm
2014-11-26 10:37:51 -05:00
Kitware Robot 94c7ff9fef CMake Nightly Date Stamp 2014-11-26 00:01:14 -05:00
Gregor Jasny d54617d006 break: Add policy CMP0055 to check calls strictly
Reject break() without loop scope or any arguments.

Signed-off-by: Gregor Jasny <gjasny@googlemail.com>
2014-11-25 14:14:20 -05:00
Gregor Jasny bae604d9a8 Track nested loop levels in CMake language with a stack of counters
It gets incremented while entering a loop block (e.g. foreach or while)
and gets decremented when leaving the block. Because scope borders for
example at function borders must be taken into account the counter is
put into a stack. With every new scope an empty counter is pushed on the
stack, when leaving the scope the original value is restored.

This will allow easy querying if the break command is properly nested
within a loop scope.

Signed-off-by: Gregor Jasny <gjasny@googlemail.com>
2014-11-25 14:14:15 -05:00
Ådne Hovda 6b045c3ba8 ccmake: Add CMAKE_USE_SYSTEM_FORM option to use libform instead of cmForm 2014-11-25 11:29:58 -05:00
Brad King c7b9fad117 Merge topic 'remove-ancient-msvc-workarounds'
12cb0b86 Help: Update developer manual with some C++ features now permitted.
ba74465f cmGeneratorTarget: Remove MSVC7 workaround
41363c0c VisualStudio: Remove MSVC6 compatibility macro.
4efcfe52 cmSystemTools: Remove MSVC6 compatibility define.
5f4695cd cmStandardIncludes: Remove MSVC6 condition for cmArrayBegin macro.
7a064337 cmFindCommon: Remove MSVC6 workaround for nested struct private access.
fdb73547 cmTarget: Remove std::min and std::max MSVC6 compatibility code.
2014-11-25 10:28:57 -05:00
Brad King 4987b37165 Merge topic 'remove-c_str'
5eb4d759 Remove some unneeded c_str calls.
2014-11-25 10:18:49 -05:00
Brad King 2fefe9e575 Merge topic 'fortran-linker-flags'
17b0fe03 Fix incremental linking setting for Fortran + VS
2014-11-25 10:18:45 -05:00
Brad King ce64e3607f Merge topic 'cmTarget-null_ptr-everywhere'
32a191ce cmTarget: Use null_ptr code path on all platforms
2014-11-25 10:18:35 -05:00
Brad King 6a2c7e1e0d Merge topic 'file-GENERATE-rerun'
26e98c34 file(GENERATE): Re-run cmake when appropriate.
2014-11-25 10:18:29 -05:00
Brad King c8da86a094 Merge topic 'clean-autogen'
3bd59b60 QtAutogen: Use cmHasLiteral{Prefix,Suffix} where possible.
bf00f528 QtAutogen: Don't take a reference to temporary.
2014-11-25 10:18:23 -05:00
Brad King a5531950cc Merge topic 'ccmake-hpux'
7a687292 ccmake: Cleanup and simplify conditional blocks for HP-UX
44f02b42 ccmake: Use standard getmaxyx instead of non-standard getmax[xy]
ee3d06a4 ccmake: Remove incomplete support for cur_colr on old HP-UX
2014-11-25 10:18:21 -05:00
Brad King 0f19208076 Merge topic 'custom-command-byproducts'
557aef0b ExternalProject: Add options to specify BYPRODUCTS (#14963)
e15a7075 Add an option for explicit BYPRODUCTS of custom commands (#14963)
2014-11-25 10:18:16 -05:00
Kitware Robot c5ac0fce5c CMake Nightly Date Stamp 2014-11-25 00:01:13 -05:00
Kitware Robot 7e8fe68e9c CMake Nightly Date Stamp 2014-11-24 00:01:08 -05:00
Stephen Kelly 5eb4d7590e Remove some unneeded c_str calls. 2014-11-23 11:09:54 +01:00
Kitware Robot 2a0c654858 CMake Nightly Date Stamp 2014-11-23 00:01:08 -05:00
Kitware Robot 2ed0088b2a CMake Nightly Date Stamp 2014-11-22 00:01:07 -05:00
Zack Galbreath 17b0fe0305 Fix incremental linking setting for Fortran + VS
This commit fixes a bug where it was impossible to specify
/INCREMENTAL to Fortran projects built with Visual Studio.

The problem was due to the fact that .vfproj files expect
the value of this flag to be "linkIncremental{No,Yes},
whereas .vcproj files expect this value to be 0, 1, or 2.

The implementation of this fix adds a new data structure for
Visual Studio linker flags specific to Fortran.  This can
easily be extended in the future if more such discrepencies
between C/C++ and Fortran linking are discovered.
2014-11-21 13:32:45 -05:00
Kitware Robot a075777ca1 CMake Nightly Date Stamp 2014-11-21 00:01:11 -05:00
Stephen Kelly ba74465fbc cmGeneratorTarget: Remove MSVC7 workaround
Use partial specialization everywhere.
2014-11-20 23:07:22 +01:00
Stephen Kelly 41363c0c61 VisualStudio: Remove MSVC6 compatibility macro. 2014-11-20 22:25:44 +01:00
Stephen Kelly 4efcfe52f4 cmSystemTools: Remove MSVC6 compatibility define. 2014-11-20 22:24:27 +01:00
Stephen Kelly 5f4695cd06 cmStandardIncludes: Remove MSVC6 condition for cmArrayBegin macro. 2014-11-20 22:22:45 +01:00
Stephen Kelly 7a0643379b cmFindCommon: Remove MSVC6 workaround for nested struct private access. 2014-11-20 22:22:00 +01:00
Stephen Kelly fdb7354722 cmTarget: Remove std::min and std::max MSVC6 compatibility code.
CMake is no longer required to build with MSVC6.
2014-11-20 22:17:16 +01:00
Brad King 32a191ce4b cmTarget: Use null_ptr code path on all platforms
This reduces conversions asked of the compiler.  Also drop 'static' from
the declaration of the local null_ptr helper.
2014-11-20 10:22:07 -05:00
Kitware Robot b6f6b0a983 CMake Nightly Date Stamp 2014-11-20 00:01:08 -05:00
Kitware Robot f7b6f3d967 CMake Nightly Date Stamp 2014-11-19 00:01:08 -05:00