summaryrefslogtreecommitdiffstats
path: root/Source/cmVisualStudioGeneratorOptions.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Fix incremental linking setting for Fortran + VSZack Galbreath2014-11-211-3/+38
| | | | | | | | | | | | | | This commit fixes a bug where it was impossible to specify /INCREMENTAL to Fortran projects built with Visual Studio. The problem was due to the fact that .vfproj files expect the value of this flag to be "linkIncremental{No,Yes}, whereas .vcproj files expect this value to be 0, 1, or 2. The implementation of this fix adds a new data structure for Visual Studio linker flags specific to Fortran. This can easily be extended in the future if more such discrepencies between C/C++ and Fortran linking are discovered.
* Merge topic 'vs-windows-apps'Brad King2014-09-021-0/+6
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 39fefde2 VS: Add test case for Windows Phone and Windows Store 89da8465 MSVC: Define 'WIN32' for Windows Store and Windows Phone ed7f085f Help: Add notes for topic 'vs-windows-apps' dd11ae8f VS: Do not compile C sources as WinRT (#15100) b8e40538 VS: Mark Windows Phone and Store targets as App Containers 0432f062 VS: Always ignore ole32 on Windows Phone 8.0 e6ff2f8b VS: Generate Windows Metadata for WinRT components ee48f4c7 VS: Generate Windows Phone and Windows Store projects as Unicode cb1aceed VS: Add VS_WINRT_COMPONENT property to enable CompileAsWinRT 401269e4 VS: Handle .pfx files explicitly in generator 23782171 VS: Handle AppxManifest sources explicitly in generator bc373c6d VS: Set Window Phone/Store app type in CMake-generated targets d89b2889 VS: Mark CMake-generated targets as Utility in .vcxproj files 03ad8f28 CMakeDetermineCompilerABI: Link with standard libraries on MSVC
| * VS: Add VS_WINRT_COMPONENT property to enable CompileAsWinRTGilles Khouzam2014-08-211-0/+6
| | | | | | | | | | | | | | | | Deprecate VS_WINRT_EXTENSIONS and document VS_WINRT_COMPONENT as for VS generators only. Also define _WINRT_DLL in SHARED libraries in order to get a .lib produced. Inspired-by: Paul Annetts <paul@lightunobscured.com>
* | VS: Refactor include directory generation in .vcxproj filesBrad King2014-08-131-4/+0
|/ | | | | | | | Use the cmVisualStudioGeneratorOptions flag map to add the AdditionalIncludeDirectories element to the project file. Move appending of %(AdditionalIncludeDirectories) to the locations that populate the flag vectors instead of where they are written out.
* VS: Encode mapped flag values in XML project files (#15031)Brad King2014-07-231-3/+3
| | | | | | | 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.
* cmVisualStudioGeneratorOptions: Simplify XML escaping APIBrad King2014-07-231-8/+7
| | | | Accept arguments as std::string to avoid c_str() calls.
* cmIDEOption: Store mapped flag values as a vector<string>Brad King2014-07-231-5/+19
| | | | | | | | 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.
* VS14: Add Visual Studio 14 generator (#14982)Brad King2014-06-251-0/+1
| | | | | | | | | | | | | | | | Call the generator "Visual Studio 14" without any year because this version of VS does not provide a year in the product name. Copy cmGlobalVisualStudio12Generator to cmGlobalVisualStudio14Generator and update version numbers accordingly. Add the VS14 enumeration value. Teach the platform module Windows-MSVC to set MSVC14 and document the variable. Teach module InstallRequiredSystemLibraries to look for the VS 14 runtime libraries. Teach tests CheckCompilerRelatedVariables, VSExternalInclude, and RunCMake.GeneratorToolset to treat VS 14 as they do VS 10, 11, and 12. Co-Author: Pawel Stopinski <diokhan@go2.pl>
* strings: Remove cmStdString referencesBen Boeckel2014-03-081-2/+2
| | | | | | | | | | | 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.
* stringapi: Use strings for the languagesBen Boeckel2014-03-081-2/+2
|
* Improve const-correctness in cmVisualStudioGeneratorOptionsPatrick Gansterer2013-08-051-3/+3
| | | | Add const qualifier to IsDebug(), UsingSBCS() and UsingUnicode().
* Merge branch 'master' into vs12-generatorBrad King2013-06-281-1/+2
|\ | | | | | | | | Resolve conflicts in Tests/Preprocess/CMakeLists.txt by keeping the side from 'master'.
| * Merge topic 'doc-improvements'Brad King2013-05-161-1/+1
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)
| | * Fix spelling and typos (non-binary)Andreas Mohr2013-05-071-1/+1
| | |
| * | VS 10: Escape ; as %3B in preprocessor definitions (#14073)Brad King2013-04-111-0/+1
| |/ | | | | | | | | | | | | | | | | Use the suggestion from http://support.microsoft.com/kb/2262855 to escape semicolons in preprocessor definitions for VS >= 10. Update the COMPILE_DEFINITIONS documentation disclaimer list of known limitations accordingly. Update our "Preprocess" test to cover the case. Suggested-by: Jean-Christophe Fillion-Robin <jchris.fillionr@kitware.com>
* | VS12: Add Visual Studio 12 generator (#14251)Brad King2013-06-281-0/+1
|/ | | | | | | | | | | | | | Copy cmGlobalVisualStudio11Generator to cmGlobalVisualStudio12Generator and update version numbers accordingly. Add the VS12 enumeration value. Add module CMakeVS12FindMake to find MSBuild. Look for MSBuild in its now-dedicated Windows Registry entry. Teach the platform module Windows-MSVC to set MSVC12 and document the variable. Teach module InstallRequiredSystemLibraries to look for the VS 12 runtime libraries. Teach tests CheckCompilerRelatedVariables, Preprocess, VSExternalInclude, and RunCMake.GeneratorToolset to treat VS 12 as they do VS 10 and 11. Inspired-by: Minmin Gong <minmin.gong@gmail.com>
* Remove trailing whitespace from most CMake and C/C++ codeKitware Robot2012-08-131-2/+2
| | | | | | | | | | | | | | | | | Our Git commit hooks disallow modification or addition of lines with trailing whitespace. Wipe out all remnants of trailing whitespace everywhere except third-party code. Run the following shell code: git ls-files -z -- \ bootstrap doxygen.config '*.readme' \ '*.c' '*.cmake' '*.cpp' '*.cxx' \ '*.el' '*.f' '*.f90' '*.h' '*.in' '*.in.l' '*.java' \ '*.mm' '*.pike' '*.py' '*.txt' '*.vim' | egrep -z -v '^(Utilities/cm|Source/(kwsys|CursesDialog/form)/)' | egrep -z -v '^(Modules/CPack\..*\.in)' | xargs -0 sed -i 's/ \+$//'
* Visual Studio: Allow setting Single Byte Character Set (#12189)Aaron C. Meadows2012-02-171-0/+14
| | | | | | | For Visual Studio using the Preprocessor Define _SBCS. This behavior is similar to the way that _UNICODE and _MBCS work already. Added tests to confirm this behavior.
* Enumerate VS11 version explicitly in local generatorsBrad King2011-11-141-6/+7
| | | | | | | | | | | Since the parent commit the local generator Version ivar may be compared for ordering. Convert comparisons: "==VS10" becomes ">=VS10" "!=VS10" becomes "< VS10" to support an explicit enumeration value for VS11 with no change in behavior.
* Order VS local generator Version ivar values consistentlyBrad King2011-11-141-13/+13
| | | | | | | | | | | Move the Version member to the top cmLocalVisualStudioGenerator class and set it consistently for instances created by all the global generator versions. Use an enumeration type with values scaled by a factor of 10 so we can handle VS 7.1 without out-of-order numbers. VS 7.1 support for SuppressStartupBanner was broken by commit 25116a3c (Fix CMAKE_VERBOSE_MAKEFILE for VS10 vcxproj files, 2011-10-11) because it assumed comparison of VS version numbers works. Now it does.
* Fix CMAKE_VERBOSE_MAKEFILE for VS10 vcxproj files (#12504)Niels Dekker2011-10-111-3/+3
|
* Fix for bug#10798. VS10 did not append -I flags with COMPILE_FLAGS prop.Bill Hoffman2011-06-021-1/+6
| | | | This fix adds a test for this case for all generators.
* VS10: Escape double quote chars in defines for rc files (#11695)David Cole2011-01-261-1/+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: avoid warning, no nologo when verbose (#10587)David Cole2010-12-171-8/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | For prior versions of Visual Studio we would intentionally pass "/nologo-" for "verbose makefiles" (CMAKE_VERBOSE_MAKEFILE ON) when the caller did not already explicitly specify either /nologo or /nologo-. And we still do. For the prior versions. This had the side effect of always passing /nologo- for try_compile operations because try_compile generates projects that have verbose makefiles on. However, starting with Visual Studio 10, the compiler emits "cl ... warning D9035: option 'nologo-' has been deprecated" when passed "/nologo-". Therefore, this commit removes setting "/nologo-" for verbose makefiles in the Visual Studio 10 case to avoid emitting a warning for every single invocation of the compiler in a given build. With Visual Studio 10, we do not set this flag either way and therefore, the generated project has no value for this setting and gets Visual Studio's default value, which is of course "/nologo", which does not produce a warning. With Visual Studio 10, a caller can still force "/nologo-" if desired by adding it explicitly to CMAKE_C_FLAGS or CMAKE_CXX_FLAGS.
* Set Intel .vfproj RuntimeLibrary attributeBrad King2010-11-091-0/+51
| | | | | | Look for the "/threads", "/libs:dll", and "/dbglibs" flags and convert them to the proper RuntimeLibrary attribute value in the IDE. This is a 3-to-1 flag mapping and such needs special handling in the parser.
* VS: Always separate preprocessor defs by semicolon (#10902)Brad King2010-06-281-10/+3
| | | | | | Separation by ',' only works in VS 2008 and below and does not work in the PlayStation3 VS plugin. Separation by ';' works in VS 10 and all prior versions.
* ENH: Separate option mapping from VS generatorsBrad King2009-07-291-143/+12
| | | | | Split cmVisualStudioGeneratorOptions core functionality out into a base class cmIDEOptions. It will be useful for other generators.
* ENH: almost all tests passing in vs 10, commit fixes preprocess and starts ↵Bill Hoffman2009-07-131-1/+14
| | | | vs external project
* ENH: first pass at VS 10, can bootstrap CMake, but many tests still failBill Hoffman2009-06-251-0/+420