summaryrefslogtreecommitdiffstats
path: root/Source/cmVisualStudio10TargetGenerator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'use_devenv_forvs2010'Brad King2011-06-241-1/+15
|\ | | | | | | | | | | | | | | 8555c2b Look for VCExpress as a possible build tool as well as devenv. ed0075b Use relative paths for custom command inputs. 38368d5 Revert "With very long file names, VS 2010 was unable to compile files." 8cd66dc Use devenv instead of msbuild for vs2010.
| * Use relative paths for custom command inputs.Bill Hoffman2011-06-221-10/+15
| | | | | | | | | | | | For source files we use full paths. This allows for longer directory names with VS2010. However, the use of full paths causes the GUI to not display the custom commands.
| * Revert "With very long file names, VS 2010 was unable to compile files."Bill Hoffman2011-06-211-1/+10
| | | | | | | | This reverts commit 945f2c2214bc80f513ed08ebe2c8003263a4ee56.
* | Fix for bug #11927, external project git clone step always runs vs10.Bill Hoffman2011-06-071-0/+11
|/ | | | | | | | | In cmMakefile.cxx GetCMakeCFGInitDirectory is replaced with GetCMakeFilesDirectory for .rule files. In some cases with external projects, that directory will not exist. With vs10 the .rule files must exist or the rule will run with every build. This fix creates the path that the .rule file is in. In addition, it is now a CMake error if the .rule file can not be created.
* VS10: Write header-only files in correct xml element (#11925)David Cole2011-05-231-5/+5
|
* Fix for bug where VS2010 did not use .obj files as part of the build.Bill Hoffman2011-04-011-5/+21
| | | | | | | For VS2010 if a precompiled .obj file was the output of a custom commad, it was used as part of the build. If it was not, then VS did not use it as part of the build. This commit updates the test to check for this issue, and fixes the problem. This fixes bugs #0011891 and
* With very long file names, VS 2010 was unable to compile files.Bill Hoffman2011-03-231-10/+1
| | | | | | | | At some point in the past VS 2010 failed some tests with custom commands when relative paths were not used. It seems that those problems have been fixed. However, the relative paths apparently are appended to the current working directoy before vs accesses the file. So, with a long path, relative paths cause it to create a combined path that is too long.
* VS2010: Fixed GenerateManifest flag (#10704)David Cole2011-02-091-1/+13
| | | | | | | | Thanks to "McBen <viertelvor12@gmx.net>" for the patch. (Did not preserve original commit author information because we have a push check for first and last name, and do not accept authors with only an alias...)
* VS10: Escape double quote chars in defines for rc files (#11695)David Cole2011-01-261-4/+7
| | | | | | | | To get rc defines to work in the VS10 IDE requires \" when constructing PreprocessorDefinitions strings. This is different than defines for cl. Also, per-file rc defines were not being generated. Fix that, too.
* VS10: Load projects with obj "source" files (#11147)David Cole2011-01-211-49/+54
| | | | | | | | WriteCLSources should skip source files with "obj" extensions since WriteObjSources has already written them into the vcxproj file. Likewise, WriteGroupSources should skip source files with "obj" extensions to avoid receiving "item ... already exists under the filter" project-load-time error messages from Visual Studio.
* Merge topic 'fix_source_groups_for_custom_targets_vs10'Brad King2011-01-111-1/+1
|\ | | | | | | | | 7bbab25 Add support for source files in custom targets for VS 10 (Bug#11330).
| * Add support for source files in custom targets for VS 10 (Bug#11330).Bill Hoffman2011-01-061-1/+1
| | | | | | | | | | In VS10, CMake was not adding the source files that were in the SOURCES list for add_custom_target. This patch fixes that issue.
* | Merge topic 'fix-11461-add-midl-vs10'Brad King2011-01-111-3/+23
|\ \ | |/ |/| | | | | | | | | e33cbda VSMidl Test: Use correct include_directories with VS6 (#11461) 262da91 Prohibit space in HOME value for VSMidl test. 13caaa3 VS10: Finish Midl support (#11461)
| * VS10: Finish Midl support (#11461)David Cole2011-01-051-3/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit addresses all of the following: http://public.kitware.com/Bug/view.php?id=8165 http://public.kitware.com/Bug/view.php?id=10687 http://public.kitware.com/Bug/view.php?id=11311 http://public.kitware.com/Bug/view.php?id=11461 With this commit, the midl support for VS10 is as complete as midl support ever was for VS9 and earlier. The VSMidl test should run on all Visual Studio generator based dashboards. CMake no longer sends C++ compiler /D flag values to the midl compiler in Visual Studio generated projects. I think if we want to add that in the future, we should add a way to pass midl compiler specific flags and perhaps an optional way to add in the C++ definitions, too. For now, not sending them along gets past the immediate problem wherein idl files in a CMake VS generated project just didn't work at all. The VSMidl test added in this commit was inspired by the patch attached to 8165. The test had to be modified such that it will run in a directory whose name contains no spaces. There is an existing bug filed against VS10's midl asking Microsoft to fix that problem. But for now, the test added in this commit works by copying the source directory to a location that avoids spaces in the directory names. Inspired-By: Robert Lenhardt
* | Merge topic 'add_preprocessor_def_vs2010_resources'Brad King2011-01-041-1/+4
|\ \ | |/ |/| | | | | | | | | 8c7b19d Only run resource test for MSVC compilers. 753e208 Disable incremental testing for this test, it crashes vs9 linker. 16e7d4b Add flags to resource builds on vs 2010 with a test.
| * Add flags to resource builds on vs 2010 with a test.Bill Hoffman2010-12-211-1/+4
| |
* | Merge topic 'custom-command-refactor'Brad King2010-12-211-14/+2
|\ \ | | | | | | | | | | | | | | | | | | | | | 53ea8b3 Merge branch 'imported-target-dependencies' into custom-command-refactor 1a29cca Remove cmLocalGenerator::GetRealLocation 542b517 Factor out common custom command generator 6fe5b3d Simplify VS generator ConstructScript interface
| * | Simplify VS generator ConstructScript interfaceBrad King2010-12-081-14/+2
| | | | | | | | | | | | | | | Pass to cmLocalVisualStudioGenerator::ConstructScript a cmCustomCommand instance instead of extracting arguments at all call sites.
* | | Fix vs2010 project generation error when HEADER_FILE_ONLY is set.Bill Hoffman2010-12-201-1/+1
| |/ |/| | | | | | | | | | | In vs2010 a bad project file could be generated if a .c or .cxx file was marked with HEADER_FILE_ONLY, if it was in a library that contained both c and c++ code. This fixes the error in the code, and adds a test for this case.
* | 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
|