summaryrefslogtreecommitdiffstats
path: root/Source/cmVisualStudio10TargetGenerator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'custom-command-depend'Brad King2010-12-141-4/+6
|\ | | | | | | | | | | ced1d5e Skip file-level dependencies on custom targets (#11332) e30a775 Improve signature of cmLocalGenerator::GetRealDependency
| * Improve signature of cmLocalGenerator::GetRealDependencyBrad King2010-12-081-4/+6
| | | | | | | | Allow file-level custom command dependencies to be skipped.
* | Enable 64-bit tools with VS 2010 Express (#9981, #10722)Brad King2010-12-011-0/+9
|/ | | | | | | The Express Edition does not come with 64-bit tools, but one can install the "Microsoft Windows SDK v7.1" to get them. Detect this case and check for the SDK. If found, set PlatformToolset to use the SDK tools. Otherwise, fail with a concise and informative error.
* VS10: Order .vcxproj dependencies deterministically (#10502)Brad King2010-10-071-2/+5
| | | | | This avoids needless modification of the project files during regeneration.
* Merge topic 'vs10-custom-comments'Brad King2010-10-051-2/+28
|\ | | | | | | | | 2596e16 VS10: Encode custom command comments for echo (#11283)
| * VS10: Encode custom command comments for echo (#11283)Brad King2010-10-011-2/+28
| | | | | | | | | | | | | | VS10 uses MSBuild underneath. The <Message></Message> CDATA are just appended to "echo" and executed as a single command. Encode the message such that it can be passed to echo. Convert newlines to tabs since they cannot be printed this way.
* | VS10: Skip targets with no linker language (#11230)Brad King2010-09-301-5/+13
|/ | | | | | | In targets with no non-header files the linker language cannot be determined. Since the target project file cannot be generated at all in this case, give up as soon as it is detected. Otherwise the generation code may try to run with uninitialized information.
* VS10: Use $(IntDir) for per-source output directory (#11270)Brad King2010-09-271-1/+1
| | | | | | | The original implementation of this generator accidentally used "$(Configuration)/" for source-specific object file names. Correct it to use "$(IntDir)/" just like the generators for all previous VS versions. The target-wide output directory is "$(IntDir)/" already.
* VS2010: Set IntDir for utility and global targets.David Cole2010-09-131-28/+45
| | | | | | | | | | | | | | | VS2010 uses IntDir as the location for writing log files for what happens during custom build steps. With no IntDir settings, all ExternalProject usage within the same CMakeLists.txt file would result in multiple utility targets all trying to use the same custom build log files. With parallel builds, they would try to use them simultaneously and result in file access errors, preventing the builds from completing successfully. Now each utility target has its own IntDir setting, and so, its own custom build rule log files.
* VS2010: Honor PROJECT_LABEL target property (#10611)David Cole2010-09-091-0/+7
|
* Fix targets with . in the name for VS 10 IDE.Bill Hoffman2010-09-061-3/+2
|
* Merge topic 'target-dependencies-const'Brad King2010-08-311-1/+1
|\ | | | | | | | | 95b3bb5 Restore GetTargetDirectDepends const return
| * Restore GetTargetDirectDepends const returnBrad King2010-08-251-1/+1
| | | | | | | | | | The returned set should never be modified. Restore 'const' correctness unnecessarily removed by commit 6903d2df (remove const, 2008-01-30).
* | VS2010: Disable PDBs when there is no debug infoRobert Goulet2010-08-191-0/+9
|/ | | | | | | | | | | | | | When none of the options /Z7, /Zi and /ZI are specified in the cmake project settings, the project will open in the editor with "Program Database" as the default debug information format, ending up always generating PDBs regardless of project configuration. Modify the output project file so that if the debug information format is not specified in the cmake project settings it will default to no PDB generated, just like all the previous other Visual Studio versions. This problem comes from the fact that Microsoft changed the default setting of the debug information format to be "Program Database" instead of "Disabled".
* Fix nested source groups with VS 10 (#9863)Christoph Watzl2010-06-111-0/+49
| | | | | Add intermediate (but empty) source group filters for the container groups.
* Add STATIC_LIBRARY_FLAGS_<CONFIG> property (#10768)Brad King2010-05-281-5/+10
| | | | This is a per-configuration version of STATIC_LIBRARY_FLAGS.
* Implement LINK_FLAGS_<CONFIG> in VS 10 generatorBrad King2010-05-281-0/+14
| | | | | Add support for the per-config LINK_FLAGS property in VS 10. This was simply missing.
* Fix generation of .filters files for Visual Studio 2010 generator.David Cole2010-05-141-1/+7
| | | | | | Only generate .filters files if they are different than the last time they were generated. This should prevent the unnecessary reloads being triggered with Visual Studio 2010 builds.
* Fix for bug 10001, make vs 10 compiler .rc files correctlyBill Hoffman2009-12-091-30/+39
|
* Use backslashes in VS 10 library dependenciesBrad King2009-11-181-0/+1
| | | | | | | | | The list of libraries to be linked into the current target must be specified using windows slashes to that UNC paths such as \\server\share\somelibrary.lib work correctly. See issue #9917.
* Revert "Always set OutputPath in VS 10 projects"Brad King2009-10-261-3/+0
| | | | | | | | | | | The reverted commit attempted to preserve the "../" PREFIX work-around for avoiding per-config build directories in the VS IDE generators. However, the original reporter has concluded that a "../" PREFIX no longer works everywhere in VS 10 project files anyway. Rather than set OutputPath, this commit restores the $(OutDir)$(TargetName)$(TargetExt) default. See issue #9768.
* Fix the showing of non-cpp files in the IDEBill Hoffman2009-10-231-3/+7
|
* Detect and set Unicode character set in VS 10Brad King2009-10-231-11/+51
| | | | | | | | This commit teaches the VS 10 generator to detect the -D_UNICODE option in preprocessor definitions and set the CharacterSet attribute to the value 'Unicode'. This was already done for other VS IDE versions. See issue #9769
* Always set OutputPath in VS 10 projectsBrad King2009-10-231-4/+9
| | | | | | | | | | | The default $(OutDir)$(TargetName)$(TargetExt) for this value works in most cases because we set the three properties. However, if the target property PREFIX contains a path component (not documented but happens to work in other VS generators) we drop it from TargetName and do not put it in OutDir either. This commit corrects the resulting path by setting the OutputPath property explicitly with the full path. See issue #9768.
* Fix Microsoft.Cpp.$(Platform).user.props in VS10b2Brad King2009-10-221-6/+4
| | | | | | | MS changed the location of the Microsoft.Cpp.$(Platform).user.props file. This commit teaches the VS 10 generator about the new location. See issue #9759.
* WIP: VS 10 Win64 generatorBrad King2009-10-221-6/+9
| | | | See issue #9754.
* Fix for bugs #9756, #9690 and #9755, header files were not included, and ↵Bill Hoffman2009-10-221-8/+25
| | | | link_directories we incorrect
* Do not link library dependencies in VS solutionsBrad King2009-10-201-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | In VS 8 and greater this commit implements add_dependencies(myexe mylib) # depend without linking by adding the LinkLibraryDependencies="false" option to project files. Previously the above code would cause myexe to link to mylib in VS 8 and greater. This option prevents dependencies specified only in the solution from being linked. We already specify the real link library dependencies in the project files, and any project depending on this to link would not have worked in Makefile generators. We were already avoiding this problem in VS 7.1 and below by inserting intermediate mylib_UTILITY targets. It was more important for those versions because if a static library depended on another library the librarian would copy the dependees into the depender! This is no longer the case with VS 8 and above so we do not need that workaround. See issue #9732.
* Fix use of module .def files for MS toolsBrad King2009-09-291-0/+5
| | | | | | | We recognize .def source files and map them to the /DEF:<file> option in the MSVC tools. Previously this worked only for shared libraries. This commit cleans up the implementation and makes it work for executables too. See issue #9613.
* Do not parse preprocessor defs for VS 10 link/libBrad King2009-09-291-8/+8
| | | | | | | When constructing cmVisualStudioGeneratorOptions to parse options for tools 'link' and 'lib' the tool type is now Linker, not Compiler. This tells it not to recognize flags starting in '/D' as preprocessor macros, such as the '/DEF:<file>' linker option. See issue #9613.
* Make sure LINK_FLAGS are seen by generator, fix for part of bug#9613Bill Hoffman2009-09-291-0/+6
|
* Convert CMake to OSI-approved BSD LicenseBrad King2009-09-281-14/+9
| | | | | | | This converts the CMake license to a pure 3-clause OSI-approved BSD License. We drop the previous license clause requiring modified versions to be plainly marked. We also update the CMake copyright to cover the full development time range.
* Put custom commands in topological order for VS 10Brad King2009-09-071-7/+27
| | | | | | | | | | | | | | | | Visual Studio 10 uses MSBuild to drive the build. Custom commands appear in MSBuild files inside CustomBuild elements, which appear inside ItemGroup elements. The Outputs and AdditionalInputs elements of each CustomBuild element are evaluated according to timestamps on disk. MSBuild does not use inputs/outputs to order CustomBuild steps within a single ItemGroup or across multiple ItemGroup elements. Instead we must put only unrelated CustomBuild elements in a single ItemGroup and order the item groups from top to bottom using a topological order of the custom command dependency graph. This fixes CustomCommand and ExternalProject test failures, so we remove the expectation of these failures.
* Do Windows command line escapes for VS 10 tooBrad King2009-09-071-12/+23
| | | | | | | | | Until now the VS 10 generator did no Windows command-line escaping and just did XML escapes. This commit teaches the generator to use the same command-line escape addition code used by other generators. The script construction method cmLocalVisualStudioGenerator::ConstructScript need not do XML escapes. Each VS generator version adds the XML escapes necessary for that version.
* Allow for static libraries to depend on other targets so that the MSBuild ↵Bill Hoffman2009-08-051-5/+0
| | | | runs build things in the correct order
* ENH: remove INCLUDE_EXTERNAL_MSPROJECT name hack, and use target properties ↵Bill Hoffman2009-07-141-20/+17
| | | | instead, fix VXExternalInclude test for VS10
* ENH: almost all tests passing in vs 10, commit fixes preprocess and starts ↵Bill Hoffman2009-07-131-28/+52
| | | | vs external project
* ENH: add group support and fix borland errorBill Hoffman2009-07-111-41/+129
|
* ENH: change so rules show up in GUI, must be windows pathBill Hoffman2009-07-101-3/+6
|
* ENH: only 5 failing tests for VS 10Bill Hoffman2009-07-101-45/+173
|
* ENH: Pass config to cmTarget::GetLinkerLanguageBrad King2009-07-081-3/+6
| | | | | | This passes the build configuration to most GetLinkerLanguage calls. In the future the linker language will account for targets linked in each configuration.
* ENH: Simpler cmTarget::GetLinkerLanguage signatureBrad King2009-07-071-8/+4
| | | | | | | This method previously required the global generator to be passed, but that was left from before cmTarget had its Makefile member. Now the global generator can be retrieved automatically, so we can drop the method argument.
* ENH: fix line lengthBill Hoffman2009-06-281-6/+31
|
* ENH: fix line length issuesBill Hoffman2009-06-261-10/+14
|
* ENH: remove debug printBill Hoffman2009-06-261-2/+0
|
* ENH: add obj file support and remove a warningBill Hoffman2009-06-261-8/+37
|
* ENH: first pass at VS 10, can bootstrap CMake, but many tests still failBill Hoffman2009-06-251-0/+965