Commit Graph

14343 Commits

Author SHA1 Message Date
Stephen Kelly b983a58bdf file: Add GENERATE command to produce files at generate time
The idea is to write to a temp file which contains generator
expressions, and at generate time, evaluate the generator expressions,
and write the result to a file.

Because executables on Windows are limited in the length of command line
it is possible to use, it is common to write command line arguments to a
file instead and specify the file as a source of arguments.

This new FILE(GENERATE) subcommand allows the use of generator
expressions to create such files so that they can be used with
add_custom_command for example.
2013-05-24 09:02:45 -04:00
Kitware Robot 3cc5d3883e CMake Nightly Date Stamp 2013-05-24 00:01:04 -04:00
Brad King 711073e8c6 Merge topic 'xcode-attributes-variant'
332350b Xcode: Support XCODE_ATTRIBUTE_ with [variant=<config>] (#12532)
2013-05-23 10:52:31 -04:00
Brad King 79e40f830f Merge topic 'xcode-shared-linker-flags-per-config'
bcda47d Xcode: Honor CMAKE_(MODULE|SHARED)_LINKER_FLAGS_<CONFIG> (#14161)
2013-05-23 10:52:17 -04:00
Clinton Stimpson 373faae5e1 Refactor how bundles and frameworks are supported.
Make handling of directory separators consistent between
non-bundle and bundle code.

Remove xcode specific flag from cmTarget when getting install_name.

Add (more) consistent convenience functions in cmTarget to get
directories inside of bundles and frameworks to add files to.

This refactor also fixes bug #12263 where frameworks
had the wrong install name when SKIP_BUILD_RPATH.

Also make install_name for frameworks consistent between Makefile
and Xcode generator.
2013-05-23 10:42:49 -04:00
Kitware Robot 5361270c6e CMake Nightly Date Stamp 2013-05-23 00:01:05 -04:00
Cédric OCHS 332350b9c4 Xcode: Support XCODE_ATTRIBUTE_ with [variant=<config>] (#12532)
Since commit c519bb2b (XCode: Also qoute [] as needed to set
build-configurations, 2011-04-05) we escape "[]" conditions for
XCODE_ATTRIBUTE_ settings.  However, we need to handle the "variant"
condition with a special case to map it only into the settings for the
matching configuration.
2013-05-22 15:20:10 -04:00
Brad King 3db29d2724 Merge topic 'join-genex'
a7ba452 Add the JOIN generator expression.
96ec314 Make it possible for any genex to have arbitrary content at the end.
bd638ee Rename the method determining if a genex accepts arbitrary content.
dc742fe Extract the ProcessArbitraryContent method.
2013-05-22 13:35:15 -04:00
Brad King ee334b6a0a Merge topic 'LinkLine-typedef'
776225d cmTarget: drop the unused local typedef LinkLine
2013-05-22 13:06:21 -04:00
Brad King 620599e25a Merge topic 'wizard-cleanup'
eca523f wizard: simplify control flow
f1d27bf wizard: fix warnings
2013-05-22 13:06:13 -04:00
Brad King 12eab7420d Merge topic 'ctest-parallel-env'
db43502 CTest: Read CTEST_PARALLEL_LEVEL from environment
2013-05-22 13:05:47 -04:00
Brad King 2da5b51b0c Merge topic 'string-MAKE_C_IDENTIFIER-subcommand'
0ab50ae string: Add MAKE_C_IDENTIFIER subcommand
2013-05-22 13:05:29 -04:00
Brad King fe4c1fb32e Merge topic 'add-EXPORT_NAME-property'
b5d6f5d Add EXPORT_NAME property.
2013-05-22 13:05:17 -04:00
Rolf Eike Beer 776225d379 cmTarget: drop the unused local typedef LinkLine 2013-05-22 12:54:57 -04:00
Rolf Eike Beer eca523fbd4 wizard: simplify control flow
Checking if a byte is 0 before checking it for something else doesn't do
anything useful. Also one can be sure that it can't be anything wanted
if the value was set to 0 immediately before.
2013-05-22 12:52:12 -04:00
Matthew Bentham bcda47d2a0 Xcode: Honor CMAKE_(MODULE|SHARED)_LINKER_FLAGS_<CONFIG> (#14161)
Refactor lookup of CMAKE_(EXE|MODULE|SHARED)_LINKER_FLAGS(|_<CONFIG>)
variables to ensure all combinations are handled.  Use the helper method
AddConfigVariableFlags to simplify the implementation.
2013-05-22 11:48:01 -04:00
Kitware Robot d337cb402f CMake Nightly Date Stamp 2013-05-22 00:01:06 -04:00
Rolf Eike Beer f1d27bf667 wizard: fix warnings
.../Source/cmakewizard.cxx: In member function ‘virtual void cmakewizard::AskUser(const char*, cmCacheManager::CacheIterator&)’:
.../Source/cmakewizard.cxx:31:35: warning: conversion to ‘int’ from ‘long unsigned int’ may alter its value [-Wconversion]
   if(!fgets(buffer, sizeof(buffer)-1, stdin))
                                   ^
.../Source/cmakewizard.cxx: In member function ‘virtual bool cmakewizard::AskAdvanced()’:
.../Source/cmakewizard.cxx:70:35: warning: conversion to ‘int’ from ‘long unsigned int’ may alter its value [-Wconversion]
   if(!fgets(buffer, sizeof(buffer)-1, stdin))

The compiler is (partly) right here: sizeof() returns a size_t, which often is
bigger as as int as it is unsigned long or something similar. Add an explicit
cast to get rid of that warning here, the buffer has a size of 4KiB, so the
value will fit into an int on all sane platforms.
2013-05-21 23:33:54 +02:00
Stephen Kelly 0ab50aea4c string: Add MAKE_C_IDENTIFIER subcommand 2013-05-21 15:29:34 -04:00
Stephen Kelly db43502326 CTest: Read CTEST_PARALLEL_LEVEL from environment
If no explicit "-j <n>" option is given on the command line then read
the parallel level from an environment variable.
2013-05-21 15:27:09 -04:00
Brad King 4825d70e83 Merge topic 'fix-include_directories-whitespace-handling'
2f84dfe include_directories: Fix handling of empty or space-only entries
2013-05-21 15:22:27 -04:00
Stephen Kelly 2f84dfec93 include_directories: Fix handling of empty or space-only entries
This is a regression introduced in commit 0d46e9a0 (Store includes
from the same include_directories call together., 2013-01-20).

Reported at

 http://thread.gmane.org/gmane.comp.programming.tools.cmake.user/46695/focus=7847
2013-05-21 15:20:46 -04:00
Brad King d2cd362c31 Merge topic 'fix-genex-comma-parse'
05bf972 Fix handling of commas in arbitrary content in genexes.
2013-05-21 15:19:26 -04:00
Brad King e41ef3d339 Merge topic 'unused-cleanup'
994dc70 Remove unused vector population.
44258cc Remove unused typedef.
0a4d7d8 Remove unused marker for a variable which is now used.
2013-05-21 15:19:22 -04:00
Brad King bdb0bab8ee Merge topic 'vs-asm-listing-location'
7e0c45e VS: Allow /Fa to set AssemblerListingLocation (#14153)
2013-05-21 15:14:19 -04:00
Brad King 1dbf0aac1b Merge topic 'fix-style'
3c7c332 Fix brace indentation.
c70b9b5 Fix style.
2013-05-21 15:13:49 -04:00
Brad King 5947d03987 Merge topic 'error-on-exported-missing-include-dir'
eabefa8 Error on relative path in INCLUDE_DIRECTORIES target property.
2013-05-21 15:13:26 -04:00
Brad King 52f9b2e803 Merge topic 'shared-libs-with-number-suffix'
342fc04 Recognize shared library files with a numerical suffix
2013-05-21 15:13:10 -04:00
Brad King 02ba802977 Merge topic 'cmake-help-generators-fix'
dea4d26 Docs: cmake -G selects a "build system" generator
2013-05-21 15:13:02 -04:00
Brad King a784e6f9f7 Merge topic 'fix-sublime-source-flags'
8e94767 Sublime: Honor source-level COMPILE_FLAGS property
2013-05-21 15:12:58 -04:00
Brad King f292ffb62c Merge topic 'vs-windows-forms'
79ec786 VS: Add Windows Forms Support
2013-05-21 15:12:48 -04:00
Stephen Kelly eabefa8b02 Error on relative path in INCLUDE_DIRECTORIES target property.
Add policy CMP0021 to preserve existing behavior in projects expecting
it from earlier CMake versions.
2013-05-21 14:59:17 -04:00
Stephen Kelly 342fc04010 Recognize shared library files with a numerical suffix
When processing link line entries we check for matches with known naming
patterns for static and shared libraries.  Teach this logic to recognize
numerical suffixes after shared library names such as "libfoo.so.1".
2013-05-21 14:50:16 -04:00
Stephen Kelly dea4d263d3 Docs: cmake -G selects a "build system" generator
-G is not only for makefile generators.
2013-05-21 14:43:42 -04:00
Stephen Kelly 8e947670cf Sublime: Honor source-level COMPILE_FLAGS property
Make the code match the comment.
2013-05-21 14:42:14 -04:00
Kitware Robot f206cce2ca CMake Nightly Date Stamp 2013-05-21 00:01:03 -04:00
Stephen Kelly 994dc70bc4 Remove unused vector population.
The call to GetEnabledLanguages does not have side-effects.
2013-05-20 17:47:21 +02:00
Brad King 7e0c45e9cf VS: Allow /Fa to set AssemblerListingLocation (#14153)
Generate the default AssemblerListingLocation through the flag map so
that it can be overridden by a user /Fa flag.  Also teach the VS 7-9
generators to map /Fa to AssemblerListingLocation.

While at it, fix the AssemblerListingLocation default value to have a
trailing slash after the configuration name.  This ensures it will be
treated as a directory and not a file name.
2013-05-20 08:40:09 -04:00
Kitware Robot 5261fde940 CMake Nightly Date Stamp 2013-05-20 00:01:03 -04:00
Kitware Robot 03071d30fe CMake Nightly Date Stamp 2013-05-19 00:01:03 -04:00
Stephen Kelly b5d6f5dd5b Add EXPORT_NAME property.
This allows for example, the buildsystem to use names like 'boost_any'
instead of the overly generic 'any', and still be able to generate
IMPORTED targets called 'boost::any'.
2013-05-18 10:00:48 +02:00
Stephen Kelly 3c7c332929 Fix brace indentation. 2013-05-18 09:54:50 +02:00
Kitware Robot cd82e3f8f5 CMake Nightly Date Stamp 2013-05-18 00:01:04 -04:00
Stephen Kelly 44258cc26c Remove unused typedef. 2013-05-17 09:01:01 +02:00
Kitware Robot edeabd18e6 CMake Nightly Date Stamp 2013-05-17 00:01:04 -04:00
Brad King 5e993a2822 Merge topic 'fix-moc-with-empty-COMPILE_DEFINITIONS'
33ed186 automoc: Read target defines unconditionally
2013-05-16 14:48:01 -04:00
Stephen Kelly 33ed186fce automoc: Read target defines unconditionally
Commit 429e3699 (Process COMPILE_DEFINITIONS as generator expressions
in QtAutomoc., 2013-01-25) introduced a check for the existence of the
COMPILE_DEFINITIONS property on the target before processing it.

At the time, compile definitions from linked targets were added to the
COMPILE_DEFINITIONS property by target_link_libraries. The way such
transitive compile definitions worked was changed in subsequent
commit a1c4905f (Use the link information as a source of compile
definitions and includes., 2013-02-12), so that the COMPILE_DEFINITIONS
property may be empty, despite the fact that there are definitions
which should be used.
2013-05-16 14:43:45 -04:00
Brad King a052a79949 Merge topic 'CTest-less-cd'
9969bfb CTest: avoid useless changing of directory
2013-05-16 14:43:44 -04:00
Brad King f122dd3d47 Merge topic 'vs-configurations'
42bb42d VS: Always initialize CMAKE_CONFIGURATION_TYPES in IDE generators
2013-05-16 14:38:40 -04:00
Brad King e477f21af2 Merge topic 'MemChecker-improvements'
10bc50e Tests: ignore Guard Malloc messages in MemChecker tests
159c3e9 Tests: add a test with custom options passed to valgrind
61ddb93 CTest: fix comment documenting cmBoundsCheckerParser class
cbdfcb0 Tests: add test for non-existent Valgrind suppression file
3b5b758 CTest: drop suppression for gcc 2.9.6 errors from default Valgrind flags
7752253 Tests: verify that memory checker output files are always present
abf1df4 Tests: remove code duplication in CTestTestMemCheck tests
f499422 CTest: remove unreachable code and CTestTestMemcheckUnknown test
dde6306 CTest: use an output file for Valgrind (#14110)
bcc0f3f Tests: create output files for all memory checkers
2013-05-16 14:38:35 -04:00
Brad King 62a9bdb466 Merge topic 'only-first-output-regex'
12cf7bc CTest: break after first regex match on output
2013-05-16 14:38:31 -04:00
Brad King 5d6e54ce50 Merge topic 'test_regex_doc'
74228e8 Doc: fix example for FAIL_REGULAR_EXPRESSION
2013-05-16 14:38:28 -04:00
Brad King 07d8492178 Merge topic 'positive-test-times'
e319e32 CTest: make sure never to report negative test times (#14132)
2013-05-16 14:38:20 -04:00
Brad King 0dc0e7d885 Merge topic 'doc-improvements'
7cc2805 Docs: Clarify wording "flag used" => "flag (to|will) be used"
2378a69 Docs: Clarify that CMAKE_*_(PREFIX|SUFFIX) affect filenames
56ca34d Docs: Update description of CMAKE_(BUILD_TYPE|CONFIGURATION_TYPES)
2bab472 VS10: add detailed comment about MIDL processing
e619111 Explain distribution of Win9x binary on all Windows versions.
5ca4336 FindwxWidgets: add DOC strings with usual style
f57800d Fix spelling and typos (product names)
bf019d7 Fix spelling and typos (non-binary)
ddac8d3 Fix spelling and typos (affecting binary data / module messages)
86832ce Fix spelling and typos (affecting users)
2013-05-16 14:38:07 -04:00
Brad King 07afd4f375 Merge topic 'update-kwsys'
b7593bf Merge branch 'upstream-kwsys' into update-kwsys
d0cdc68 KWSys 2013-05-06 (f4928d44)
0c04428 Merge branch 'upstream-kwsys' into update-kwsys
327c982 KWSys 2013-04-25 (709fb5c1)
2013-05-16 14:37:59 -04:00
Brad King 1843f2e0cd Merge topic 'eclipse-doc-typo'
b9c1f3b Eclipse: Add a missing space in the documentation
2013-05-16 14:37:37 -04:00
Brad King 27e4ddcd3f Merge topic 'EclipseUseGmakeErrorParser_13699'
c46b46b Use GmakeErrorParser instead of deprecated MakeErrorParser (fixes bug 0013699)
2013-05-16 14:37:32 -04:00
Brad King 3e6f5ff33c Merge topic 'QtDialogSearchText2'
f92d7e7 cmake-gui: use shortcut F only for "Find in Output"
6e57724 cmake-gui: Add function for going to next error message in Output window
7be2d8a cmake-gui: Change shortcut of the search field from Ctrl-F to Alt-E
4ce65e8 cmake-gui: Add search functions to the context menu of the Output widget
df3663b cmake-gui: Add search functions for Output window (#9733)
2013-05-16 14:37:21 -04:00
Brad King 8ec007083e Merge topic 'ninja_add_custom_command_windows'
e7c58f6 Ninja: use cd /D to set directory on Windows
2013-05-16 14:37:09 -04:00
Brad King d86d0e622a Merge topic 'xcode-explicitFileType'
5683146 Xcode: Use explicitFileType to mark source types (#14093)
2013-05-16 14:36:54 -04:00
Brad King 7a198773f3 Merge topic 'improve-get_filename_component-names'
7d1590e get_filename_component: Add DIRECTORY option (#14091)
ec1ba9b get_filename_component: Add explicit unit tests
2013-05-16 14:36:49 -04:00
Brad King e1178478b7 Merge topic 'msbuild-targets-in-subdirs'
ac9a5f4 ctest_build: Pass projectDir to GenerateBuildCommand
a6c0299 CTest: Simplify ctest_* command source/build dir lookup
1ca9318 VS: Add test for building MSBuild project in subdir
3cd4000 VS: Use .sln parser to build targets in subdirs with msbuild (#13623)
df035e4 VS: Create parser for Visual Studio .sln files
de8be9e Add projectDir parameter to GenerateBuildCommand
2013-05-16 14:36:27 -04:00
Brad King 9cdb5c0b54 Merge topic 'vs10-preprocessor-semicolons'
4e4688e VS 10: Escape ; as %3B in preprocessor definitions (#14073)
2013-05-16 14:36:19 -04:00
Brad King 1b4b64cd3c Merge topic 'vs-no-compiler-pdb-setting'
87c0d16 Ninja: Fix OBJECT_DIR placeholder path conversion
fb9f73d MSVC: Invoke 'link' directly for executables
42ba1b0 VS: Separate compiler and linker PDB files (#11899, #14062)
2013-05-16 14:36:11 -04:00
Stephen Kelly a7ba4520c7 Add the JOIN generator expression.
This generator expression joins a list with a separator. The separator
may contain arbitrary content, such as commas, which is ordinarily a
delimiter in the generator expression syntax.
2013-05-16 19:36:31 +02:00
Stephen Kelly 96ec3147bb Make it possible for any genex to have arbitrary content at the end. 2013-05-16 19:36:31 +02:00
Stephen Kelly bd638ee20f Rename the method determining if a genex accepts arbitrary content.
The meaning of this will be expanded to generator expressions with
more than a single parameter.
2013-05-16 19:36:31 +02:00
Stephen Kelly dc742fe4be Extract the ProcessArbitraryContent method. 2013-05-16 19:36:31 +02:00
Stephen Kelly 0a4d7d883c Remove unused marker for a variable which is now used. 2013-05-16 19:34:21 +02:00
Stephen Kelly c70b9b51d9 Fix style. 2013-05-16 19:33:13 +02:00
Stephen Kelly 05bf9721e4 Fix handling of commas in arbitrary content in genexes.
As the comma is the parameter separator, it needs to be re-added
when evaluating to reconstruct arbitrary content.
2013-05-16 19:25:06 +02:00
John Farrier 79ec7868d0 VS: Add Windows Forms Support
Add support to maintain designer functionality for Visual Studio C++
Windows Forms projects.  Also add a test project showing how to use
the CMakeLists.txt file and, when successfully configured, will allow
use of the designer for the included form.
2013-05-16 13:06:44 -04:00
Brad King 272431a84f Begin post-2.8.11 development 2013-05-16 12:44:26 -04:00
Robert Maynard 0ad0c37206 CMake 2.8.11 2013-05-15 11:17:10 -04:00
Rolf Eike Beer 9969bfb773 CTest: avoid useless changing of directory
At this point we do not care what the current directory is, as nothing that
requires a specific directory is done. Just make sure that at the end we are
back in the same directory as at the start.
2013-05-15 08:50:22 +02:00
Kitware Robot 5dd8c01429 CMake Nightly Date Stamp 2013-05-15 00:01:03 -04:00
Kitware Robot 26ad32031c CMake Nightly Date Stamp 2013-05-14 00:01:03 -04:00
Brad King 42bb42d197 VS: Always initialize CMAKE_CONFIGURATION_TYPES in IDE generators
Initialize the CMAKE_CONFIGURATION_TYPES cache entry early during
EnableLanguage like the Xcode generator does.  Avoid depending on
the MSVC compiler information module to do it.  Otherwise code like

  project(MyProj NONE)

sets CMAKE_CONFIGURATION_TYPES late (in GenerateConfigurations), and
to only "Debug" and "Release" instead of the standard set of 4.

Reported-by: Paul Smith <paul@mad-scientist.net>
2013-05-13 11:07:46 -04:00
Kitware Robot a3f106dedf CMake Nightly Date Stamp 2013-05-13 00:01:02 -04:00
Kitware Robot 90dad912f8 CMake Nightly Date Stamp 2013-05-12 00:01:03 -04:00
Rolf Eike Beer 12cf7bc507 CTest: break after first regex match on output
PASS_REGULAR_EXPRESSION and FAIL_REGULAR_EXPRESSION both take a list of expressions.
Stop searching if the first of those has matched the output as the result will not
change anymore.
2013-05-11 12:15:38 +02:00
Rolf Eike Beer 74228e8486 Doc: fix example for FAIL_REGULAR_EXPRESSION
The example used PASS_REGULAR_EXPRESSION instead of FAIL...
2013-05-11 12:02:05 +02:00
Kitware Robot 1c575ab72f CMake Nightly Date Stamp 2013-05-11 00:01:06 -04:00
Rolf Eike Beer e319e32b8c CTest: make sure never to report negative test times (#14132)
Because of clock scew between processors or just because of someone changing
the system time the end timestamp may be before the start time. Reporting a
negative time doesn't any sense, just report zero there as it already happens
for really fast tests.
2013-05-10 20:50:22 +02:00
Kitware Robot a3e7c94fd7 CMake Nightly Date Stamp 2013-05-10 00:01:03 -04:00
Rolf Eike Beer 61ddb9319b CTest: fix comment documenting cmBoundsCheckerParser class
This was obviously copied from Source/cmGlobalXCodeGenerator.cxx during
implementation but the comment was forgotten.
2013-05-09 19:25:50 +02:00
Rolf Eike Beer 3b5b758915 CTest: drop suppression for gcc 2.9.6 errors from default Valgrind flags
The --workaround-gcc296-bugs has been part of the default Valgrind flags since
Valgrind support was added in commit 5b232ded15
(ENH: Add initial memory check support which works for Valgrind, 2003-12-15).
The Valgrind manpage says that this option should be avoided if not really
needed as it may cause real errors to get ignored. If someone uses a compiler
that really needs the flag this flag should be set by the user explicitely.
Most users will never set any flags and probably never notice that they use a
flag they shouldn't.
2013-05-09 19:24:53 +02:00
Rolf Eike Beer f4994223bb CTest: remove unreachable code and CTestTestMemcheckUnknown test
The memory checker command can't be quoted at this point, because previously it
has been tested that the given file exists, which will fail if the name is
quoted. The CTestTestMemcheckUnknown test aimed to test this case, has always
failed to do so and serves no useful purpose therefore.
2013-05-09 19:22:29 +02:00
Rolf Eike Beer dde6306a48 CTest: use an output file for Valgrind (#14110)
This makes sure Valgrind output will not screw up tests that match on the
output.
2013-05-09 19:22:01 +02:00
Kitware Robot cf4869ba08 CMake Nightly Date Stamp 2013-05-09 00:01:03 -04:00
Kitware Robot 619fa2cce8 CMake Nightly Date Stamp 2013-05-08 00:01:03 -04:00
Robert Maynard 6162e0ff2d CMake 2.8.11-rc4 2013-05-07 11:56:31 -04:00
Robert Maynard b882ef7565 Merge branch 'release' 2013-05-07 11:33:14 -04:00
Andreas Mohr 7cc2805cd6 Docs: Clarify wording "flag used" => "flag (to|will) be used"
The phrase "flag used" is somewhat imprecise, so extend it to stress
intentions.

Also correct:

- "Flag" => "Flags"
- "[CMAKE_BUILD_TYPE]" => "<CONFIG>"
2013-05-07 08:42:21 -04:00
Andreas Mohr 2378a698a9 Docs: Clarify that CMAKE_*_(PREFIX|SUFFIX) affect filenames
Add "filename" to the descriptions.
2013-05-07 08:42:21 -04:00
Andreas Mohr 56ca34dbbd Docs: Update description of CMAKE_(BUILD_TYPE|CONFIGURATION_TYPES)
Bring woefully outdated descriptions somewhat up to speed.
2013-05-07 08:42:20 -04:00
Andreas Mohr 2bab472ecb VS10: add detailed comment about MIDL processing 2013-05-07 08:42:20 -04:00
Andreas Mohr e619111d91 Explain distribution of Win9x binary on all Windows versions. 2013-05-07 08:42:20 -04:00
Andreas Mohr f57800d6f5 Fix spelling and typos (product names)
API, Borland, MinGW, UNIX, Mac OS X.
2013-05-07 08:42:20 -04:00
Andreas Mohr bf019d765d Fix spelling and typos (non-binary) 2013-05-07 08:39:19 -04:00