Commit Graph

16647 Commits

Author SHA1 Message Date
Brad King 15fb102278 VS: Refactor handling of resx headers
Move generation of the ClInclude element to WriteHeaderSource.
2014-07-29 15:06:30 -04:00
Brad King c2ef6d238a VS: Refactor handling of "header" sources in VS >= 10
Create a WriteHeaderSource method to handle writing of sources
classified by cmGeneratorTarget as header files.  This will be
useful to add special VS-specific handling for some headers.
2014-07-29 15:06:28 -04:00
Brad King 2df389115e VS: Refactor handling of "extra" sources in VS >= 10
Create a WriteExtraSource method to handle writing of sources not
classified by cmGeneratorTarget for any particular purpose.  This
will be useful to add special VS-specific handling for some sources.
2014-07-29 15:06:26 -04:00
Brad King 143b40051a VS: Convert 'WriteSource' tool argument to std::string 2014-07-29 15:06:24 -04:00
Brad King 38065563b6 Merge topic 'vs10-system-hook'
e58f9753 VS: Add a hook to adapt to SystemName and SystemVersion
d0dd28fa VS: Save system name and version in global generator members
2014-07-29 08:52:24 -04:00
Brad King 104a4cb783 Merge topic 'vs10-comment-typo'
99e14a38 cmGlobalVisualStudio10Generator: Fix typo KHLM => HKLM
2014-07-29 08:52:23 -04:00
Brad King 05d064fec3 Merge topic 'xcode-6-librarian-flags'
608cf814 Xcode: Fix static library creation for Xcode 6 (#15038)
2014-07-29 08:52:17 -04:00
Kitware Robot b6acd96f7f CMake Nightly Date Stamp 2014-07-29 00:01:12 -04:00
Brad King e58f97531a VS: Add a hook to adapt to SystemName and SystemVersion
Add a virtual cmGlobalVisualStudio10Generator::InitializeSystem method
called from SetSystemName once the SystemName and SystemVersion members
have been populated.  This will give VS version-specific generators a
chance to recognize and adapt to the target system.
2014-07-28 16:26:00 -04:00
Brad King d0dd28fa92 VS: Save system name and version in global generator members
Add to cmGlobalVisualStudio10Generator members for SystemName and
SystemVersion and populate them in SetSystemName.
2014-07-28 16:25:08 -04:00
Gilles Khouzam 99e14a3865 cmGlobalVisualStudio10Generator: Fix typo KHLM => HKLM 2014-07-28 16:23:54 -04:00
Brad King 608cf8149c Xcode: Fix static library creation for Xcode 6 (#15038)
Xcode 6 introduced an 'OTHER_LIBTOOLFLAGS' setting for the "Other
Librarian Flags" of a static library.  Now 'OTHER_LDFLAGS' are ignored.
Teach the Xcode generator to choose the correct name for the build
setting based on the type of target and the version of Xcode.

Inspired-by: Jamie Kirkpatrick <jkp@spotify.com>
2014-07-28 13:06:33 -04:00
Brad King 0f06bb52ba Merge topic 'sanitizer_handle_more_pids'
5d40d88e Handle more than one process with sanitizer errors.
2014-07-28 10:35:54 -04:00
Brad King 2699ac5ef7 Merge topic 'fix-re-cmake-with-compiler'
8981513a CMakeDetermineCompiler: Simplify CMAKE_<LANG>_COMPILER default force-cache
731427a6 cmGlobalGenerator: Do not re-add CMAKE_<LANG>_COMPILER
2014-07-28 10:35:53 -04:00
Brad King fd0229e8c5 Merge topic 'fix_qt4_automoc_leak'
0e88b1d6 Fix memory leak of local generator detected by LeakSanitizer.
2014-07-28 10:35:51 -04:00
Brad King 68f4a0ee30 Merge topic 'cpack-ifw-generator'
b9be4d21 Help: Add notes for topic 'cpack-ifw-generator'
73b336c9 CPackIFW: Replace use of strftime with cmTimestamp
44850a26 CPack: Add an "IFW" generator for Qt Framework Installer
2014-07-28 10:35:49 -04:00
Brad King 107db681e3 Merge topic 'vs-escaping'
09164c63 VS: Encode more content correctly in vcxproj files (#15031)
29a0642b VS: Encode mapped flag values in XML project files (#15031)
8fa087ab cmVisualStudioGeneratorOptions: Simplify XML escaping API
1c209ac1 cmIDEOption: Store mapped flag values as a vector<string>
91c93354 cmVisualStudio10TargetGenerator: Remove dupilcate line
2014-07-28 10:35:45 -04:00
Brad King 90f6de8a01 Merge topic 'fix_tar_leaks'
57a2df22 Fix memory leaks in extract tar.
2014-07-28 10:35:44 -04:00
Brad King 9303da53ce Merge topic 'genex-head-sensitive-conditions'
7b743a2e cmTarget: Avoid re-computing head-independent link interfaces
807e4ffe Genex: Track whether an expression depends on the 'head' target
46099b82 cmTarget: Move ComputeLinkImplementation* to internals
438d9c7c cmTarget: Re-order link interface map lookup logic
fe665fdd cmTarget: Refactor link interface map storage
9d13e167 cmTarget: Remove duplicate link interface map
2014-07-28 10:35:42 -04:00
Brad King d128c6c9b3 Merge topic 'target-drop-build-setting-cache'
133cd996 cmTarget: Drop internal cache of build properties
a4d58722 cmTarget: Drop internal cache of link interface usage requirements
2014-07-28 10:35:40 -04:00
Brad King 73b336c9f1 CPackIFW: Replace use of strftime with cmTimestamp
The latter is more portable.
2014-07-28 10:24:03 -04:00
Konstantin Podsvirov 44850a267d CPack: Add an "IFW" generator for Qt Framework Installer
Add support for packaging with the Qt Framework Installer tools:

 http://qt-project.org/doc/qtinstallerframework/index.html

Reviewed-by: Nils Gladitz <nilsgladitz@gmail.com>
2014-07-28 10:24:03 -04:00
Kitware Robot a971de3adf CMake Nightly Date Stamp 2014-07-28 00:01:06 -04:00
Kitware Robot a31b42a46f CMake Nightly Date Stamp 2014-07-27 00:01:06 -04:00
Kitware Robot 06a190b10a CMake Nightly Date Stamp 2014-07-26 00:01:07 -04:00
Kitware Robot 4d7b9375b0 CMake Nightly Date Stamp 2014-07-25 00:01:07 -04:00
Brad King 731427a646 cmGlobalGenerator: Do not re-add CMAKE_<LANG>_COMPILER
The cmGlobalGenerator::ResolveLanguageCompiler method, invoked only by
Makefile generators, contains code originally added by commit v2.4.0~796
(..., add new generators for msys and mingw, 2005-12-22) to compute the
full path to the compiler and save the result back into the cache value.
Since then the CMakeDetermine*Compiler modules have learned to resolve
the full path to the compiler and save it in CMake*Compiler.cmake files
configured in the build tree.  The value of CMAKE_<LANG>_COMPILER in the
cache is now only for reference of what the user originally specified.
The full path is now available in a normal variable of the same name,
and this is used by project code and the generators.

When the user specifies -DCMAKE_<LANG>_COMPILER=name on the command-line
of an existing build tree that uses a Makefile generator, it is first
stored in the cache with an uninitialized type.  Then later when
ResolveLanguageCompiler updates the cache entry and sets the type to
FILEPATH, cmMakefile::AddCacheDefinition does CollapseFullPath on the
"name" and ends up with something like "$PWD/name" which is unlikely to
be correct.  Furthermore, cmMakefile::AddCacheDefinition proceeds to
remove the normal variable of the same name, so the value originally
saved in CMake<LANG>Compiler.cmake is ignored and the generators use the
wrong path to the compiler.

Resolve this by dropping the code from ResolveLanguageCompiler that
touches the cache value of CMAKE_<LANG>_COMPILER.  As explained above it
is no longer needed anyway.
2014-07-24 13:31:14 -04:00
Bill Hoffman 0e88b1d6d9 Fix memory leak of local generator detected by LeakSanitizer. 2014-07-24 11:33:54 -04:00
Bill Hoffman 5d40d88e00 Handle more than one process with sanitizer errors.
Since the Sanitizers write out one log file per process, a single
test might have more than one log file. This commit allows ctest
to read all of the log files found for a particual test.
2014-07-24 11:25:59 -04:00
Kitware Robot afe21fc3c4 CMake Nightly Date Stamp 2014-07-24 00:01:10 -04:00
Brad King 09164c637b VS: Encode more content correctly in vcxproj files (#15031)
In cmVisualStudio10TargetGenerator, add missing cmVS10EscapeXML
calls around paths to source and object files, custom command
dependencies and outputs, and platform name/version values.
2014-07-23 15:14:47 -04:00
Brad King 29a0642ba7 VS: Encode mapped flag values in XML project files (#15031)
Teach cmVisualStudioGeneratorOptions to encode FlagMap entries
and the FlagString value properly in vcproj/vcxproj XML files.
Update the one existing call site that pre-encoded the value
to not do so.
2014-07-23 15:01:46 -04:00
Brad King 8fa087ab38 cmVisualStudioGeneratorOptions: Simplify XML escaping API
Accept arguments as std::string to avoid c_str() calls.
2014-07-23 14:56:51 -04:00
Brad King 1c209ac165 cmIDEOption: Store mapped flag values as a vector<string>
Some FlagMap entries are ;-lists.  Store values as vector<string> so
that individual values may contain ';' characters.  Delay the
construction of the final ;-list until writing to the VS project file.
With this approach the generated file may contain ;-separated values
that contain encoded ';' characters.
2014-07-23 14:18:53 -04:00
Brad King 91c933546d cmVisualStudio10TargetGenerator: Remove dupilcate line 2014-07-23 13:23:10 -04:00
Bill Hoffman 57a2df224a Fix memory leaks in extract tar. 2014-07-23 11:13:17 -04:00
Brad King fe4e6ed991 Merge topic 'refactor-makerule-path-conversion'
848fab95 cmGlobalVisualStudio7Generator: Remove unused variable
85cea8a7 cmDepends: Refactor object file path conversion
e7ee892b cmLocalGenerator: Fix AddBuildTargetRule object file path conversion
9f92a78b cmLocalGenerator: Rename 'MAKEFILE' to 'MAKERULE'
2014-07-23 09:44:35 -04:00
Brad King 91d21518ae Merge topic 'refactor-generator-startup'
f5c0efdb cmGlobalGenerator: Create a non-virtual 'DoGenerate' method
2014-07-23 09:44:34 -04:00
Kitware Robot 3e3ab2adb4 CMake Nightly Date Stamp 2014-07-23 00:01:09 -04:00
Brad King 848fab9575 cmGlobalVisualStudio7Generator: Remove unused variable 2014-07-22 15:24:57 -04:00
Brad King 85cea8a7af cmDepends: Refactor object file path conversion
Delay conversion of the path to object files (on the left-hand side
of dependencies) until just before they are written.  Also do not
convert the format of paths written to the 'depend.internal' file.
This is consistent with the way the right-hand side of dependencies
are already handled.
2014-07-22 15:24:57 -04:00
Brad King f5c0efdbe4 cmGlobalGenerator: Create a non-virtual 'DoGenerate' method
Make the virtual 'Generate' method protected.  Make 'DoGenerate'
the main entry point to generation.  This gives cmGlobalGenerator
a chance to do some early operations before the individual
generator-specific implementations take over.
2014-07-22 15:05:36 -04:00
Brad King e7ee892b39 cmLocalGenerator: Fix AddBuildTargetRule object file path conversion
The object file list is constructed for a shell, not a Makefile rule.
2014-07-22 12:38:08 -04:00
Brad King 9f92a78be2 cmLocalGenerator: Rename 'MAKEFILE' to 'MAKERULE'
Rename the internal enumeration value for converting paths destined
for use in Makefile rule syntax.
2014-07-22 12:27:57 -04:00
Kitware Robot 08bb09a944 CMake Nightly Date Stamp 2014-07-22 00:01:08 -04:00
Brad King 7b743a2e76 cmTarget: Avoid re-computing head-independent link interfaces 2014-07-21 13:04:04 -04:00
Brad King 807e4ffeef Genex: Track whether an expression depends on the 'head' target 2014-07-21 13:02:22 -04:00
Brad King 46099b82ed cmTarget: Move ComputeLinkImplementation* to internals
There are no external callers, and this will allow the methods to see
the full OptionalLinkImplementation internal structure.
2014-07-21 11:55:56 -04:00
Brad King 438d9c7c82 cmTarget: Re-order link interface map lookup logic
In GetLinkInterface, GetLinkInterfaceLibraries, and
GetImportLinkInterface, lookup the HeadToLinkInterfaceMap for the
current configuration first, and then index it by head target.  In
GetLinkImplementationLibrariesInternal, lookup the
HeadToLinkImplementationMap for the current configuration first, and
then index it by head target.
2014-07-21 11:43:30 -04:00
Brad King fe665fdda8 cmTarget: Refactor link interface map storage
Convert LinkInterfaceMapType and LinkImplMapType to nested maps that
index on configuration first and 'head' target second.
2014-07-21 11:26:10 -04:00