Commit Graph

16113 Commits

Author SHA1 Message Date
Brad King 8018fcca6e Merge branch 'master' into revise-compiler-id-policies 2014-04-02 14:44:35 -04:00
Brad King a41c0a9dcb Do not warn by default when policy CMP0025 or CMP0047 is not set
These policies are triggered by the use of a particular compiler rather
than outdated CMake code in a project.  Avoid warning in every project
that enables a language by not displaying the policy warning by default.
Add variable CMAKE_POLICY_WARNING_CMP<NNNN> to control the warning
explicitly; otherwise enable the warning with --debug-output or --trace.

This breaks with strict policy convention because it does not provide
developers with any warning about the behavior change by default.
Existing projects will continue to build without a warning or change in
behavior.  When a developer changes the minimum required version of
CMake in a project to a sufficiently high value (3.0), the project will
suddenly get the new compiler id and may break, but at least the
breakage comes with a change to the project rather than the version of
CMake used to build it.

Breaking strict policy convention is worthwhile in this case because
very few projects will be affected by the behavior change but every
project would have to see the warning if it were enabled by default.
2014-04-02 14:43:54 -04:00
Brad King 1de086855c cmSystemTools: Restore unreachable return to silence warnings
Some compilers do not recognize that the end of copy_data cannot
be reached and complain that there is no return statement.  Clang
warns that there is an unreachable return statement if it appears.
Conditionally add the return statement when not building with Clang.
2014-04-02 09:35:36 -04:00
Stephen Kelly 936e00b92c Simplify multiple config handling.
Use conventional pattern of not repeating the loop body for empty
config.
2014-04-02 12:29:33 +02:00
Kitware Robot 5ada4be81b CMake Nightly Date Stamp 2014-04-02 00:01:06 -04:00
Brad King e8633e6678 VS: Fix /analyze:log flag mapping (#14858)
Fix the VS 11 and VS 12 flag table entries for this flag.  It requires
a value in the following argument.  Also drop the general "/analyze:"
flag table entry so that such flags will be passed through as plain
additional options.  This is necessary because some such options have
following values and some do not but not all have .vcxproj elements
to hold the values.
2014-04-01 14:59:20 -04:00
Brad King 650199e7ca VS: Support mapping flags with values following separately (#14858)
Add a "UserFollowing" special flag table entry indicator to say that a
flag expects a value in a following argument.  Teach cmIDEOptions to
handle such flags.
2014-04-01 14:56:08 -04:00
Brad King f2a3dd9d1a cmIDEOptions: Factor FlagMap update out to separate method
This will allow it to be re-used in other code paths.
2014-04-01 14:54:28 -04:00
Brad King 780f81b9e7 Merge topic 'simplify-ninja-linker-command'
2b896752 Ninja: Simplify code for linker commands
2014-04-01 11:06:19 -04:00
Brad King f70b2253f6 Merge topic 'fix_policy_diagnostics'
77b581c2 Policies: omit warnings about unset policies when they are actually set to NEW
2014-04-01 11:06:17 -04:00
Brad King 242e13bfe6 Merge topic 'clang-warnings'
8c9c4fe1 Remove 'return' statements that can never be reached
50ca77f4 create_test_sourcelist: Initialize variable at declaration
2014-04-01 11:06:15 -04:00
Brad King a5a6d53782 Merge topic 'cmake-gui-symlinks'
480be00b cmake-gui: Don't resolve symlinks with using file dialog.
2014-04-01 11:06:14 -04:00
Brad King 382c9ee859 Merge topic 'link-line-quoting'
423009c1 Makefile: Generate single-quoted object lists for Watcom
a863a8fe cmLocalUnixMakefileGenerator3: Re-organize ConvertToQuotedOutputPath
2014-04-01 11:06:08 -04:00
Jiri Malak 2b89675256 Ninja: Simplify code for linker commands
Use GetCreateRuleVariable function instead of redundant code for Rule
variable name.  Use temporary variables to improve code.
2014-04-01 10:58:58 -04:00
Kitware Robot e3e1ba3f78 CMake Nightly Date Stamp 2014-04-01 00:01:05 -04:00
Stephen Kelly 857d30b52e cmGlobalGenerator: Add interface to call ForceLinkerLanguages
Avoid calling it too early when cmGeneratorTarget instances don't
yet exist.
2014-03-31 23:18:44 +02:00
Stephen Kelly 28e1d2f8fc cmStringCommand: Add GENEX_STRIP subcommand.
Strip out any generator expressions in the input string.
2014-03-31 23:18:44 +02:00
Stephen Kelly bf98cc252f Genex: Evaluate TARGET_OBJECTS as a normal expression. 2014-03-31 23:18:44 +02:00
Stephen Kelly 8cd113ad1d cmTarget: Store strings instead of cmSourceFile* to represent SOURCES.
This will allow the strings to contain generator expressions.

At this point, generator expressions are still not part of the
SOURCES property when it is read.
2014-03-31 23:18:44 +02:00
Stephen Kelly 4959f3413c cmSourceFileLocation: Collapse full path for directory comparisons.
Otherwise Matches() ends up doing a comparison of
the directories

 /path/to/dir/subdir/..

and

 /path/to/dir

as strings and not matching where it should.
2014-03-31 23:18:43 +02:00
Stephen Kelly fcc9287897 cmSourceFileLocation: Remove unused Update method.
The string overload is never called. This allows the removal of
the unused UpdateDirectory method.
2014-03-31 23:18:43 +02:00
Stephen Kelly 59e8740aca cmTarget: Remove AddSourceFile method
It is no longer used.
2014-03-31 23:18:43 +02:00
Stephen Kelly 26d494ba01 cmTarget: Use string API to add sources to cmTarget objects.
Continue to call GetOrCreateSource where necessary to create
cmSourceFile objects which have the GENERATED attribute set.
2014-03-31 23:18:43 +02:00
Stephen Kelly d38423ecc4 cmTarget: Add a method to obtain list of filenames for sources. 2014-03-31 23:18:43 +02:00
Stephen Kelly b1cbba68ce cmSourceFileLocation: Make copyable and assignable.
This allows using it in containers and algorithms.
2014-03-31 23:18:43 +02:00
Stephen Kelly 0ed5ce4cd8 cmTarget: Rename AddSource method for backward compatibility.
Add a new AddSource method for future use.
2014-03-31 23:18:43 +02:00
Stephen Kelly 99a9c51f1a cmTarget: Use GetSourceFiles for languages. 2014-03-31 23:18:43 +02:00
Stephen Kelly beaa7e0377 cmGeneratorTarget: Compute the object directory early.
Ensure it is populated before tracing dependencies.
2014-03-31 23:18:43 +02:00
Nils Gladitz 77b581c2f0 Policies: omit warnings about unset policies when they are actually set to NEW 2014-03-31 09:45:10 -04:00
Sean McBride 8c9c4fe1a6 Remove 'return' statements that can never be reached
Clang -Wunreachable-code-return warns otherwise.
2014-03-31 09:41:05 -04:00
Kitware Robot 521b930bf4 CMake Nightly Date Stamp 2014-03-31 00:01:05 -04:00
Clinton Stimpson 480be00bfa cmake-gui: Don't resolve symlinks with using file dialog.
This fixes bug #14274 where a clang++ symlink was resolved to
a clang executable.
2014-03-29 22:41:44 -06:00
Kitware Robot 9298987a82 CMake Nightly Date Stamp 2014-03-30 00:01:06 -04:00
Kitware Robot 5bad8ae342 CMake Nightly Date Stamp 2014-03-29 00:01:05 -04:00
Kitware Robot cab2e31443 CMake Nightly Date Stamp 2014-03-28 00:01:05 -04:00
Jiri Malak 423009c17f Makefile: Generate single-quoted object lists for Watcom
Drop the CMAKE_NO_QUOTED_OBJECTS internal variable from the Makefile
generators.  The underlying problem is with the Watcom linker, not with
WMake.  The Watcom linker wants object files to be single-quoted.  Add
<LINK-RULE>_USE_WATCOM_QUOTE platform information variables to tell the
generators to use Watcom-style single quotes for object files on link
lines.

On Windows, Watcom uses the GetCommandLine API to get the original
command-line string and do custom parsing that expects single quotes.
On POSIX systems, Watcom approximates the original command line by
joining all argv[] entries separated by a single space.  Therefore we
need to double-quote the single-quoted arguments so that the shell does
not consume them and they are available for the parser to see.
2014-03-27 13:45:29 -04:00
Jiri Malak a863a8fecd cmLocalUnixMakefileGenerator3: Re-organize ConvertToQuotedOutputPath
Use one code path whether the components list is empty or not.
Fix indentation accordingly.
2014-03-27 13:45:27 -04:00
Brad King ede0419a37 Merge topic 'osx-CFBundle-info-plist'
90e22f8f OS X: Fix Info.plist placement in a CFBundle
2014-03-27 11:12:10 -04:00
Kitware Robot e03ac807cf CMake Nightly Date Stamp 2014-03-27 00:01:18 -04:00
Brad King edb506b862 Merge topic 'fix-Qt-Autogen'
71a11252 QtAutogen: Fix use of multiple ui files in a single target.
261acd91 QtAutogen: Use the basename for resource files.
2014-03-26 13:24:43 -04:00
Brad King a11d1c6135 Merge topic 'dev/custom-ninja-deptypes'
9523d2a5 ninja: Add support for custom depfile formats
2014-03-26 13:24:39 -04:00
Brad King f04e217cc1 Merge topic 'remove-CMakeFiles-advice'
bccc056b cmake: Advise user to remove CMakeFiles with CMakeCache.txt (#14820)
2014-03-26 13:24:37 -04:00
Brad King 06c9f55449 Merge topic 'haiku-updates'
0cc42b87 Haiku: Fix compiler detection when using distcc
84603d80 Haiku: Enable CMake builtin ELF editor
2014-03-26 13:24:36 -04:00
Brad King 9b536b914b Merge topic 'report-INTERFACE-type-in-conflict'
f1fd3714 cmMakefile: Report type of INTERFACE library in conflict.
2014-03-26 13:24:33 -04:00
Brad King 5ae8f33617 Merge topic 'update-kwsys'
ed6ddb89 Merge branch 'upstream-kwsys' into update-kwsys
12faf00d KWSys 2014-03-19 (a8aa1014)
2014-03-26 13:24:30 -04:00
Tim Blechmann 90e22f8f71 OS X: Fix Info.plist placement in a CFBundle
Fix cmOSXBundleGenerator::CreateCFBundle to place Info.plist under the
same root directory as the rest of the bundle.  Without this, Info.plist
was placed into CMAKE_BINARY_DIR, not CMAKE_CURRENT_BINARY_DIR because
the target path was not generated correctly.
2014-03-26 10:52:23 -04:00
Kitware Robot a29ea834de CMake Nightly Date Stamp 2014-03-26 00:01:05 -04:00
Kitware Robot a56a8f9536 CMake Nightly Date Stamp 2014-03-25 00:01:06 -04:00
Stephen Kelly 71a11252e9 QtAutogen: Fix use of multiple ui files in a single target.
Don't store a mapping of the directory to the ui file. The directory
will be a unique key, allowing only one ui file to be specified.
Use the source file name instead as the mapping key.
2014-03-25 01:39:03 +01:00
Stephen Kelly 261acd9109 QtAutogen: Use the basename for resource files.
The rcc tool generates a cpp file with a symbol called qInitResources
or called qInitResources_${name}, if the name is passed. The
qInitResources symbol clashes if multiple qrc files are used in
one target.

Always pass the name to ensure that the symbol is unique. This is also
the behavior of the qtx_add_resource macros.
2014-03-25 01:16:49 +01:00
Kitware Robot 8a306d68e0 CMake Nightly Date Stamp 2014-03-24 00:01:06 -04:00
Ben Boeckel 9523d2a55c ninja: Add support for custom depfile formats
Not everything that isn't MSVC is GCC. I have support for LDC's depfile
format on its way upstream[1], but its future is uncertain. CMake should
at least support this for future depfile formats.

[1]https://github.com/martine/ninja/pull/721
2014-03-23 23:54:13 -04:00
Kitware Robot 6f39a6ff32 CMake Nightly Date Stamp 2014-03-23 00:01:06 -04:00
Kitware Robot d514e41118 CMake Nightly Date Stamp 2014-03-22 00:01:05 -04:00
Brad King bccc056ba8 cmake: Advise user to remove CMakeFiles with CMakeCache.txt (#14820) 2014-03-21 08:28:37 -04:00
Adrien Destugues 84603d804c Haiku: Enable CMake builtin ELF editor
Co-Author: Brad King <brad.king@kitware.com>
2014-03-21 08:19:09 -04:00
Kitware Robot 6373e08d43 CMake Nightly Date Stamp 2014-03-21 00:01:16 -04:00
Stephen Kelly f1fd3714a4 cmMakefile: Report type of INTERFACE library in conflict. 2014-03-20 22:09:32 +01:00
Brad King ed6ddb89bf Merge branch 'upstream-kwsys' into update-kwsys 2014-03-20 09:42:27 -04:00
Brad King a48de7d850 CMake 3.0.0-rc3 2014-03-20 09:26:39 -04:00
Brad King d8fb08a391 Merge topic 'watcom-updates'
64c2342a Watcom: Enable 'WMake Makefiles' generator on Linux
5d9aa66c Watcom: Introduce OpenWatcom compiler id and fix compiler version
9292d3b8 Watcom: Detect compiler target architecture and platform
fbc883c9 Watcom: Add one blank line to Makefile for better readability
2014-03-20 09:22:30 -04:00
Brad King 565213c1fd Merge topic 'configure_file-unicode'
98383f80 Unicode: check encoding of files given to configure_file.
2014-03-20 09:22:28 -04:00
Brad King c79d98b457 Merge topic 'file-DOWNLOAD-cap-progress'
413282c0 file: Avoid runaway DOWNLOAD/UPLOAD progress reports (#14807)
2014-03-20 09:22:21 -04:00
Brad King 9c609db988 Merge topic 'minor_cleanups'
19012b46 cmMakefile: Fix style.
10e6f1e7 cmMakefile: Fix typo in comment.
c3a2f78b Makefiles: Remove duplicate code.
2e0611f9 cmGeneratorExpression: Remove unused include.
d83ef53a Rename local 'dir_max' variables to 'dir'
2014-03-20 09:22:20 -04:00
Brad King e1c1f18e39 Merge topic 'add_custom_command-DEPENDS-genex'
bbffccca add_custom_command: Evaluate generator expressions in DEPENDS
2014-03-20 09:22:17 -04:00
Brad King 86b003c3c6 Merge topic 'add_custom_command-no-INTERFACE-lib'
2600e923 Disallow INTERFACE libraries with add_custom_command(TARGET).
2014-03-20 09:22:12 -04:00
Brad King 7bf8a549f9 Merge topic 'fix-Qt5-non-Windows'
5f210672 QtDialog: Fix Qt 5 build on non-Windows.
2014-03-20 09:22:10 -04:00
Stephen Kelly bbffccca42 add_custom_command: Evaluate generator expressions in DEPENDS
Rely on evaluation in cmCustomCommandGenerator for the generators.

When tracing target dependencies, depend on the union of dependencies
for all configurations.
2014-03-20 09:21:56 -04:00
Kitware Robot f039a3a78e CMake Nightly Date Stamp 2014-03-20 00:01:05 -04:00
Brad King 6a85d624a8 Merge branch 'add_custom_command-no-INTERFACE-lib' into release 2014-03-19 10:57:04 -04:00
Stephen Kelly 2600e923a6 Disallow INTERFACE libraries with add_custom_command(TARGET).
Don't attempt to trace their dependencies.
2014-03-19 15:51:21 +01:00
Stephen Kelly 5f210672da QtDialog: Fix Qt 5 build on non-Windows.
The Qt5Core_QTMAIN_LIBRARIES variable is defined to the Qt5::WinMain
target on Windows, and undefined elsewhere.
2014-03-19 15:38:02 +01:00
Kitware Robot 8b8691adca CMake Nightly Date Stamp 2014-03-19 00:01:09 -04:00
Kitware Robot 2c5e78fa5d CMake Nightly Date Stamp 2014-03-18 00:01:09 -04:00
Clinton Stimpson 98383f802a Unicode: check encoding of files given to configure_file.
UTF-16 and UTF-32 files are rejected.
2014-03-17 14:01:55 -06:00
Jiri Malak 64c2342a8d Watcom: Enable 'WMake Makefiles' generator on Linux 2014-03-17 15:04:05 -04:00
Jiri Malak 5d9aa66c91 Watcom: Introduce OpenWatcom compiler id and fix compiler version
Distinguish "Open Watcom" from old "Watcom" by introducing a new
"OpenWatcom" compiler id.  The __WATCOMC__ format is "VVRP" for Watcom
and "VVRP + 1100" for Open Watcom.
2014-03-17 15:00:59 -04:00
Brad King 0f4e8fd0e9 CMake 3.0.0-rc2 2014-03-17 13:14:27 -04:00
Brad King 413282c0cf file: Avoid runaway DOWNLOAD/UPLOAD progress reports (#14807)
Curl makes progress callbacks frequently but we round to the nearest
percent and report only when that changes so that we make at most 101
progress reports.  However, when unexpected data beyond the total are
transferred the progress can get beyond 100% and lead to unlimited
reports.  Avoid this case by capping the reported progress to 100%.
2014-03-17 11:05:34 -04:00
Stephen Kelly 19012b4652 cmMakefile: Fix style.
Use this-> for member access.
2014-03-17 15:34:53 +01:00
Stephen Kelly 10e6f1e716 cmMakefile: Fix typo in comment. 2014-03-17 15:33:54 +01:00
Stephen Kelly c3a2f78b5a Makefiles: Remove duplicate code.
The cmGlobalUnixMakefileGenerator3::ProgressMapCompare struct is
logically equivalent to cmStrictTargetComparison.
2014-03-17 15:32:19 +01:00
Stephen Kelly 2e0611f981 cmGeneratorExpression: Remove unused include. 2014-03-17 15:29:49 +01:00
Stephen Kelly d83ef53a12 Rename local 'dir_max' variables to 'dir'
The code is not computing the maximum length directory, as is the
case in cmLocalVisualStudioGenerator::ComputeLongestObjectDirectory.
2014-03-17 15:27:01 +01:00
Jiri Malak fbc883c942 Watcom: Add one blank line to Makefile for better readability 2014-03-17 10:23:52 -04:00
Brad King b16f26f5f9 Merge topic 'target-objects-refactor'
6c9dd0ec cmGlobalGenerator: Make ComputeTargetObjects non-virtual
c481fadc cmGeneratorTarget: Don't store ObjectSources for object libraries.
f6da0440 cmLocalGenerator: Add ComputeObjectFilenames interface.
9ad804ac cmGeneratorTarget: Constify cmSourceFile* in containers.
c725bb3c Constify some APIs in generators.
dcfcd23e cmGeneratorTarget: Make GetSourceDepends const.
04cf50ff cmOSXBundleGenerator: Make MacOSXContentGeneratorType arg const.
6132d979 cmGeneratorTarget: Constify the AddExplicitObjectName API.
bc512211 cmGeneratorTarget: Constify the AddObject API.
cd43433d cmGlobalGenerator: Extract a ComputeTargetObjectDirectory interface.
d5b2e33b Makefiles: Compute local object files on demand.
2014-03-17 10:00:43 -04:00
Brad King 6aaaa6d0bd Merge topic 'CONFIG-LOCATION-CMP0026'
ea17a03b cmTarget: Port <CONFIG>_LOCATION support to updated string APIs
6e466c6f Merge branch 'master' into CONFIG-LOCATION-CMP0026
c903b531 cmTarget: Restore <CONFIG>_LOCATION to CMP0026 OLD behavior (#14808)
2014-03-17 09:49:56 -04:00
Brad King 5a21cbc96b Merge topic 'unicode-vs-projects'
ee8cef87 Encoding: If configured, write Visual Studio project files as UTF-8.
91fd99b8 Encoding: Provide option to configure CMake to use UTF-8 encoding.
2014-03-17 09:49:54 -04:00
Brad King 223b05a80c Merge topic 'fix-Qt5-windows-build'
61c60b23 QtDialog: Avoid linking to Qt4 WinMain when using Qt 5.
2014-03-17 09:49:52 -04:00
Brad King 4a7eb0cdec Merge branch 'CONFIG-LOCATION-CMP0026' into release 2014-03-17 09:35:30 -04:00
Stephen Kelly ea17a03be5 cmTarget: Port <CONFIG>_LOCATION support to updated string APIs 2014-03-17 09:31:58 -04:00
Brad King 6e466c6f2e Merge branch 'master' into CONFIG-LOCATION-CMP0026 2014-03-17 09:31:21 -04:00
Stephen Kelly c903b5319b cmTarget: Restore <CONFIG>_LOCATION to CMP0026 OLD behavior (#14808)
Restore support for the undocumented <CONFIG>_LOCATION target property
removed by commit v3.0.0-rc1~175^2 (cmTarget: Remove support for
<CONFIG>_LOCATION property, 2013-12-30) as part of the CMP0026 OLD
behavior.
2014-03-17 09:30:39 -04:00
Brad King 43b39b1c36 Merge branch 'fix-Qt5-windows-build' into release 2014-03-17 09:24:12 -04:00
Stephen Kelly 61c60b239c QtDialog: Avoid linking to Qt4 WinMain when using Qt 5.
Override the QT_QTMAIN_LIBRARY cache variable with a regular
variable in the Qt 5 configuration. This avoids linking with the
Qt 4 version of the WinMain library.
2014-03-17 14:15:14 +01:00
Kitware Robot 6313be44aa CMake Nightly Date Stamp 2014-03-17 00:01:05 -04:00
Kitware Robot 2eb158caf0 CMake Nightly Date Stamp 2014-03-16 00:01:05 -04:00
Stephen Kelly 6c9dd0ec7b cmGlobalGenerator: Make ComputeTargetObjects non-virtual
Implement it in terms of the ComputeObjectFilenames virtual method
on the local generators.

Remove the reimplementation from the global generators which are
now all functionally identical.
2014-03-15 09:30:24 +01:00
Stephen Kelly c481fadc07 cmGeneratorTarget: Don't store ObjectSources for object libraries.
Compute them on demand instead.
2014-03-15 09:29:44 +01:00
Kitware Robot 3c6943eb9d CMake Nightly Date Stamp 2014-03-15 00:01:11 -04:00
Clinton Stimpson ee8cef8725 Encoding: If configured, write Visual Studio project files as UTF-8. 2014-03-14 08:48:42 -06:00
Clinton Stimpson 91fd99b865 Encoding: Provide option to configure CMake to use UTF-8 encoding. 2014-03-14 08:48:18 -06:00
Brad King 3d89b36415 Merge topic 'ctest-intel-coverage'
3a7501d9 Help: Add release notes for topic 'ctest-intel-coverage'
9840320d CTest: Add support for Intel coverage files
2014-03-14 10:35:42 -04:00
Brad King dafa80ecc0 Merge topic 'cpack-deb-compression-types'
13778cd3 CPackDeb: Add option to set compression type
2014-03-14 09:30:29 -04:00
Brad King 67a0d5e4c4 Merge topic 'unicode-cmake-gui'
c34216cf cmake-gui: Fix compile with Qt5 using UTF-8 internal encoding.
2014-03-14 09:30:26 -04:00
Sean D'Epagnier 13778cd3be CPackDeb: Add option to set compression type
Add a CPACK_DEBIAN_COMPRESSION_TYPE option to set the compression type.
Default to 'gzip' to preserve existing behavior.  Use "cmake -E tar"
for 'gzip', 'bzip2', and 'none'.  Use system "tar" for 'lzma' and 'xz'.
2014-03-14 09:29:54 -04:00
Kitware Robot 9a026b902b CMake Nightly Date Stamp 2014-03-14 00:01:14 -04:00
Volkan Gezer 9840320dff CTest: Add support for Intel coverage files
By default, Intel compiler coverage tools generate HTML files as
reports, but the option -txtlcov can be given to codecov to output a
coverage file with LCov format.

To use Intel coverage:

* build the project with coverage flags
* run the application
* run profmerge
* run codecov

The output file will be "build_dir/CodeCoverage/SRCFILEDIR.LCOV".

Ask users to compile with -prof-dir${BUILD_DIR} instead of searching
the entire build tree recursively to find coverage files.
2014-03-13 16:18:10 -04:00
Stephen Kelly f6da044080 cmLocalGenerator: Add ComputeObjectFilenames interface.
Implement it in the local generators and use it in the global
generators.
2014-03-13 15:28:02 +01:00
Stephen Kelly 9ad804ac7b cmGeneratorTarget: Constify cmSourceFile* in containers.
Some of them will be used with other APIs which require value_type
to be cmSourceFile const*.
2014-03-13 15:27:23 +01:00
Stephen Kelly c725bb3cbd Constify some APIs in generators. 2014-03-13 15:27:23 +01:00
Stephen Kelly dcfcd23ed5 cmGeneratorTarget: Make GetSourceDepends const. 2014-03-13 15:27:23 +01:00
Stephen Kelly 04cf50ff62 cmOSXBundleGenerator: Make MacOSXContentGeneratorType arg const. 2014-03-13 15:27:23 +01:00
Stephen Kelly 6132d979d9 cmGeneratorTarget: Constify the AddExplicitObjectName API.
The storage is already const.
2014-03-13 15:27:23 +01:00
Stephen Kelly bc51221164 cmGeneratorTarget: Constify the AddObject API.
The storage is already const.
2014-03-13 15:27:23 +01:00
Stephen Kelly cd43433de5 cmGlobalGenerator: Extract a ComputeTargetObjectDirectory interface.
Make it public for future external calls.
2014-03-13 15:27:23 +01:00
Stephen Kelly d5b2e33be2 Makefiles: Compute local object files on demand.
Don't compute them up front.
2014-03-13 15:27:23 +01:00
Brad King 7477f01ebd Merge topic 'generalize-cmCustomCommandGenerator'
bc993f27 Generalize cmCustomCommandGenerator to more fields
9a5c5544 cmGlobalXCodeGenerator: Simplify handling of multiple outputs
d45e7f34 cmCustomCommand: Return std::string from GetWorkingDirectory
2014-03-13 09:36:10 -04:00
Brad King 5ef2bb4b86 Merge topic 'string-apis-fix-cmake-gui'
ae32622b cmake-gui: Fix handling of missing CMAKE_EXTRA_GENERATOR (#14804)
2014-03-13 09:36:08 -04:00
Brad King e1a671c7d8 Merge topic 'fix-CMP0046-warning'
d83245a3 cmTarget: Don't create duplicate backtraces in CMP0046 warning
2014-03-13 09:36:06 -04:00
Kitware Robot 4a6a59a120 CMake Nightly Date Stamp 2014-03-13 00:01:10 -04:00
Clinton Stimpson c34216cf8a cmake-gui: Fix compile with Qt5 using UTF-8 internal encoding.
Because we already call [to|from]Local8Bit() with C strings where we are supposed to,
we do not need to specify UTF-8 encoding when converting C strings to QString.
2014-03-12 20:48:46 -06:00
Stephen Kelly d83245a34f cmTarget: Don't create duplicate backtraces in CMP0046 warning 2014-03-12 18:01:26 +01:00
Brad King bc993f277e Generalize cmCustomCommandGenerator to more fields
Until now the cmCustomCommandGenerator was used only to compute the
command lines of a custom command.  Generalize it to get the comment,
working directory, dependencies, and outputs of custom commands.  Update
use in all generators to support this.
2014-03-12 10:44:01 -04:00
Brad King 9a5c554414 cmGlobalXCodeGenerator: Simplify handling of multiple outputs
Make the multiple output pair map more local.  Generate it where we
have the current configuration available.
2014-03-12 10:44:00 -04:00
Brad King d45e7f3461 cmCustomCommand: Return std::string from GetWorkingDirectory 2014-03-12 10:44:00 -04:00
Brad King cb8f87f622 Merge topic 'remove-c_str-calls'
3be265b3 Workaround Sun C++ 5.9 compiler crash
af8a1643 Remove c_str calls when using stream APIs.
21c573f6 Remove some c_str() calls.
2014-03-12 10:42:38 -04:00
Brad King 3be265b304 Workaround Sun C++ 5.9 compiler crash
Adjust whitespace in Source/CPack/cpack.cxx to avoid a strange
internal compiler crash.
2014-03-12 10:40:45 -04:00
Brad King 85ffb02919 Merge topic 'unicode-cmake-gui'
649789a7 Unicode: cmake-gui encoding now matches KWSys encoding.
2014-03-12 10:13:18 -04:00
Brad King ae32622bcf cmake-gui: Fix handling of missing CMAKE_EXTRA_GENERATOR (#14804)
Since commit 1a1b737c (stringapi: Use strings for generator names,
2014-02-24) cmExternalMakefileProjectGenerator::CreateFullGeneratorName
expects a std::string instead of const char*.  When no extra generator
name is available, pass an empty string to avoid NULL dereference.
2014-03-12 09:55:23 -04:00
Kitware Robot c4c6427ed6 CMake Nightly Date Stamp 2014-03-12 00:01:12 -04:00
Stephen Kelly af8a1643c1 Remove c_str calls when using stream APIs.
Use an ad-hoc clang tool for matching the calls which should be
ported.
2014-03-11 15:03:50 +01:00
Stephen Kelly 21c573f682 Remove some c_str() calls.
Use the clang RemoveCStrCalls tool to automatically migrate the
code. This was only run on linux, so does not have any positive or
negative effect on other platforms.
2014-03-11 15:03:50 +01:00
Brad King b801205dad Merge topic 'ctest-coverage-extra'
93d5c4dc Help: Add release notes for topic 'ctest-coverage-extra'
ef1c1153 CTest: Teach ctest_coverage() to read CTEST_COVERAGE_EXTRA_FLAGS
2014-03-11 09:18:28 -04:00
Brad King 1b809c09ff Merge topic 'watcom-VERBOSE-and-ERROR'
f1b689b6 Makefile: Improve handling of WMake verbose output and errors
2014-03-11 09:14:07 -04:00
Brad King 8559c326c4 Merge topic 'cmELF-typo'
172d8d94 cmELF: Fix typo in comment, 32-bit => 64-bit (#14799)
2014-03-11 09:14:05 -04:00
Brad King 312a6b7bde Merge topic 'ninja-command-line-length-haiku'
6c90f0a6 Ninja: Detect command-line length limit on Haiku
2014-03-11 09:14:03 -04:00
Brad King 510ceb19ed Merge topic 'fix-AUTOGEN-custom-command-depends'
112cba92 QtAutogen: Fix AUTOGEN depends on custom command output with VS.
2014-03-11 09:13:58 -04:00
Kitware Robot 64b93354dc CMake Nightly Date Stamp 2014-03-11 00:01:07 -04:00
Clinton Stimpson 649789a736 Unicode: cmake-gui encoding now matches KWSys encoding.
A UTF-8 QTextCodec is used with QString when KWSys is
configured to treat strings as UTF-8.
This means QString::toLocal8Bit() will convert to UTF-8.
2014-03-10 21:08:43 -06:00
Jiri Malak f1b689b64a Makefile: Improve handling of WMake verbose output and errors
* The '-e' option has nothing to do with verbose output.
  It is now properly handled by .ERASE directive in make file

* The '-s' option sets silent output globally, it cannot be switched off.
  It is now handled only by .SILENT directive in make file directive
  is simply controlled by a conditonal block.

Remove SilentNoColon member variable as it is no longer needed.
2014-03-10 11:15:12 -04:00
Ryo ONODERA 172d8d94f4 cmELF: Fix typo in comment, 32-bit => 64-bit (#14799) 2014-03-10 11:05:26 -04:00
Volkan Gezer ef1c1153d3 CTest: Teach ctest_coverage() to read CTEST_COVERAGE_EXTRA_FLAGS
Use it to set the CoverageExtraFlags value just as COVERAGE_EXTRA_FLAGS
does in the CTest module for creating DartConfiguration.tcl.
2014-03-10 09:54:27 -04:00
Adrien Destugues 6c90f0a693 Ninja: Detect command-line length limit on Haiku 2014-03-10 09:42:38 -04:00
Brad King ebaa5a6410 Merge branch 'fix-AUTOGEN-custom-command-depends' into release 2014-03-10 09:38:52 -04:00
Brad King 98e3831a67 Merge branch 'fix-policy-scopes' into release 2014-03-10 09:36:28 -04:00
Brad King 7b0efcded3 Merge topic 'fix-policy-scopes'
50fd0a33 Tests: Simplify and document policy scopes in RunCMake.CMP* tests
b1bbee3e Record more policies on targets when created
2014-03-10 09:33:25 -04:00
Stephen Kelly 112cba927a QtAutogen: Fix AUTOGEN depends on custom command output with VS.
Visual Studio is handled as a special case for autogen depends. However,
the special handling works only for target dependencies, not file
dependencies output by a custom command.

Use a PRE_BUILD step only if all depends are targets.
2014-03-10 13:01:29 +01:00
Kitware Robot 4d8260921f CMake Nightly Date Stamp 2014-03-10 00:01:06 -04:00
Brad King ad9f0d831e Merge topic 'dev/string-apis'
b633b263 CPackWiX: Fix test to build with expected config
191f25e2 stringapi: Prevent a NULL dereference in WiX
219d6ad6 speedup: Avoid excess iterator dereferences
caaad357 speedup: Cache strings for comparisons
7abf4e31 stringapi: Use strings for dependency information
94fc63e2 stringapi: Use strings for cache iterator values
85fc9f26 stringapi: Command names
6557382d stringapi: Use strings for program paths
1a1b737c stringapi: Use strings for generator names
24b5e93d stringapi: Use strings for directories
11ed3e2c stringapi: Add string overload for the Def struct
b3bf31a5 stringapi: Miscellaneous char* parameters
5af95c39 typo: Match argument name with the header
2b17626e stringapi: Pass strings as install directories in CPack
3def29da stringapi: Use strings for feature arguments
acb116e3 stringapi: Return a string reference for the configuration
...
2014-03-09 10:29:02 -04:00
Kitware Robot 6aad93f407 CMake Nightly Date Stamp 2014-03-09 00:01:06 -05:00
Ben Boeckel 191f25e2bd stringapi: Prevent a NULL dereference in WiX 2014-03-08 13:05:40 -05:00
Ben Boeckel 219d6ad610 speedup: Avoid excess iterator dereferences 2014-03-08 13:05:40 -05:00
Ben Boeckel caaad35759 speedup: Cache strings for comparisons 2014-03-08 13:05:39 -05:00
Ben Boeckel 7abf4e313d stringapi: Use strings for dependency information 2014-03-08 13:05:39 -05:00
Ben Boeckel 94fc63e2d5 stringapi: Use strings for cache iterator values 2014-03-08 13:05:39 -05:00
Ben Boeckel 85fc9f26a7 stringapi: Command names 2014-03-08 13:05:39 -05:00
Ben Boeckel 6557382dcf stringapi: Use strings for program paths 2014-03-08 13:05:38 -05:00
Ben Boeckel 1a1b737c99 stringapi: Use strings for generator names 2014-03-08 13:05:38 -05:00
Ben Boeckel 24b5e93de2 stringapi: Use strings for directories 2014-03-08 13:05:38 -05:00
Ben Boeckel 11ed3e2cfe stringapi: Add string overload for the Def struct 2014-03-08 13:05:38 -05:00
Ben Boeckel b3bf31a548 stringapi: Miscellaneous char* parameters 2014-03-08 13:05:37 -05:00
Ben Boeckel 5af95c396d typo: Match argument name with the header 2014-03-08 13:05:37 -05:00
Ben Boeckel 2b17626e9b stringapi: Pass strings as install directories in CPack 2014-03-08 13:05:37 -05:00
Ben Boeckel 3def29da3c stringapi: Use strings for feature arguments 2014-03-08 13:05:37 -05:00
Ben Boeckel acb116e3b5 stringapi: Return a string reference for the configuration 2014-03-08 13:05:36 -05:00
Ben Boeckel 84fdc9921c stringapi: Pass configuration names as strings 2014-03-08 13:05:36 -05:00
Brad King f154475b65 cmTarget: Refactor GetLocation API
When given a non-NULL configuration the GetLocation returned the
location for the given configuration.  When given a NULL configuration
the GetLocation method returned a location with the build-system
placeholder for the configuration name.  Split the latter use case out
into a separate GetLocationForBuild method and update call sites
accordingly.
2014-03-08 13:05:36 -05:00
Ben Boeckel cfc2cf9559 cmGeneratorExpression: Tokenize over strings 2014-03-08 13:05:36 -05:00
Ben Boeckel f0ad6631ad Directories: Take strings when setting directories 2014-03-08 13:05:35 -05:00
Ben Boeckel 270eb96df0 strings: Remove cmStdString references
Casts from std::string -> cmStdString were high on the list of things
taking up time. Avoid such implicit casts across function calls by just
using std::string everywhere.

The comment that the symbol name is too long is no longer relevant since
modern debuggers alias the templates anyways and the size is a
non-issue since the underlying methods are generated since it's
inherited.
2014-03-08 13:05:35 -05:00
Ben Boeckel 215b1addf0 stringapi: Take strings in escaping functions 2014-03-08 13:05:35 -05:00
Ben Boeckel 4c53997f38 stringapi: Take strings for utility command names 2014-03-08 13:05:34 -05:00
Ben Boeckel 466abd846f cmTargetLinkLibrariesCommand: Use a string argument 2014-03-08 13:05:34 -05:00
Ben Boeckel 8d60da0cb5 cmTarget: Remove the project argument to FindTarget
All callers passed 0 in, so just remove the branch.
2014-03-08 13:05:34 -05:00
Ben Boeckel 23e9b80f58 stringapi: Use strings for globbing parameters 2014-03-08 13:05:34 -05:00
Ben Boeckel 8455dd0a9a stringapi: Use strings for search paths 2014-03-08 13:05:34 -05:00
Ben Boeckel c3833c7da4 stringapi: Use strings for VS project names 2014-03-08 13:05:33 -05:00
Ben Boeckel d76a6e08d0 stringapi: Use strings for generated file stream names 2014-03-08 13:05:33 -05:00
Ben Boeckel 38c7544578 stringapi: Use strings for documentation names 2014-03-08 13:05:33 -05:00
Ben Boeckel dddbd2c7fa stringapi: Accept strings when setting command errors 2014-03-08 13:05:33 -05:00
Ben Boeckel f3efa3cd16 stringapi: Use strings for cache paths as arguments 2014-03-08 13:05:32 -05:00
Ben Boeckel adcd812917 stringapi: Use strings for AddSubdirectory paths 2014-03-08 13:05:32 -05:00
Ben Boeckel 30bc251b65 stringapi: Use strings for output names in AddCustomCommandToOutput 2014-03-08 13:05:32 -05:00
Ben Boeckel 77f60392d9 stringapi: Accept strings when MD5 hashing data 2014-03-08 13:05:32 -05:00
Ben Boeckel 473ca1ac4a stringapi: Use string for OS X resource names 2014-03-08 13:05:32 -05:00
Ben Boeckel fabf1fbabb stringapi: Use strings in target name 2014-03-08 13:05:31 -05:00
Ben Boeckel a6ae2ea72b stringapi: Use strings in Convert methods in LocalGenerator
The C strings were turned into std::strings internally anyways and most
callers used .c_str().
2014-03-08 13:05:31 -05:00
Ben Boeckel ce5114354c stringapi: Use strings for the languages 2014-03-08 13:05:30 -05:00
Ben Boeckel 83a5e453f8 stringapi: Use strings for test names 2014-03-08 13:05:30 -05:00
Ben Boeckel b26c70cc9a stringapi: Use strings for AddString methods
It gets turned into a string anyways, so pass them in.
2014-03-08 13:05:30 -05:00
Ben Boeckel 9f48d3bac2 stringapi: Use strings in CPack generator parameters
Most of these are turned into strings in the body of the method
(multiple times in some cases). Accept strings to simplify the API and
keep string construction down.
2014-03-08 13:05:30 -05:00
Ben Boeckel 971eb4d56e stringapi: Use strings for TryFullPath 2014-03-08 13:05:30 -05:00
Ben Boeckel 310ef08fed stringapi: Use strings for source names 2014-03-08 13:05:29 -05:00
Ben Boeckel 24e8b929ee genex: Store predicates as a map for faster searching
May warrant a fast path for predicates which more frequently.
2014-03-08 13:05:29 -05:00
Ben Boeckel 22c54a1090 makefile: Remove an unused method 2014-03-08 13:05:29 -05:00
Ben Boeckel f29754573d stringapi: Accept string parameters in methods which store to strings 2014-03-08 13:05:29 -05:00
Ben Boeckel 381d50c149 stringapi: Accept strings in cmStrCmp 2014-03-08 13:05:28 -05:00
Ben Boeckel 3742bb0d32 stringapi: Use strings for variable names
Variable names are always generated by CMake and should never be NULL.
2014-03-08 13:05:28 -05:00
Ben Boeckel ec97ed7d0c stringapi: Use strings for property names
Property names are always generated by CMake and should never be NULL.
2014-03-08 13:05:28 -05:00