Commit Graph

17245 Commits

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