Commit Graph

16462 Commits

Author SHA1 Message Date
Brad King 2944bf164e Merge topic 'android-platform'
42f74df6 Add basic Android platform module
2014-06-10 09:17:39 -04:00
Brad King f1b91a8af6 Merge topic 'vs10-refactor'
1edaef39 VS: Factor MS-tool-specific vcxproj settings into helper
808f4b1f VS: Re-order logic to group MS-tool-specific options together
13e6d559 VS: Set some options directly instead of using flag map
8f4bdcc6 VS: Remove always-true condition on compile options block
eaa9f2f8 VS: Refactor internal generator factory logic
2b3e7b6f VS: Fix vcxproj specification of empty output file extension
39af06e7 VS: Fix vcxproj elements specifying binary output locations
ee329d54 VS: Refactor flag table lookup
2014-06-10 09:17:36 -04:00
Brad King 0c73273b1a Merge topic 'dev/static-regex'
1b003c1f cmTarget: Remove an unused variable
7492a7b8 regex: Search on strings where possible
3e7194a2 regex: Use static regexs where possible
2014-06-10 09:17:35 -04:00
Kitware Robot 58f8e6bc5c CMake Nightly Date Stamp 2014-06-10 00:01:20 -04:00
Brad King b1c113d9a7 cmake: Do not open directories as scripts (#14966)
Check if a file path is a directory before opening it.  Extend the
RunCMake.CommandLine test with a case running "cmake -P" on a directory.
2014-06-09 16:21:11 -04:00
Ben Boeckel e17a69bc74 cmDefinitions: Use a hashmap for faster checks
The hash map is much faster at checking that the map won't have what
we're looking for so that we can just go to the parent scope instead.
2014-06-09 14:46:45 -04:00
Ben Boeckel 3b21705d53 cmDefinitions: Avoid a find-then-insert when setting variables
Searching the map is not necessary.
2014-06-09 14:46:45 -04:00
Ben Boeckel 5abfde6cb8 cmDefinitions: Don't store parent lookups
When looking up scopes, it is faster to not store the lookup locally to
keep the maps smaller and avoid extra allocations and rebalancing.
2014-06-09 14:46:45 -04:00
Ben Boeckel 1b003c1f95 cmTarget: Remove an unused variable 2014-06-09 14:45:35 -04:00
Ben Boeckel 7492a7b846 regex: Search on strings where possible 2014-06-09 14:45:35 -04:00
Ben Boeckel 3e7194a215 regex: Use static regexs where possible
Rather than declaring and compiling a constant regex every time a chunk
of code is executed, build the regex once.
2014-06-09 14:45:35 -04:00
Brad King 1edaef39f1 VS: Factor MS-tool-specific vcxproj settings into helper
Factor a WriteMSToolConfigurationValues helper method out of the
cmVisualStudio10TargetGenerator::WriteProjectConfigurationValues method
to isolate the configuration settings specific to MS tools.
2014-06-09 11:00:03 -04:00
Brad King 808f4b1fa4 VS: Re-order logic to group MS-tool-specific options together 2014-06-09 11:00:01 -04:00
Brad King 13e6d5595f VS: Set some options directly instead of using flag map
Instead of passing /TC, /TP, and /STACK: as strings to be parsed through
the flag map, directly set the results in the options map.
2014-06-09 10:59:59 -04:00
Brad King 8f4bdcc6cb VS: Remove always-true condition on compile options block
The cmVisualStudio10TargetGenerator::ComputeClOptions method is
only called when the target type compiles, so do not duplicate
that check in the implementation.
2014-06-09 10:59:57 -04:00
Brad King eaa9f2f8ee VS: Refactor internal generator factory logic
Consume the space before the platform name as soon as possible
instead of including it in the comparison.
2014-06-09 10:59:55 -04:00
Brad King 2b3e7b6f94 VS: Fix vcxproj specification of empty output file extension
When a binary output file is to have no extension, the TargetExt
element in the vcxproj cannot be left empty because VS will choose
a default extension.  Instead use "." because the Windows filesystem
will treat that as an empty extension.
2014-06-09 10:59:53 -04:00
Brad King 39af06e7f7 VS: Fix vcxproj elements specifying binary output locations
Fix generation of OutDir, IntDir, TargetName, and TargetExt element
values to encode the values for XML.
2014-06-09 10:59:51 -04:00
Brad King ee329d543c VS: Refactor flag table lookup
In cmVisualStudio10TargetGenerator, convert the static functions
currently used to lookup the flag table for each tool into class
methods.  This avoids passing the this->LocalGenerator member and
gives the methods access to other information that may be useful
in the future.
2014-06-09 10:59:48 -04:00
Brad King 55d6aa36a5 CMake 3.0.0 2014-06-09 10:51:47 -04:00
Brad King a0861931ea Merge topic 'dev/backtrace-performance'
86be733f cmGeneratorExpression: Add workaround for Borland compiler
3495ab0a tests: update unused variable test expected output
2a1b2d84 backtrace: Convert to local paths in IssueMessage
a0829205 genex: remove the need for backtraces
efc20569 cmake: remove dummy backtraces for IssueMessage
d46c650d cmMakefile: return a backtrace
2014-06-09 10:28:44 -04:00
Brad King 9af1f985fd Merge topic 'fix-ctest-label-regex'
887532f0 CTest: Fix combined inclusive/exclusive label regular expressions
2014-06-09 10:28:33 -04:00
Kitware Robot 2649d79470 CMake Nightly Date Stamp 2014-06-09 00:01:06 -04:00
Kitware Robot c4fe537562 CMake Nightly Date Stamp 2014-06-08 00:01:07 -04:00
Kitware Robot fc7d878616 CMake Nightly Date Stamp 2014-06-07 00:01:14 -04:00
Brad King 42f74df6d4 Add basic Android platform module
Create a Platform/Android module that includes Platform/Linux since
Android is based on Linux.  Provide only the minimal settings needed to
get builds with Android NDK toolchains to work.

Disable use of RPATH since the Android loader ignores it and we cannot
predict the install destination anyway.

Android supports soname but shared library names must end in ".so" and
we cannot represent the versioned names with associated symlinks on all
host operating systems anyway.  However, we do want the SONAME of
library files to be set so that linking to them by path to the library
file produces NEEDED entries with the soname and not the path.  Add a
new CMAKE_PLATFORM_NO_VERSIONED_SONAME setting to tell the
cmTarget::GetLibraryNames method that not to use the VERSION or
SOVERSION target properties in the soname.
2014-06-06 14:03:42 -04:00
Brad King 86be733fa5 cmGeneratorExpression: Add workaround for Borland compiler 2014-06-06 09:51:33 -04:00
Brad King c6e7c18bcc Merge topic 'xcode-15-string-apis'
23dc6aa1 Xcode: Fix single-configuration generation for version 1.5
2014-06-06 09:44:55 -04:00
Brad King 09c5fdfaa3 Merge topic 'compile-OBJECT_FILE_DIR'
8256ccb7 Add OBJECT_FILE_DIR rule placeholder for compilation lines
2014-06-06 09:44:53 -04:00
Nils Gladitz 887532f0f0 CTest: Fix combined inclusive/exclusive label regular expressions 2014-06-06 10:28:18 +02:00
Kitware Robot 47cde18849 CMake Nightly Date Stamp 2014-06-06 00:01:08 -04:00
Ben Boeckel 2a1b2d8486 backtrace: Convert to local paths in IssueMessage
This is the only place we care show the FilePath to the user, so defer
the expensive relative path calculation until here.
2014-06-05 12:44:19 -04:00
Ben Boeckel a08292059e genex: remove the need for backtraces
Rather than making dummy backtraces and passing them around, just make
backtraces optional.
2014-06-05 12:44:18 -04:00
Ben Boeckel efc205695d cmake: remove dummy backtraces for IssueMessage 2014-06-05 12:44:17 -04:00
Ben Boeckel d46c650d67 cmMakefile: return a backtrace
This allows backtraces to be fully controlled by the makefile rather
than externally (and makes changing how they are manipulated easier).
2014-06-05 12:44:04 -04:00
Brad King 88818b6805 Merge topic 'delay-generator-toolset'
528e8af1 Allow a toolchain file to specify a generator toolset
98afb454 VS: Split user- and generator-provided PlatformToolset
3e9f6e36 Xcode: Rename internal variable {Platform => Generator}Toolset
2014-06-05 11:31:00 -04:00
Brad King eca798149b Merge branch 'fix-ctest-option-summary' into release 2014-06-05 10:57:02 -04:00
Brad King 2db73edc5c Merge topic 'fix-ctest-option-summary'
6446eb09 CTest: Added option description for --output-on-failure
2014-06-05 10:55:31 -04:00
Brad King 994f4b71fc Merge topic 'expand_cobertura_coverage'
50daf239 CTest: Generalize Cobertura coverage format handling
a2822d30 CTest: Rename coverage implementation for "Python" to "Cobertura"
2014-06-05 10:55:29 -04:00
Brad King 5d360f23fa Merge topic 'setlocale'
730e3862 Encoding: Add setlocale() to applications.
2014-06-05 10:55:27 -04:00
Nils Gladitz 6446eb099a CTest: Added option description for --output-on-failure
Without it the option list is cut short after --debug.
2014-06-05 10:51:39 -04:00
Brad King 23dc6aa194 Xcode: Fix single-configuration generation for version 1.5
In commit 84fdc992 (stringapi: Pass configuration names as strings,
2014-02-09) a few code paths for the Xcode 1.5 single-configuration
generator were not updated to use an empty configuration name instead of
a NULL pointer when no configuration is specified in CMAKE_BUILD_TYPE.
Fix them now.
2014-06-05 09:43:13 -04:00
Brad King 8256ccb78c Add OBJECT_FILE_DIR rule placeholder for compilation lines
Some compilers do not offer an option to specify the path to the object
file, but rather only to the directory in which to place the object
file.  See issue 14876 for some examples.  Add a new OBJECT_FILE_DIR
placeholder to specify the directory containing the object file for the
current compilation.  This may differ from the main target OBJECT_DIR
when the object corresponds to a source in a subdirectory.
2014-06-05 08:58:29 -04:00
Kitware Robot 8ab2d7d462 CMake Nightly Date Stamp 2014-06-05 00:01:10 -04:00
Brad King 528e8af19f Allow a toolchain file to specify a generator toolset
Delay use of CMAKE_GENERATOR_TOOLSET until the CMakeSystem.cmake
file has been configured and loaded during the first project() or
enable_language() command.  This gives the toolchain file named by
CMAKE_TOOLCHAIN_FILE a chance to set CMAKE_GENERATOR_TOOLSET.  This
point is still early enough to set the generator toolset prior to
the initialization of any languages that might use the toolset.

The cmake::GeneratorToolset member variable remains an indication
of what was specified by the -T option or loaded from the cache.
It does not need to be updated based on the toolchain file setting.
The cmMakefile::TryCompile can still pass cmake::GeneratorToolset
into the inner instance because the try-compiled project will do
platform and language initialization using the CMakeSystem module
configured for the outer project.

Extend the RunCMake.GeneratorToolset test with cases that use a
toolchain file to set CMAKE_GENERATOR_TOOLSET.
2014-06-04 14:27:02 -04:00
Brad King 98afb4549f VS: Split user- and generator-provided PlatformToolset
Divide the cmGlobalVisualStudio10Generator "PlatformToolset" member into
two members representing the generator-selected default toolset and the
user-specified CMAKE_GENERATOR_TOOLSET value.  Prefer the user-specified
value, if any, and then fall back to the generator-selected default.
2014-06-04 13:16:37 -04:00
Brad King 3e9f6e36f3 Xcode: Rename internal variable {Platform => Generator}Toolset
The latter matches with CMAKE_GENERATOR_TOOLSET better.
2014-06-04 13:16:37 -04:00
Joseph Snyder 50daf239b0 CTest: Generalize Cobertura coverage format handling
Add support for Cobertura coverage files written by Java.

Add a test which uses the report from a Java run of Cobertura to calculate coverage.

In the documentation of CTEST_COVERAGE_COMMAND, give a sample .sh file to merge
the Cobertura .ser files and generate the XML report from the merged file.
2014-06-04 14:26:19 +00:00
Joseph Snyder a2822d3089 CTest: Rename coverage implementation for "Python" to "Cobertura"
The coverage.py tool writes out an XML that conforms to the Cobertura
Coverage tool standard.  Rename the cmParsePythonCoverage files to
instead be cmParseCoberturaCoverage.
2014-06-04 14:21:52 +00:00
Brad King 99d6fa0aa1 Merge topic 'fix-build-crash-on-bad-generator'
44e2923f cmake: Fix --build crash on bad CMAKE_GENERATOR in cache
2014-06-04 09:18:46 -04:00
Kitware Robot a1e742c3b0 CMake Nightly Date Stamp 2014-06-04 00:01:08 -04:00
Clinton Stimpson 730e386291 Encoding: Add setlocale() to applications.
See also bug #14934 where chinese characters could not be used with cpack.
2014-06-03 18:22:25 -06:00
Brad King 695ce68419 Merge branch 'fix-build-crash-on-bad-generator' into release 2014-06-03 11:53:18 -04:00
Brad King 44e2923f33 cmake: Fix --build crash on bad CMAKE_GENERATOR in cache
If we fail to create the generator named by CMAKE_GENERATOR, exit
with an error message instead of crashing.  While at it, fix the
wording of the error message when CMAKE_GENERATOR is not set.

Extend the RunCMake.CommandLine test with cases covering the
"cmake --build" option when the named directory does not provide
a CMakeCache.txt with a valid CMAKE_GENERATOR.
2014-06-03 11:52:19 -04:00
Brad King 687e0d6319 Merge branch 'cmake-credits' into release 2014-06-03 09:36:16 -04:00
Brad King aacbe0c3f6 Merge topic 'cmake-credits'
889f2fd8 Simplify and clarify credit text and link
2014-06-03 09:35:02 -04:00
Brad King 889f2fd84c Simplify and clarify credit text and link
Use the name "Kitware" rather than "Kitware, Inc." to simplify the text.
Provide a CMake-specific URL.
2014-06-03 09:34:38 -04:00
Brad King 9490e90af4 Merge topic 'cmake-credits'
8da0a75b Simplify and clarify credit text and link
2014-06-03 09:30:45 -04:00
Brad King 922f47979a Merge branch 'cmake-credits' into release 2014-06-03 09:30:39 -04:00
Brad King 8da0a75ba2 Simplify and clarify credit text and link
Use the name "Kitware" rather than "Kitware, Inc." to simplify the text.
Provide a CMake-specific URL.
2014-06-03 09:24:26 -04:00
Kitware Robot f60da64a4d CMake Nightly Date Stamp 2014-06-03 00:01:08 -04:00
Brad King 7b888a5624 Merge topic 'feature-extensions-by-default'
60a981ea Features: Enable compiler extensions by default.
2014-06-02 10:44:28 -04:00
Kitware Robot d3c72b6c6a CMake Nightly Date Stamp 2014-06-02 00:01:07 -04:00
Kitware Robot 32d7547efd CMake Nightly Date Stamp 2014-06-01 00:01:11 -04:00
Stephen Kelly 60a981ea8e Features: Enable compiler extensions by default.
Compilers enable their extensions by default, and disabling them
implicitly can lead to results which are surprising or non-obvious
to debug.

 http://public.kitware.com/pipermail/cmake-developers/2014-May/010575.html
 http://thread.gmane.org/gmane.comp.programming.tools.cmake.devel/10214
 https://www.mail-archive.com/cmake-developers@cmake.org/msg10116.html
 (Compiler feature extensions by default, 29 May 2014)
2014-05-31 12:16:12 +02:00
Kitware Robot f5b8ddbc38 CMake Nightly Date Stamp 2014-05-31 00:01:06 -04:00
Brad King 060c86a506 Merge topic 'consistent-genex-target-message'
fb2fa476 Genex: Clarify error message on use with non-binary targets (#14899).
2014-05-30 14:51:41 -04:00
Kitware Robot c4a26b70cb CMake Nightly Date Stamp 2014-05-30 00:01:08 -04:00
Brad King 8afbb346c6 Merge topic 'normalize-custom-command-paths'
c4af46b4 add_custom_command: Normalize OUTPUT and DEPENDS paths.
2014-05-29 09:58:47 -04:00
Brad King 177d0ef15e Merge topic 'vs-vcproj-bool-case'
b684ce58 VS: Use lower-case boolean values in VS 7-9 (#14927)
2014-05-29 09:58:43 -04:00
Brad King 1468e986e1 Merge topic 'cxx14-features'
dd043c3f Features: Add support for C++14 features.
2014-05-29 09:58:37 -04:00
Stephen Kelly fb2fa47656 Genex: Clarify error message on use with non-binary targets (#14899). 2014-05-29 11:29:31 +02:00
Kitware Robot 9e11fcdc76 CMake Nightly Date Stamp 2014-05-29 00:01:12 -04:00
Mark Salisbury b684ce58dd VS: Use lower-case boolean values in VS 7-9 (#14927)
The VS 7-9 IDEs parse .vcproj file boolean values in lower or upper
case.  The .NET XML parsing chokes on anything but "true", "false", "0",
"1".  Teach our generators to use lower-case names since they will work
for both parsers.  Our VS >= 10 flag tables already use lower-case.
2014-05-28 16:32:56 -04:00
Stephen Kelly c4af46b444 add_custom_command: Normalize OUTPUT and DEPENDS paths.
While tracing dependencies of a target, cmTargetTraceDependencies
follows sources by full path to determine if the source is to be
produced by a custom command.  Commit 4959f341 (cmSourceFileLocation:
Collapse full path for directory comparisons., 2014-03-27) changed
the storage of target sources to be in the form of a normalized
path instead of an unnormalized path.

The path is followed by looking it up in a mapping via
cmMakefile::GetSourceFileWithOutput to acquire an appropriate
cmSourceFile.  The mapping is populated with the OUTPUT components
of add_custom_command invocations, however it is populated with
unnormalized paths.  This means that the tracing logic does not
find appropriate cmSourceFiles, and does not generate appropriate
build rules for the generated sources.

Normalize the paths in the OUTPUT components of add_custom_command
to resolve this.

The paths in the DEPENDS component of add_custom_command are also
not normalized, leading to the same problem again.  Normalize the
depends paths after generator evaluation and expansion.
2014-05-28 21:05:41 +02:00
Brad King 574f096b9a Merge topic 'fix-coverage-py'
deee7c42 CTest: Fix Python coverage.py off-by-one error in results
88b3dcb1 CTest: Improve Python coverage.py source file search algorithm
2014-05-28 12:34:38 -04:00
Brad King 8df4d03d99 Merge topic 'cpack-properties'
d0b1d2a6 CPackWiX: Implement CPACK_NEVER_OVERWRITE and CPACK_PERMANENT properties
15a8af21 Add an "installed file" property scope
2014-05-28 12:34:36 -04:00
Brad King af34639724 Merge topic 'fix-cache-self-assignment'
1cd37527 cmCacheManager: Avoid cache entry self-assignment
326d15a3 cmake: Tolerate missing HELPSTRING on compiler change
2014-05-28 12:34:30 -04:00
Nils Gladitz d0b1d2a65b CPackWiX: Implement CPACK_NEVER_OVERWRITE and CPACK_PERMANENT properties 2014-05-28 12:30:44 -04:00
Nils Gladitz 15a8af21e8 Add an "installed file" property scope
Teach set_property and get_property an "INSTALL" property type to be
associated with install-tree file paths.  Make the properties available
to CPack for use during packaging.  Add a "prop_inst" Sphinx domain
object type for documentation of such properties.
2014-05-28 12:28:18 -04:00
Zach Mullen deee7c42a2 CTest: Fix Python coverage.py off-by-one error in results
The cobertura format uses line numbers indexed starting at 1, and CTest
uses a vector indexed starting at 0 to store them.
2014-05-28 12:25:50 -04:00
Roni Choudhury 88b3dcb125 CTest: Improve Python coverage.py source file search algorithm
If the coverage.py source file is not found in the source directory, the
build directory is first searched before raising an error.

This is necessary because it is a valid workflow to build a Python
package from source, then install this package to a virtualenv that
lives in the build directory.  Tests will run against this deployed
package and therefore the covered source files will be found in a
subdirectory of the build directory, and not anywhere in the source
directory.
2014-05-28 12:25:28 -04:00
Kitware Robot 960f140d19 CMake Nightly Date Stamp 2014-05-28 00:01:08 -04:00
Brad King 1cd3752729 cmCacheManager: Avoid cache entry self-assignment
Since commit bef93dc5 (Couple of changes: cache variables now have a map
of properties, 2002-09-11) the cmCacheManager::AddCacheDefinition method
accesses its map entry by reference.  However, the commit left the
original entry assignment at the end of the method.  With Apple Clang
5.1 and libc++ this self-assignment destroys the cache entry property
map.

Drop the self assignment.  Also drop the condition around the call to
UnwatchUnusedCli since it was a self-comparison that must always have
been true.
2014-05-27 16:12:05 -04:00
Brad King 326d15a329 cmake: Tolerate missing HELPSTRING on compiler change
Teach cmake::HandleDeleteCacheVariables to tolerate a missing HELPSTRING
(NULL pointer) when saving cache entries.  In the absence of other bugs
this should not be possible, but avoid the crash just in case.
2014-05-27 16:11:04 -04:00
Brad King 4a67e9cd41 Merge topic 'dev/CMP0053-variable_watch'
9ba91463 tests: test CMP0053 in WARN mode when watching variables
2014-05-27 09:46:33 -04:00
Brad King 03a3ee222b Merge topic 'variable_watch-no-allowed-access'
d8498003 variable_watch: Remove undocumented and redundant access type
2014-05-27 09:46:32 -04:00
Kitware Robot e7b7f675f8 CMake Nightly Date Stamp 2014-05-27 00:01:06 -04:00
Kitware Robot e21604f00f CMake Nightly Date Stamp 2014-05-26 00:01:06 -04:00
Kitware Robot 055da262f1 CMake Nightly Date Stamp 2014-05-25 00:01:09 -04:00
Kitware Robot 0aee518ac6 CMake Nightly Date Stamp 2014-05-24 00:01:08 -04:00
Kitware Robot 653bf94840 CMake Nightly Date Stamp 2014-05-23 00:01:11 -04:00
Stephen Kelly dd043c3f21 Features: Add support for C++14 features.
Record the features implemented by GNU 4.9 and Clang 3.4.
2014-05-22 18:01:23 +02:00
Ben Boeckel 9ba91463e6 tests: test CMP0053 in WARN mode when watching variables
When CMP0053 is in WARN mode, variables get expanded twice, leaking the
fact that the string was expanded twice and changing behavior. Instead,
suppress variable watches when running the expansion to trigger the
CMP0053 warning.
2014-05-22 11:13:29 -04:00
Brad King cbc9a9514d CMake 3.0.0-rc6 2014-05-22 10:41:12 -04:00
Brad King 3ea9bde845 Merge topic 'ninja-intel-ipo'
b6e2e0d1 Ninja: Fix Intel interprocedural optimization with static libraries
5d12b87b cmGeneratorTarget: Improve GetCreateRuleVariable API
c2eeb08b cmTarget: Add GetFeatureAsBool method
2014-05-22 10:37:50 -04:00
Brad King 5ce40619db Merge topic 'COMPILE_FEATURES-genex'
0dfe395e Features: Add COMPILE_FEATURES generator expression.
aa8a6fce cmMakefile: Add methods for checking availability of a feature.
b6dedf03 cmMakefile: Extract CheckNeeded{C,Cxx}Language methods.
8dd129df cmMakefile: Extract CompileFeaturesAvailable method.
6b9b2fff cmMakefile: Extract CompileFeatureKnown method.
2014-05-22 10:37:48 -04:00
Ben Boeckel d849800351 variable_watch: Remove undocumented and redundant access type
The ALLOWED_UNKNOWN_VARIABLE_READ_ACCESS access type was switched on an
undocumented variable and its lookup caused an unnecessary performance
impact.  Remove it.
2014-05-22 10:36:49 -04:00
Kitware Robot 246bec5a4b CMake Nightly Date Stamp 2014-05-22 00:01:07 -04:00
Stephen Kelly 0dfe395e3c Features: Add COMPILE_FEATURES generator expression.
Allow setting build properties based on the features available
for a target.  The availability of features is determined at
generate-time by evaluating the link implementation.

Ensure that the <LANG>_STANDARD determined while evaluating
COMPILE_FEATURES in the link implementation is not lower than that
provided by the INTERFACE of the link implementation.  This is
similar to handling of transitive properties such as
POSITION_INDEPENDENT_CODE.
2014-05-21 17:22:32 +02:00
Brad King 42130606d4 Merge topic 'file-command-open-errors'
2c448dbf file: Report system error on failure to open file
2014-05-21 10:31:49 -04:00
Brad King 8dc8878a5e Merge topic 'minor-cleanups'
d1035bd5 cmTarget: Avoid copying container we don't need to copy.
96eb97f8 Help: Fix whitespace in doc link.
0dffbb93 Features: Ensure that list exists to remove from.
2014-05-21 10:31:47 -04:00
Brad King b6e2e0d194 Ninja: Fix Intel interprocedural optimization with static libraries
Teach cmGeneratorTarget::GetCreateRuleVariable about the IPO variant.
Return the static library IPO rule when the feature is enabled.
2014-05-21 09:49:14 -04:00
Brad King 5d12b87b9d cmGeneratorTarget: Improve GetCreateRuleVariable API
Pass the language and configuration to the method so it can return the
complete rule variable name.
2014-05-21 09:38:24 -04:00
Brad King c2eeb08b06 cmTarget: Add GetFeatureAsBool method
Return the GetFeature method result converted to a boolean value.
2014-05-21 09:38:22 -04:00
Kitware Robot f7654a07d5 CMake Nightly Date Stamp 2014-05-21 00:01:15 -04:00
Stephen Kelly aa8a6fcee8 cmMakefile: Add methods for checking availability of a feature. 2014-05-20 19:01:27 +02:00
Brad King 2c448dbfe7 file: Report system error on failure to open file 2014-05-20 11:07:51 -04:00
Stephen Kelly d1035bd5a5 cmTarget: Avoid copying container we don't need to copy. 2014-05-20 16:45:29 +02:00
Stephen Kelly b6dedf034e cmMakefile: Extract CheckNeeded{C,Cxx}Language methods. 2014-05-20 16:11:35 +02:00
Stephen Kelly 8dd129dfbb cmMakefile: Extract CompileFeaturesAvailable method. 2014-05-20 16:11:34 +02:00
Stephen Kelly 6b9b2fff61 cmMakefile: Extract CompileFeatureKnown method. 2014-05-20 16:11:34 +02:00
Brad King 0aa41c7b94 Merge branch 'backport-kwsys-cygwin-fixes' into release 2014-05-20 09:49:57 -04:00
Brad King 0c7f84ca41 KWSys Process: Workaround child kill trouble on Cygwin
When we kill a child we send SIGSTOP first so that we can traverse its
child processes recursively.  On unwinding the recursion we then send
SIGKILL.  Current Cygwin has trouble when both signals are sent in quick
succession by the parent process.  Add a usleep(1) after sending the
first signal to give up our time slice and give Cygwin a chance to
process the first signal before sending the second.
2014-05-20 09:48:35 -04:00
Brad King e604209cb9 KWSys SystemTools: Port cygwin path conversion to modern API
The cygwin_conv_to_win32_path function is deprecated in favor of
cygwin_conv_path.  Use the latter.
2014-05-20 09:48:26 -04:00
Brad King 2d5e3d2d2b Merge topic 'update-kwsys'
2903d609 Merge branch 'upstream-kwsys' into update-kwsys
ed52685d KWSys 2014-05-19 (c282e64f)
2014-05-20 09:40:52 -04:00
Brad King c1edede31f Merge topic 'compile-features-C-language'
e0890d03 Features: Extend concept to C language.
2014-05-20 09:40:14 -04:00
Kitware Robot 8897116df8 CMake Nightly Date Stamp 2014-05-20 00:01:08 -04:00
Brad King 2903d609b1 Merge branch 'upstream-kwsys' into update-kwsys 2014-05-19 10:58:14 -04:00
Brad King 87eab93ad6 Merge topic 'fix-CMP0022-language-propagation'
31b3bbd7 Merge branch 'backport-fix-CMP0022-language-propagation' into fix-CMP0022-language-propagation
40b9cd0f CMP0022: Fix link language propagation in NEW behavior
42bbf130 CMP0022: Fix link language propagation in NEW behavior
2014-05-19 10:38:42 -04:00
Brad King 40b9cd0f61 CMP0022: Fix link language propagation in NEW behavior
The languages used in compiling STATIC libraries need to be propagated
to dependents regardless of the settings of INTERFACE_LINK_LIBRARIES or
CMP0022.  They are independent of the libraries in the link interface.

Prior to commit v2.8.12~192^2~2 (Introduce the INTERFACE_LINK_LIBRARIES
property, 2013-06-04) the cmTarget::ComputeLinkInterface code path for
"explicitLibraries" could never be taken for STATIC libraries, so the
logic to propagate languages existed only in the non-explicitLibraries
code path.  After that commit, INTERFACE_LINK_LIBRARIES could be set for
STATIC libraries to cause the "explicitLibraries" code path to be taken.
The commit also left the old non-explicitLibraries code path conditional
on CMP0022 not being set to NEW.  Thus link language propagation was
left missing from two cases by that commit.

The explicitLibraries code path was fixed to propagate languages by
commit v2.8.12~149^2~1 (cmTarget: Fix iface libraries and languages for
static libraries, 2013-07-26).  However, the non-explicitLibraries case
was never taught to propagate languages when CMP0022 is set to NEW.  Fix
that now.  Factor the logic to propagate link languages out of the link
interface libraries conditions so that it always occurs.  Update
Tests/Fortran to set CMP0022 to NEW to test this case (because the test
passes only if link language propagation works).
2014-05-19 09:11:39 -04:00
Brad King 42bbf1307a CMP0022: Fix link language propagation in NEW behavior
The languages used in compiling STATIC libraries need to be propagated
to dependents regardless of the settings of INTERFACE_LINK_LIBRARIES or
CMP0022.  They are independent of the libraries in the link interface.

Prior to commit v2.8.12~192^2~2 (Introduce the INTERFACE_LINK_LIBRARIES
property, 2013-06-04) the cmTarget::ComputeLinkInterface code path for
"explicitLibraries" could never be taken for STATIC libraries, so the
logic to propagate languages existed only in the non-explicitLibraries
code path.  After that commit, INTERFACE_LINK_LIBRARIES could be set for
STATIC libraries to cause the "explicitLibraries" code path to be taken.
The commit also left the old non-explicitLibraries code path conditional
on CMP0022 not being set to NEW.  Thus link language propagation was
left missing from two cases by that commit.

The explicitLibraries code path was fixed to propagate languages by
commit v2.8.12~149^2~1 (cmTarget: Fix iface libraries and languages for
static libraries, 2013-07-26).  However, the non-explicitLibraries case
was never taught to propagate languages when CMP0022 is set to NEW.  Fix
that now.  Factor the logic to propagate link languages out of the link
interface libraries conditions so that it always occurs.  Update
Tests/Fortran to set CMP0022 to NEW to test this case (because the test
passes only if link language propagation works).
2014-05-19 09:06:20 -04:00
Kitware Robot d5f8abc286 CMake Nightly Date Stamp 2014-05-19 00:01:07 -04:00
Kitware Robot e536c14b7b CMake Nightly Date Stamp 2014-05-18 00:01:08 -04:00
Kitware Robot d5b51d3204 CMake Nightly Date Stamp 2014-05-17 00:01:07 -04:00
Brad King 567ca4c79e Merge topic 'xcode-file-type'
a339ea65 Xcode: Add source file property to control file type (#14854)
ae80cb9f Xcode: Refactor internal source file type selection
2014-05-16 10:21:06 -04:00
Brad King 57151fba6a Merge topic 'cmake-gui-capture-output'
209cd475 Help: Add notes for topic 'cmake-gui-capture-output'
d7c69246 execute_process: Send stderr through cmSystemTools::Stderr
92ddf0c9 cmake-gui: Capture cmSystemTools::Stdout and Stderr
f52b5ae3 cmSystemTools: Add callback for Stderr
a9ae1d7a cmSystemTools: Simplify InterruptCallback definition
73b13f56 cmSystemTools: Rename ErrorCallback to MessageCallback
7577a542 cmCTestBuildAndTestHandler: Refactor output capture
b1b4d761 cmCTestBuildAndTestHandler: Refactor local loop var
2014-05-16 10:21:05 -04:00
Brad King f9871f541d Merge topic 'fix_mumps_coverage'
9ad07fbe CTest: Fix MUMPS coverage parsing and test
2014-05-16 10:21:03 -04:00
Joseph Snyder 9ad07fbeb8 CTest: Fix MUMPS coverage parsing and test
Fix the MUMPS coverage parser:

* Account for tabs after entry points

* Stop double incrementing lines that have explicit calls to the 0 line

* If a line has been previously marked as non executable, but then
  contains a count, increment it an extra one to push it back into
  the executable code set.

Add a custom routine and corresponding coverage files in the test case.
This file is smaller and has cmcov/mcov files that have data for only
that routine.
2014-05-16 10:16:40 -04:00
Kitware Robot c956a0eb81 CMake Nightly Date Stamp 2014-05-16 00:01:20 -04:00
Brad King a339ea6529 Xcode: Add source file property to control file type (#14854)
Add source file properties to control Xcode file type attributes:

  XCODE_EXPLICIT_FILE_TYPE   => explicitFileType
  XCODE_LAST_KNOWN_FILE_TYPE => lastKnownFileType

Add a RunCMake.XcodeProject test to verify generated project content.
2014-05-15 14:34:52 -04:00
Brad King ae80cb9f28 Xcode: Refactor internal source file type selection
Choose the attribute name and file type and send them through a single
attribute generation code path.  Compute the file extension only when
needed.  Leave the file type selection logic indented in a block so it
can be made conditional later.
2014-05-15 14:01:16 -04:00
Brad King d7c692466b execute_process: Send stderr through cmSystemTools::Stderr
Give cmake-gui and ctest --build-and-test a chance to capture the output
instead of sending it to the real stderr.
2014-05-15 10:29:08 -04:00
Brad King 92ddf0c9e2 cmake-gui: Capture cmSystemTools::Stdout and Stderr
Output sent through these APIs is logically part of the CMake process
output.  Capture it with callbacks and display it in the cmake-gui
output window along with other messages.
2014-05-15 10:28:42 -04:00
Brad King f52b5ae3c4 cmSystemTools: Add callback for Stderr
Factor a common callback type out of StdoutCallback.  Add an equivalent
StderrCallback.  While at it, use "size_t" for the data length instead
of "int".

Teach "ctest --build-and-test" to capture the Stderr callback because
output sent through it is part of the logical CMake process output.
2014-05-15 10:26:30 -04:00
Brad King a9ae1d7a60 cmSystemTools: Simplify InterruptCallback definition
Use the typedef to declare the member instead of duplicating the type.
Use default initialization instead of an explicit zero initializer.
2014-05-15 10:24:23 -04:00
Brad King 73b13f5641 cmSystemTools: Rename ErrorCallback to MessageCallback
Clarify that it is the callback for the cmSystemTools::Message API.
Rename callback clients too.
2014-05-15 10:24:21 -04:00
Brad King 7577a542df cmCTestBuildAndTestHandler: Refactor output capture
Use an RAII class to add and remove callbacks.
2014-05-15 10:19:29 -04:00
Brad King b1b4d761a1 cmCTestBuildAndTestHandler: Refactor local loop var 2014-05-15 10:16:48 -04:00
Kitware Robot 1f1df31a36 CMake Nightly Date Stamp 2014-05-15 00:01:21 -04:00
Stephen Kelly e0890d03a4 Features: Extend concept to C language.
Add properties and variables corresponding to CXX equivalents.

Add features for c_function_prototypes (C90), c_restrict (C99),
c_variadic_macros (C99) and c_static_assert (C11). This feature
set can be extended later.

Add a <PREFIX>_RESTRICT symbol define to WriteCompilerDetectionHeader
to conditionally represent the c_restrict feature.
2014-05-15 00:15:18 +02:00
Brad King 775458dede Merge topic 'fix-atomic-rename-Windows-sharing-violation'
24bd7ae1 cmSystemTools::RenameFile: Retry on Windows ERROR_SHARING_VIOLATION
2014-05-14 13:58:33 -04:00
Brad King 07163ca070 Merge topic 'update-kwsys'
7fa16df4 Merge branch 'upstream-kwsys' into update-kwsys
7762c574 KWSys 2014-05-07 (6074f33f)
2014-05-14 13:58:32 -04:00
Kitware Robot 7ceab3d08a CMake Nightly Date Stamp 2014-05-14 00:01:10 -04:00
Brad King 5527cfa002 Merge branch 'fix-atomic-rename-Windows-sharing-violation' into release 2014-05-13 15:25:47 -04:00
Eric Berge 24bd7ae11a cmSystemTools::RenameFile: Retry on Windows ERROR_SHARING_VIOLATION
Add ERROR_SHARING_VIOLATION to the set of errors (previously including
only ERROR_ACCESS_DENIED) that cause a rename (MoveFile) on Windows to
retry.  The condition was observed when two renames to the same target
file name were happening simultaneously.
2014-05-13 15:23:36 -04:00
Brad King 7fa16df4d7 Merge branch 'upstream-kwsys' into update-kwsys 2014-05-13 14:55:35 -04:00
Brad King b3ebb8f434 CMake 3.0.0-rc5 2014-05-13 09:34:03 -04:00
Kitware Robot f692014a2b CMake Nightly Date Stamp 2014-05-13 00:01:10 -04:00
Brad King 58fcd57c40 Merge topic 'package-disable-registry'
ba387cb8 Help: Add notes for topic 'package-disable-registry'
be8ae960 Allow the Package Registry to be disabled (#14849)
d09fda5d Tests: Improve FindPackageTest for in-source builds
ac24a1c0 Tests: Improve FindPackageTest exported package version
2014-05-12 10:45:51 -04:00