summaryrefslogtreecommitdiffstats
path: root/Source/cmVisualStudio10TargetGenerator.cxx
Commit message (Collapse)AuthorAgeFilesLines
* Merge topic 'vs-nsight-tegra-generator'Brad King2014-09-301-3/+152
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | df84281d Help: Add notes for topic 'vs-nsight-tegra-generator' 69e198dc VS: Generate Nsight Tegra project revision number 5365c9ac VS: Map Nsight Tegra file types in .vcxproj files 178f56a5 VS: Fix Tegra-Android platform linking of libraries by name 7115702f Tests: Add test for VS Nsight Tegra generator support a6289499 VS: Generate ANDROID_GUI executables as app packages c12e4699 Add 'ANDROID_API' target property to set Android Target API 9a4df52a Add 'ANDROID_GUI' target property to mark Android applications 16569abf cmTarget: Track internally whether platform is Android ef0fd4f0 VS: Teach vcxproj generation about the Tegra-Android platform d09b60f5 VS: Detect compiler id of Nsight Tegra-Android toolchains 2f071466 VS: Teach VS >= 10 to recognize CMAKE_SYSTEM_NAME 'Android'
| * VS: Generate Nsight Tegra project revision numberBrad King2014-09-301-3/+26
| | | | | | | | | | | | Nsight Tegra 2.0 will be revision '8'. Generate this revision number and add a NsightTegraUpgradeOnceWithoutPrompt element to tell newer versions not to prompt when upgrading the generated project file.
| * VS: Map Nsight Tegra file types in .vcxproj filesBrad King2014-09-301-1/+23
| | | | | | | | | | | | | | Map ".java" to JCompile, ".asm" and ".s" to ClCompile, and a few Android-specific source file names to AndroidBuild. This allows Nsight Tegra 1.6 and above to check up-to-dateness of such sources. Bump NsightTegraProjectRevisionNumber to 7 to allow these fields.
| * VS: Generate ANDROID_GUI executables as app packagesBrad King2014-09-301-1/+52
| | | | | | | | | | | | When an executable is marked with ANDROID_GUI, generate an AntBuild step in the .vcxproj file and point it at the directory found to contain AndroidManifest.xml. Assume it also contains build.xml.
| * Add 'ANDROID_API' target property to set Android Target APIBrad King2014-09-301-0/+6
| | | | | | | | Also add a 'CMAKE_ANDROID_API' variable to set the property default.
| * VS: Teach vcxproj generation about the Tegra-Android platformBrad King2014-09-291-3/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Complete the basic implementation of the VS Tegra-Android generators by replacing parts of vcxproj files that are specific to MS tools with settings defined for the NVIDIA Nsight Tegra tools. Current limitations include: * We have no "flag table" so flags will be passed in the additional options fields instead of mapped to the vcxproj elements defined by Nsight Tegra msbuild platform definition files. * We have no interface to set the AndroidArch, AndroidStlType, or AndroidTargetAPI fields so defaults will be used. * The Nsight Tegra msbuild platform definition files do not provide a working "Utility" target type so for add_custom_target we need to use a "StaticLibrary" target type and leave out ClCompile rules. * There is also no target type for plain command-line executables so for add_executable we need to use a "DynamicLibrary" target. Full application bundles will likely require new CMake target properties (like WIN32_EXECUTABLE for Windows GUI executables).
* | Merge topic 'vs-minor-cleanups'Brad King2014-09-291-1/+5
|\ \ | |/ | | | | | | | | | | c655f0c4 VS: Drop GenerateManifest from .vcxproj files for non-MS tools 227a3367 VS: Use case-insensitive check for hlsl,jpg,png,xml file extensions 4a24015a Tests: Always detect VS and SDK availability on Windows
| * VS: Drop GenerateManifest from .vcxproj files for non-MS toolsBrad King2014-09-291-0/+4
| | | | | | | | | | The .vcxproj file content generated by OutputLinkIncremental is specific to MS tools, so drop it when using other tools.
| * VS: Use case-insensitive check for hlsl,jpg,png,xml file extensionsBrad King2014-09-291-1/+1
| | | | | | | | | | These "extra" sources should map to the proper tool even when they are not in lower case.
* | VS, WINCE: Only set EntryPointSymbol for executablesPascal Bach2014-09-221-2/+8
| |
* | VS: Add Certificates to .vcxproj filesGilles Khouzam2014-09-191-0/+4
|/ | | | | | After certificates were moved into their own category in cmGeneratorTarget, that category was not added for output by the VS 10 generator. Add it now.
* VS: Teach VS >= 10 generator about Windows CEPascal Bach2014-09-151-2/+18
| | | | | | | | When CMAKE_SYSTEM_NAME is 'WindowsCE': * Set the Subsystem and EntryPointSymbol accordingly. * When CMAKE_SYSTEM_VERSION is 8.0 (Windows CE 2013), select the CE800 toolset by default.
* Merge topic 'vs-windows-apps'Brad King2014-09-021-11/+652
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Do not compile C sources as WinRT (#15100)Brad King2014-09-021-1/+14
| | | | | | | | | | | | | | | | The MSVC /ZW flag is valid only for C++ sources. Whenever we enable CompileAsWinRT for the whole target, disable it for all C sources. Update the documentation of VS_WINRT_COMPONENT to drop the statement about undefined behavior for non-C++ sources, because it is now defined as expected.
| * VS: Mark Windows Phone and Store targets as App ContainersGilles Khouzam2014-09-021-3/+541
| | | | | | | | | | | | | | | | | | | | | | * Add AppContainerApplication to non-UTILITY targets * Generate app manifest and related files if project does not provide them. Place them in a per-target directory to avoid clashes. * Mark WinRT components with WinMDAssembly * Import Windows Phone 8.0 targets in .vcxproj files when necessary, and reference platform.winmd. Inspired-by: Paul Annetts <paul@lightunobscured.com>
| * VS: Always ignore ole32 on Windows Phone 8.0Gilles Khouzam2014-08-211-0/+7
| | | | | | | | Inspired-by: Paul Annetts <paul@lightunobscured.com>
| * VS: Generate Windows Metadata for WinRT componentsGilles Khouzam2014-08-211-0/+27
| | | | | | | | Inspired-by: Paul Annetts <paul@lightunobscured.com>
| * VS: Generate Windows Phone and Windows Store projects as UnicodeGilles Khouzam2014-08-211-0/+2
| |
| * VS: Add VS_WINRT_COMPONENT property to enable CompileAsWinRTGilles Khouzam2014-08-211-1/+26
| | | | | | | | | | | | | | | | 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: Handle .pfx files explicitly in generatorGilles Khouzam2014-08-211-0/+29
| | | | | | | | | | | | | | | | Teach cmGeneratorTarget to classify .pfx files as package certificate key files. Teach cmVisualStudio10TargetGenerator to write them as PackageCertificateKeyFile in .vcxproj files. Inspired-by: Minmin Gong <minmin.gong@gmail.com>
| * VS: Handle AppxManifest sources explicitly in generatorGilles Khouzam2014-08-211-5/+5
| | | | | | | | | | | | | | Teach cmGeneratorTarget to extract .appxmanifest sources separately. Teach cmVisualStudio10TargetGenerator to write them with the AppxManifest tool in .vcxproj files. This will allow us to detect whether the project provides an application manfiest explicitly.
| * VS: Set Window Phone/Store app type in CMake-generated targetsBrad King2014-08-211-1/+1
| | | | | | | | | | | | | | Generate the ApplicationType and ApplicationTypeRevision elements in .vcxproj files for CMake-generated targets like 'INSTALL' and 'RUN_TESTS'. This was accidentally left out of commit 709cebde (VS: Generate WindowsPhone and WindowsStore application types, 2014-07-31).
| * VS: Mark CMake-generated targets as Utility in .vcxproj filesBrad King2014-08-211-1/+1
| | | | | | | | | | | | Targets like 'INSTALL' and 'RUN_TESTS' are Utility targets. Fix the VS >= 10 generator to set this correctly. We already do so for VS < 10.
* | Merge topic 'vs-masm'Brad King2014-08-221-1/+93
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cbd1d42b Help: Add notes for topic 'vs-masm' 0f8522a6 VS: Add MASM support to VS 8 and 9 (#8170, #14984) a43f4400 VS: Move internal MasmEnabled member up to VS 7 generator df3b007d VS: Add test for MASM support e8727449 VS: Populate MASM tool build settings in .vcxproj files 0271a5f9 VS: Manually fix MASM flag table entries 1d662e48 VS: Generate MASM flag tables from MSBuild tool files 4f6940df VS: Fix ASM_MASM support in VS >= 10 d7866c52 ASM_MASM: Fix selection of ml64 0374abdb ASM_MASM: Add preprocessor definitions to compile lines 5b0a46e1 ASM_MASM: Do not require compiler to be a full path 802dbe52 cmLocalVisualStudio7Generator: Rename local 'lang' var
| * | VS: Populate MASM tool build settings in .vcxproj filesBrad King2014-08-131-0/+92
| | |
| * | VS: Fix ASM_MASM support in VS >= 10Brad King2014-08-131-1/+1
| | | | | | | | | | | | | | | Fix a typo introduced by commit ce511435 (stringapi: Use strings for the languages, 2014-02-03) to check the language name correctly.
* | | Merge topic 'vs-refactor-includes'Brad King2014-08-191-20/+24
|\ \ \ | |/ / | | / | |/ |/| | | | | | | 5fcb42ab VS: Refactor include directory generation in .vcxproj files 8e026aa7 VS: Refactor include directory slash conversion 9633d112 cmIDEOptions: Add HasFlag method to test if a flag is set 84100102 cmIDEOptions: Add an AppendFlag overload to append multiple values
| * VS: Refactor include directory generation in .vcxproj filesBrad King2014-08-131-18/+19
| | | | | | | | | | | | | | | | 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: Refactor include directory slash conversionBrad King2014-08-131-3/+6
| | | | | | | | | | Convert each include directory to windows slashes once instead of repeating it each time they are written out to the project file.
* | VS: Add a source file property to set the hlsl shader typeBrad King2014-08-121-0/+17
| | | | | | | | | | | | Create a VS_SHADER_TYPE source file property. Inspired-by: Gilles Khouzam <gillesk@microsoft.com>
* | VS: Add a source file property to mark content for Windows App deploymentBrad King2014-08-121-0/+40
| | | | | | | | | | | | | | | | | | Create a VS_DEPLOYMENT_CONTENT source file property, supporting generator expressions, to compute whether a source file should be marked as DeploymentContent or ExcludedFromBuild in Windows Phone and Windows Store projects. Inspired-by: Minmin Gong <minmin.gong@gmail.com>
* | VS: Re-arrange WriteExtraSource to support tool configurationBrad King2014-08-121-1/+13
|/ | | | | Add a code path to write the tool open and close elements separately so that we can add content in between to configure it.
* VS: Fix generation of desktop applications for ARMGilles Khouzam2014-08-121-0/+5
| | | | | | Add WindowsSDKDesktopARMSupport to the .vcxproj to avoid 'error MSB8022: Compiling Desktop applications for the ARM platform is not supported.' from VS.
* VS: Set WindowsPhone and WindowsStore min VS version requiredGilles Khouzam2014-07-311-0/+12
| | | | | Generate the MinimumVisualStudioVersion element in the .vcxproj file based on the version of WindowsPhone or WindowsStore to be targeted.
* VS: Generate WindowsPhone and WindowsStore application typesGilles Khouzam2014-07-311-0/+22
| | | | | Generate the ApplicationType and ApplicationTypeRevision elements in .vcxproj files.
* VS: Always add IgnoreSpecificDefaultLibraries to .vcxproj filesBrad King2014-07-311-0/+2
| | | | | | Append %(IgnoreSpecificDefaultLibraries) to any user-specified libraries so that the system-default list of libraries to ignore is honored even when the user specifies more.
* VS: Add missing newline after .vcxproj user prop import lineGilles Khouzam2014-07-311-1/+1
|
* VS: Map .jpg and .png sources to Image toolBrad King2014-07-291-0/+5
| | | | Inspired-by: Gilles Khouzam <gillesk@microsoft.com>
* VS: Map .xml to XML toolBrad King2014-07-291-0/+4
| | | | Inspired-by: Gilles Khouzam <gillesk@microsoft.com>
* VS: Map .appxmanifest sources to AppxManifest toolBrad King2014-07-291-1/+7
| | | | Inspired-by: Minmin Gong <minmin.gong@gmail.com>
* VS: Refactor handling of resx headersBrad King2014-07-291-14/+12
| | | | Move generation of the ClInclude element to WriteHeaderSource.
* VS: Refactor handling of "header" sources in VS >= 10Brad King2014-07-291-1/+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.
* VS: Refactor handling of "extra" sources in VS >= 10Brad King2014-07-291-1/+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.
* VS: Convert 'WriteSource' tool argument to std::stringBrad King2014-07-291-4/+4
|
* VS: Encode more content correctly in vcxproj files (#15031)Brad King2014-07-231-13/+16
| | | | | | In cmVisualStudio10TargetGenerator, add missing cmVS10EscapeXML calls around paths to source and object files, custom command dependencies and outputs, and platform name/version values.
* cmIDEOption: Store mapped flag values as a vector<string>Brad King2014-07-231-19/+13
| | | | | | | | 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.
* cmVisualStudio10TargetGenerator: Remove dupilcate lineBrad King2014-07-231-1/+0
|
* VS: Make MS-tool-specific options conditionalBrad King2014-07-171-95/+141
| | | | | | Make blocks adding MS-tool-specific options conditional on a new "MSTools" boolean member of cmVisualStudio10TargetGenerator. Hard-code the member to true for now to preserve existing behavior.
* VS: Fix handling of non-preprocessor flags in CMAKE_RC_FLAGSMartin Mitas2014-07-101-0/+66
| | | | | | | | Teach the VS >= 10 generator to honor flags other than -I and -D in the CMAKE_RC_FLAGS[_<CONFIG>] variable. Place them within the ResourceCompile .vcxproj element under AdditionalOptions. Also add a rudimentary flag map to map '-n' to 'NullTerminateStrings'.
* VS14: Generate flag tables from MSBuild v140 tool filesBrad King2014-06-251-3/+12
| | | | | | | | | | | | | | | Run cmparseMSBuildXML.py on cl.xml, lib.xml, and link.xml to generate our flag tables: python cmparseMSBuildXML.py -x ".../MSBuild/Microsoft.Cpp/v4.0/V140/1033/cl.xml" > cmVS14CLFlagTable.h python cmparseMSBuildXML.py -x ".../MSBuild/Microsoft.Cpp/v4.0/V140/1033/lib.xml" > cmVS14LibFlagTable.h python cmparseMSBuildXML.py -x ".../MSBuild/Microsoft.Cpp/v4.0/V140/1033/link.xml" > cmVS14LinkFlagTable.h Fix up the declaration names at the top of each file. Finally, teach cmVisualStudio10TargetGenerator to select the version of the table matching the version of VS. Co-Author: Pawel Stopinski <diokhan@go2.pl>