mirror of https://github.com/lukechilds/node.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1482 lines
64 KiB
1482 lines
64 KiB
#!/usr/bin/env python
|
|
|
|
# Copyright (c) 2012 Google Inc. All rights reserved.
|
|
# Use of this source code is governed by a BSD-style license that can be
|
|
# found in the LICENSE file.
|
|
|
|
"""Unit tests for the MSVSSettings.py file."""
|
|
|
|
import StringIO
|
|
import unittest
|
|
import gyp.MSVSSettings as MSVSSettings
|
|
|
|
|
|
class TestSequenceFunctions(unittest.TestCase):
|
|
|
|
def setUp(self):
|
|
self.stderr = StringIO.StringIO()
|
|
|
|
def _ExpectedWarnings(self, expected):
|
|
"""Compares recorded lines to expected warnings."""
|
|
self.stderr.seek(0)
|
|
actual = self.stderr.read().split('\n')
|
|
actual = [line for line in actual if line]
|
|
self.assertEqual(sorted(expected), sorted(actual))
|
|
|
|
def testValidateMSVSSettings_tool_names(self):
|
|
"""Tests that only MSVS tool names are allowed."""
|
|
MSVSSettings.ValidateMSVSSettings(
|
|
{'VCCLCompilerTool': {},
|
|
'VCLinkerTool': {},
|
|
'VCMIDLTool': {},
|
|
'foo': {},
|
|
'VCResourceCompilerTool': {},
|
|
'VCLibrarianTool': {},
|
|
'VCManifestTool': {},
|
|
'ClCompile': {}},
|
|
self.stderr)
|
|
self._ExpectedWarnings([
|
|
'Warning: unrecognized tool foo',
|
|
'Warning: unrecognized tool ClCompile'])
|
|
|
|
def testValidateMSVSSettings_settings(self):
|
|
"""Tests that for invalid MSVS settings."""
|
|
MSVSSettings.ValidateMSVSSettings(
|
|
{'VCCLCompilerTool': {
|
|
'AdditionalIncludeDirectories': 'folder1;folder2',
|
|
'AdditionalOptions': ['string1', 'string2'],
|
|
'AdditionalUsingDirectories': 'folder1;folder2',
|
|
'AssemblerListingLocation': 'a_file_name',
|
|
'AssemblerOutput': '0',
|
|
'BasicRuntimeChecks': '5',
|
|
'BrowseInformation': 'fdkslj',
|
|
'BrowseInformationFile': 'a_file_name',
|
|
'BufferSecurityCheck': 'true',
|
|
'CallingConvention': '-1',
|
|
'CompileAs': '1',
|
|
'DebugInformationFormat': '2',
|
|
'DefaultCharIsUnsigned': 'true',
|
|
'Detect64BitPortabilityProblems': 'true',
|
|
'DisableLanguageExtensions': 'true',
|
|
'DisableSpecificWarnings': 'string1;string2',
|
|
'EnableEnhancedInstructionSet': '1',
|
|
'EnableFiberSafeOptimizations': 'true',
|
|
'EnableFunctionLevelLinking': 'true',
|
|
'EnableIntrinsicFunctions': 'true',
|
|
'EnablePREfast': 'true',
|
|
'Enableprefast': 'bogus',
|
|
'ErrorReporting': '1',
|
|
'ExceptionHandling': '1',
|
|
'ExpandAttributedSource': 'true',
|
|
'FavorSizeOrSpeed': '1',
|
|
'FloatingPointExceptions': 'true',
|
|
'FloatingPointModel': '1',
|
|
'ForceConformanceInForLoopScope': 'true',
|
|
'ForcedIncludeFiles': 'file1;file2',
|
|
'ForcedUsingFiles': 'file1;file2',
|
|
'GeneratePreprocessedFile': '1',
|
|
'GenerateXMLDocumentationFiles': 'true',
|
|
'IgnoreStandardIncludePath': 'true',
|
|
'InlineFunctionExpansion': '1',
|
|
'KeepComments': 'true',
|
|
'MinimalRebuild': 'true',
|
|
'ObjectFile': 'a_file_name',
|
|
'OmitDefaultLibName': 'true',
|
|
'OmitFramePointers': 'true',
|
|
'OpenMP': 'true',
|
|
'Optimization': '1',
|
|
'PrecompiledHeaderFile': 'a_file_name',
|
|
'PrecompiledHeaderThrough': 'a_file_name',
|
|
'PreprocessorDefinitions': 'string1;string2',
|
|
'ProgramDataBaseFileName': 'a_file_name',
|
|
'RuntimeLibrary': '1',
|
|
'RuntimeTypeInfo': 'true',
|
|
'ShowIncludes': 'true',
|
|
'SmallerTypeCheck': 'true',
|
|
'StringPooling': 'true',
|
|
'StructMemberAlignment': '1',
|
|
'SuppressStartupBanner': 'true',
|
|
'TreatWChar_tAsBuiltInType': 'true',
|
|
'UndefineAllPreprocessorDefinitions': 'true',
|
|
'UndefinePreprocessorDefinitions': 'string1;string2',
|
|
'UseFullPaths': 'true',
|
|
'UsePrecompiledHeader': '1',
|
|
'UseUnicodeResponseFiles': 'true',
|
|
'WarnAsError': 'true',
|
|
'WarningLevel': '1',
|
|
'WholeProgramOptimization': 'true',
|
|
'XMLDocumentationFileName': 'a_file_name',
|
|
'ZZXYZ': 'bogus'},
|
|
'VCLinkerTool': {
|
|
'AdditionalDependencies': 'file1;file2',
|
|
'AdditionalLibraryDirectories': 'folder1;folder2',
|
|
'AdditionalManifestDependencies': 'file1;file2',
|
|
'AdditionalOptions': 'a string1',
|
|
'AddModuleNamesToAssembly': 'file1;file2',
|
|
'AllowIsolation': 'true',
|
|
'AssemblyDebug': '2',
|
|
'AssemblyLinkResource': 'file1;file2',
|
|
'BaseAddress': 'a string1',
|
|
'CLRImageType': '2',
|
|
'CLRThreadAttribute': '2',
|
|
'CLRUnmanagedCodeCheck': 'true',
|
|
'DataExecutionPrevention': '2',
|
|
'DelayLoadDLLs': 'file1;file2',
|
|
'DelaySign': 'true',
|
|
'Driver': '2',
|
|
'EmbedManagedResourceFile': 'file1;file2',
|
|
'EnableCOMDATFolding': '2',
|
|
'EnableUAC': 'true',
|
|
'EntryPointSymbol': 'a string1',
|
|
'ErrorReporting': '2',
|
|
'FixedBaseAddress': '2',
|
|
'ForceSymbolReferences': 'file1;file2',
|
|
'FunctionOrder': 'a_file_name',
|
|
'GenerateDebugInformation': 'true',
|
|
'GenerateManifest': 'true',
|
|
'GenerateMapFile': 'true',
|
|
'HeapCommitSize': 'a string1',
|
|
'HeapReserveSize': 'a string1',
|
|
'IgnoreAllDefaultLibraries': 'true',
|
|
'IgnoreDefaultLibraryNames': 'file1;file2',
|
|
'IgnoreEmbeddedIDL': 'true',
|
|
'IgnoreImportLibrary': 'true',
|
|
'ImportLibrary': 'a_file_name',
|
|
'KeyContainer': 'a_file_name',
|
|
'KeyFile': 'a_file_name',
|
|
'LargeAddressAware': '2',
|
|
'LinkIncremental': '2',
|
|
'LinkLibraryDependencies': 'true',
|
|
'LinkTimeCodeGeneration': '2',
|
|
'ManifestFile': 'a_file_name',
|
|
'MapExports': 'true',
|
|
'MapFileName': 'a_file_name',
|
|
'MergedIDLBaseFileName': 'a_file_name',
|
|
'MergeSections': 'a string1',
|
|
'MidlCommandFile': 'a_file_name',
|
|
'ModuleDefinitionFile': 'a_file_name',
|
|
'OptimizeForWindows98': '1',
|
|
'OptimizeReferences': '2',
|
|
'OutputFile': 'a_file_name',
|
|
'PerUserRedirection': 'true',
|
|
'Profile': 'true',
|
|
'ProfileGuidedDatabase': 'a_file_name',
|
|
'ProgramDatabaseFile': 'a_file_name',
|
|
'RandomizedBaseAddress': '2',
|
|
'RegisterOutput': 'true',
|
|
'ResourceOnlyDLL': 'true',
|
|
'SetChecksum': 'true',
|
|
'ShowProgress': '2',
|
|
'StackCommitSize': 'a string1',
|
|
'StackReserveSize': 'a string1',
|
|
'StripPrivateSymbols': 'a_file_name',
|
|
'SubSystem': '2',
|
|
'SupportUnloadOfDelayLoadedDLL': 'true',
|
|
'SuppressStartupBanner': 'true',
|
|
'SwapRunFromCD': 'true',
|
|
'SwapRunFromNet': 'true',
|
|
'TargetMachine': '2',
|
|
'TerminalServerAware': '2',
|
|
'TurnOffAssemblyGeneration': 'true',
|
|
'TypeLibraryFile': 'a_file_name',
|
|
'TypeLibraryResourceID': '33',
|
|
'UACExecutionLevel': '2',
|
|
'UACUIAccess': 'true',
|
|
'UseLibraryDependencyInputs': 'true',
|
|
'UseUnicodeResponseFiles': 'true',
|
|
'Version': 'a string1'},
|
|
'VCMIDLTool': {
|
|
'AdditionalIncludeDirectories': 'folder1;folder2',
|
|
'AdditionalOptions': 'a string1',
|
|
'CPreprocessOptions': 'a string1',
|
|
'DefaultCharType': '1',
|
|
'DLLDataFileName': 'a_file_name',
|
|
'EnableErrorChecks': '1',
|
|
'ErrorCheckAllocations': 'true',
|
|
'ErrorCheckBounds': 'true',
|
|
'ErrorCheckEnumRange': 'true',
|
|
'ErrorCheckRefPointers': 'true',
|
|
'ErrorCheckStubData': 'true',
|
|
'GenerateStublessProxies': 'true',
|
|
'GenerateTypeLibrary': 'true',
|
|
'HeaderFileName': 'a_file_name',
|
|
'IgnoreStandardIncludePath': 'true',
|
|
'InterfaceIdentifierFileName': 'a_file_name',
|
|
'MkTypLibCompatible': 'true',
|
|
'notgood': 'bogus',
|
|
'OutputDirectory': 'a string1',
|
|
'PreprocessorDefinitions': 'string1;string2',
|
|
'ProxyFileName': 'a_file_name',
|
|
'RedirectOutputAndErrors': 'a_file_name',
|
|
'StructMemberAlignment': '1',
|
|
'SuppressStartupBanner': 'true',
|
|
'TargetEnvironment': '1',
|
|
'TypeLibraryName': 'a_file_name',
|
|
'UndefinePreprocessorDefinitions': 'string1;string2',
|
|
'ValidateParameters': 'true',
|
|
'WarnAsError': 'true',
|
|
'WarningLevel': '1'},
|
|
'VCResourceCompilerTool': {
|
|
'AdditionalOptions': 'a string1',
|
|
'AdditionalIncludeDirectories': 'folder1;folder2',
|
|
'Culture': '1003',
|
|
'IgnoreStandardIncludePath': 'true',
|
|
'notgood2': 'bogus',
|
|
'PreprocessorDefinitions': 'string1;string2',
|
|
'ResourceOutputFileName': 'a string1',
|
|
'ShowProgress': 'true',
|
|
'SuppressStartupBanner': 'true',
|
|
'UndefinePreprocessorDefinitions': 'string1;string2'},
|
|
'VCLibrarianTool': {
|
|
'AdditionalDependencies': 'file1;file2',
|
|
'AdditionalLibraryDirectories': 'folder1;folder2',
|
|
'AdditionalOptions': 'a string1',
|
|
'ExportNamedFunctions': 'string1;string2',
|
|
'ForceSymbolReferences': 'a string1',
|
|
'IgnoreAllDefaultLibraries': 'true',
|
|
'IgnoreSpecificDefaultLibraries': 'file1;file2',
|
|
'LinkLibraryDependencies': 'true',
|
|
'ModuleDefinitionFile': 'a_file_name',
|
|
'OutputFile': 'a_file_name',
|
|
'SuppressStartupBanner': 'true',
|
|
'UseUnicodeResponseFiles': 'true'},
|
|
'VCManifestTool': {
|
|
'AdditionalManifestFiles': 'file1;file2',
|
|
'AdditionalOptions': 'a string1',
|
|
'AssemblyIdentity': 'a string1',
|
|
'ComponentFileName': 'a_file_name',
|
|
'DependencyInformationFile': 'a_file_name',
|
|
'GenerateCatalogFiles': 'true',
|
|
'InputResourceManifests': 'a string1',
|
|
'ManifestResourceFile': 'a_file_name',
|
|
'OutputManifestFile': 'a_file_name',
|
|
'RegistrarScriptFile': 'a_file_name',
|
|
'ReplacementsFile': 'a_file_name',
|
|
'SuppressStartupBanner': 'true',
|
|
'TypeLibraryFile': 'a_file_name',
|
|
'UpdateFileHashes': 'truel',
|
|
'UpdateFileHashesSearchPath': 'a_file_name',
|
|
'UseFAT32Workaround': 'true',
|
|
'UseUnicodeResponseFiles': 'true',
|
|
'VerboseOutput': 'true'}},
|
|
self.stderr)
|
|
self._ExpectedWarnings([
|
|
'Warning: for VCCLCompilerTool/BasicRuntimeChecks, '
|
|
'index value (5) not in expected range [0, 4)',
|
|
'Warning: for VCCLCompilerTool/BrowseInformation, '
|
|
"invalid literal for int() with base 10: 'fdkslj'",
|
|
'Warning: for VCCLCompilerTool/CallingConvention, '
|
|
'index value (-1) not in expected range [0, 3)',
|
|
'Warning: for VCCLCompilerTool/DebugInformationFormat, '
|
|
'converted value for 2 not specified.',
|
|
'Warning: unrecognized setting VCCLCompilerTool/Enableprefast',
|
|
'Warning: unrecognized setting VCCLCompilerTool/ZZXYZ',
|
|
'Warning: for VCLinkerTool/TargetMachine, '
|
|
'converted value for 2 not specified.',
|
|
'Warning: unrecognized setting VCMIDLTool/notgood',
|
|
'Warning: unrecognized setting VCResourceCompilerTool/notgood2',
|
|
'Warning: for VCManifestTool/UpdateFileHashes, '
|
|
"expected bool; got 'truel'"
|
|
''])
|
|
|
|
def testValidateMSBuildSettings_settings(self):
|
|
"""Tests that for invalid MSBuild settings."""
|
|
MSVSSettings.ValidateMSBuildSettings(
|
|
{'ClCompile': {
|
|
'AdditionalIncludeDirectories': 'folder1;folder2',
|
|
'AdditionalOptions': ['string1', 'string2'],
|
|
'AdditionalUsingDirectories': 'folder1;folder2',
|
|
'AssemblerListingLocation': 'a_file_name',
|
|
'AssemblerOutput': 'NoListing',
|
|
'BasicRuntimeChecks': 'StackFrameRuntimeCheck',
|
|
'BrowseInformation': 'false',
|
|
'BrowseInformationFile': 'a_file_name',
|
|
'BufferSecurityCheck': 'true',
|
|
'BuildingInIDE': 'true',
|
|
'CallingConvention': 'Cdecl',
|
|
'CompileAs': 'CompileAsC',
|
|
'CompileAsManaged': 'Pure',
|
|
'CreateHotpatchableImage': 'true',
|
|
'DebugInformationFormat': 'ProgramDatabase',
|
|
'DisableLanguageExtensions': 'true',
|
|
'DisableSpecificWarnings': 'string1;string2',
|
|
'EnableEnhancedInstructionSet': 'StreamingSIMDExtensions',
|
|
'EnableFiberSafeOptimizations': 'true',
|
|
'EnablePREfast': 'true',
|
|
'Enableprefast': 'bogus',
|
|
'ErrorReporting': 'Prompt',
|
|
'ExceptionHandling': 'SyncCThrow',
|
|
'ExpandAttributedSource': 'true',
|
|
'FavorSizeOrSpeed': 'Neither',
|
|
'FloatingPointExceptions': 'true',
|
|
'FloatingPointModel': 'Precise',
|
|
'ForceConformanceInForLoopScope': 'true',
|
|
'ForcedIncludeFiles': 'file1;file2',
|
|
'ForcedUsingFiles': 'file1;file2',
|
|
'FunctionLevelLinking': 'false',
|
|
'GenerateXMLDocumentationFiles': 'true',
|
|
'IgnoreStandardIncludePath': 'true',
|
|
'InlineFunctionExpansion': 'OnlyExplicitInline',
|
|
'IntrinsicFunctions': 'false',
|
|
'MinimalRebuild': 'true',
|
|
'MultiProcessorCompilation': 'true',
|
|
'ObjectFileName': 'a_file_name',
|
|
'OmitDefaultLibName': 'true',
|
|
'OmitFramePointers': 'true',
|
|
'OpenMPSupport': 'true',
|
|
'Optimization': 'Disabled',
|
|
'PrecompiledHeader': 'NotUsing',
|
|
'PrecompiledHeaderFile': 'a_file_name',
|
|
'PrecompiledHeaderOutputFile': 'a_file_name',
|
|
'PreprocessKeepComments': 'true',
|
|
'PreprocessorDefinitions': 'string1;string2',
|
|
'PreprocessOutputPath': 'a string1',
|
|
'PreprocessSuppressLineNumbers': 'false',
|
|
'PreprocessToFile': 'false',
|
|
'ProcessorNumber': '33',
|
|
'ProgramDataBaseFileName': 'a_file_name',
|
|
'RuntimeLibrary': 'MultiThreaded',
|
|
'RuntimeTypeInfo': 'true',
|
|
'ShowIncludes': 'true',
|
|
'SmallerTypeCheck': 'true',
|
|
'StringPooling': 'true',
|
|
'StructMemberAlignment': '1Byte',
|
|
'SuppressStartupBanner': 'true',
|
|
'TrackerLogDirectory': 'a_folder',
|
|
'TreatSpecificWarningsAsErrors': 'string1;string2',
|
|
'TreatWarningAsError': 'true',
|
|
'TreatWChar_tAsBuiltInType': 'true',
|
|
'UndefineAllPreprocessorDefinitions': 'true',
|
|
'UndefinePreprocessorDefinitions': 'string1;string2',
|
|
'UseFullPaths': 'true',
|
|
'UseUnicodeForAssemblerListing': 'true',
|
|
'WarningLevel': 'TurnOffAllWarnings',
|
|
'WholeProgramOptimization': 'true',
|
|
'XMLDocumentationFileName': 'a_file_name',
|
|
'ZZXYZ': 'bogus'},
|
|
'Link': {
|
|
'AdditionalDependencies': 'file1;file2',
|
|
'AdditionalLibraryDirectories': 'folder1;folder2',
|
|
'AdditionalManifestDependencies': 'file1;file2',
|
|
'AdditionalOptions': 'a string1',
|
|
'AddModuleNamesToAssembly': 'file1;file2',
|
|
'AllowIsolation': 'true',
|
|
'AssemblyDebug': '',
|
|
'AssemblyLinkResource': 'file1;file2',
|
|
'BaseAddress': 'a string1',
|
|
'BuildingInIDE': 'true',
|
|
'CLRImageType': 'ForceIJWImage',
|
|
'CLRSupportLastError': 'Enabled',
|
|
'CLRThreadAttribute': 'MTAThreadingAttribute',
|
|
'CLRUnmanagedCodeCheck': 'true',
|
|
'CreateHotPatchableImage': 'X86Image',
|
|
'DataExecutionPrevention': 'false',
|
|
'DelayLoadDLLs': 'file1;file2',
|
|
'DelaySign': 'true',
|
|
'Driver': 'NotSet',
|
|
'EmbedManagedResourceFile': 'file1;file2',
|
|
'EnableCOMDATFolding': 'false',
|
|
'EnableUAC': 'true',
|
|
'EntryPointSymbol': 'a string1',
|
|
'FixedBaseAddress': 'false',
|
|
'ForceFileOutput': 'Enabled',
|
|
'ForceSymbolReferences': 'file1;file2',
|
|
'FunctionOrder': 'a_file_name',
|
|
'GenerateDebugInformation': 'true',
|
|
'GenerateMapFile': 'true',
|
|
'HeapCommitSize': 'a string1',
|
|
'HeapReserveSize': 'a string1',
|
|
'IgnoreAllDefaultLibraries': 'true',
|
|
'IgnoreEmbeddedIDL': 'true',
|
|
'IgnoreSpecificDefaultLibraries': 'a_file_list',
|
|
'ImageHasSafeExceptionHandlers': 'true',
|
|
'ImportLibrary': 'a_file_name',
|
|
'KeyContainer': 'a_file_name',
|
|
'KeyFile': 'a_file_name',
|
|
'LargeAddressAware': 'false',
|
|
'LinkDLL': 'true',
|
|
'LinkErrorReporting': 'SendErrorReport',
|
|
'LinkStatus': 'true',
|
|
'LinkTimeCodeGeneration': 'UseLinkTimeCodeGeneration',
|
|
'ManifestFile': 'a_file_name',
|
|
'MapExports': 'true',
|
|
'MapFileName': 'a_file_name',
|
|
'MergedIDLBaseFileName': 'a_file_name',
|
|
'MergeSections': 'a string1',
|
|
'MidlCommandFile': 'a_file_name',
|
|
'MinimumRequiredVersion': 'a string1',
|
|
'ModuleDefinitionFile': 'a_file_name',
|
|
'MSDOSStubFileName': 'a_file_name',
|
|
'NoEntryPoint': 'true',
|
|
'OptimizeReferences': 'false',
|
|
'OutputFile': 'a_file_name',
|
|
'PerUserRedirection': 'true',
|
|
'PreventDllBinding': 'true',
|
|
'Profile': 'true',
|
|
'ProfileGuidedDatabase': 'a_file_name',
|
|
'ProgramDatabaseFile': 'a_file_name',
|
|
'RandomizedBaseAddress': 'false',
|
|
'RegisterOutput': 'true',
|
|
'SectionAlignment': '33',
|
|
'SetChecksum': 'true',
|
|
'ShowProgress': 'LinkVerboseREF',
|
|
'SpecifySectionAttributes': 'a string1',
|
|
'StackCommitSize': 'a string1',
|
|
'StackReserveSize': 'a string1',
|
|
'StripPrivateSymbols': 'a_file_name',
|
|
'SubSystem': 'Console',
|
|
'SupportNobindOfDelayLoadedDLL': 'true',
|
|
'SupportUnloadOfDelayLoadedDLL': 'true',
|
|
'SuppressStartupBanner': 'true',
|
|
'SwapRunFromCD': 'true',
|
|
'SwapRunFromNET': 'true',
|
|
'TargetMachine': 'MachineX86',
|
|
'TerminalServerAware': 'false',
|
|
'TrackerLogDirectory': 'a_folder',
|
|
'TreatLinkerWarningAsErrors': 'true',
|
|
'TurnOffAssemblyGeneration': 'true',
|
|
'TypeLibraryFile': 'a_file_name',
|
|
'TypeLibraryResourceID': '33',
|
|
'UACExecutionLevel': 'AsInvoker',
|
|
'UACUIAccess': 'true',
|
|
'Version': 'a string1'},
|
|
'ResourceCompile': {
|
|
'AdditionalIncludeDirectories': 'folder1;folder2',
|
|
'AdditionalOptions': 'a string1',
|
|
'Culture': '0x236',
|
|
'IgnoreStandardIncludePath': 'true',
|
|
'NullTerminateStrings': 'true',
|
|
'PreprocessorDefinitions': 'string1;string2',
|
|
'ResourceOutputFileName': 'a string1',
|
|
'ShowProgress': 'true',
|
|
'SuppressStartupBanner': 'true',
|
|
'TrackerLogDirectory': 'a_folder',
|
|
'UndefinePreprocessorDefinitions': 'string1;string2'},
|
|
'Midl': {
|
|
'AdditionalIncludeDirectories': 'folder1;folder2',
|
|
'AdditionalOptions': 'a string1',
|
|
'ApplicationConfigurationMode': 'true',
|
|
'ClientStubFile': 'a_file_name',
|
|
'CPreprocessOptions': 'a string1',
|
|
'DefaultCharType': 'Signed',
|
|
'DllDataFileName': 'a_file_name',
|
|
'EnableErrorChecks': 'EnableCustom',
|
|
'ErrorCheckAllocations': 'true',
|
|
'ErrorCheckBounds': 'true',
|
|
'ErrorCheckEnumRange': 'true',
|
|
'ErrorCheckRefPointers': 'true',
|
|
'ErrorCheckStubData': 'true',
|
|
'GenerateClientFiles': 'Stub',
|
|
'GenerateServerFiles': 'None',
|
|
'GenerateStublessProxies': 'true',
|
|
'GenerateTypeLibrary': 'true',
|
|
'HeaderFileName': 'a_file_name',
|
|
'IgnoreStandardIncludePath': 'true',
|
|
'InterfaceIdentifierFileName': 'a_file_name',
|
|
'LocaleID': '33',
|
|
'MkTypLibCompatible': 'true',
|
|
'OutputDirectory': 'a string1',
|
|
'PreprocessorDefinitions': 'string1;string2',
|
|
'ProxyFileName': 'a_file_name',
|
|
'RedirectOutputAndErrors': 'a_file_name',
|
|
'ServerStubFile': 'a_file_name',
|
|
'StructMemberAlignment': 'NotSet',
|
|
'SuppressCompilerWarnings': 'true',
|
|
'SuppressStartupBanner': 'true',
|
|
'TargetEnvironment': 'Itanium',
|
|
'TrackerLogDirectory': 'a_folder',
|
|
'TypeLibFormat': 'NewFormat',
|
|
'TypeLibraryName': 'a_file_name',
|
|
'UndefinePreprocessorDefinitions': 'string1;string2',
|
|
'ValidateAllParameters': 'true',
|
|
'WarnAsError': 'true',
|
|
'WarningLevel': '1'},
|
|
'Lib': {
|
|
'AdditionalDependencies': 'file1;file2',
|
|
'AdditionalLibraryDirectories': 'folder1;folder2',
|
|
'AdditionalOptions': 'a string1',
|
|
'DisplayLibrary': 'a string1',
|
|
'ErrorReporting': 'PromptImmediately',
|
|
'ExportNamedFunctions': 'string1;string2',
|
|
'ForceSymbolReferences': 'a string1',
|
|
'IgnoreAllDefaultLibraries': 'true',
|
|
'IgnoreSpecificDefaultLibraries': 'file1;file2',
|
|
'LinkTimeCodeGeneration': 'true',
|
|
'MinimumRequiredVersion': 'a string1',
|
|
'ModuleDefinitionFile': 'a_file_name',
|
|
'Name': 'a_file_name',
|
|
'OutputFile': 'a_file_name',
|
|
'RemoveObjects': 'file1;file2',
|
|
'SubSystem': 'Console',
|
|
'SuppressStartupBanner': 'true',
|
|
'TargetMachine': 'MachineX86i',
|
|
'TrackerLogDirectory': 'a_folder',
|
|
'TreatLibWarningAsErrors': 'true',
|
|
'UseUnicodeResponseFiles': 'true',
|
|
'Verbose': 'true'},
|
|
'Manifest': {
|
|
'AdditionalManifestFiles': 'file1;file2',
|
|
'AdditionalOptions': 'a string1',
|
|
'AssemblyIdentity': 'a string1',
|
|
'ComponentFileName': 'a_file_name',
|
|
'EnableDPIAwareness': 'fal',
|
|
'GenerateCatalogFiles': 'truel',
|
|
'GenerateCategoryTags': 'true',
|
|
'InputResourceManifests': 'a string1',
|
|
'ManifestFromManagedAssembly': 'a_file_name',
|
|
'notgood3': 'bogus',
|
|
'OutputManifestFile': 'a_file_name',
|
|
'OutputResourceManifests': 'a string1',
|
|
'RegistrarScriptFile': 'a_file_name',
|
|
'ReplacementsFile': 'a_file_name',
|
|
'SuppressDependencyElement': 'true',
|
|
'SuppressStartupBanner': 'true',
|
|
'TrackerLogDirectory': 'a_folder',
|
|
'TypeLibraryFile': 'a_file_name',
|
|
'UpdateFileHashes': 'true',
|
|
'UpdateFileHashesSearchPath': 'a_file_name',
|
|
'VerboseOutput': 'true'},
|
|
'ProjectReference': {
|
|
'LinkLibraryDependencies': 'true',
|
|
'UseLibraryDependencyInputs': 'true'},
|
|
'ManifestResourceCompile': {
|
|
'ResourceOutputFileName': 'a_file_name'},
|
|
'': {
|
|
'EmbedManifest': 'true',
|
|
'GenerateManifest': 'true',
|
|
'IgnoreImportLibrary': 'true',
|
|
'LinkIncremental': 'false'}},
|
|
self.stderr)
|
|
self._ExpectedWarnings([
|
|
'Warning: unrecognized setting ClCompile/Enableprefast',
|
|
'Warning: unrecognized setting ClCompile/ZZXYZ',
|
|
'Warning: unrecognized setting Manifest/notgood3',
|
|
'Warning: for Manifest/GenerateCatalogFiles, '
|
|
"expected bool; got 'truel'",
|
|
'Warning: for Lib/TargetMachine, unrecognized enumerated value '
|
|
'MachineX86i',
|
|
"Warning: for Manifest/EnableDPIAwareness, expected bool; got 'fal'"])
|
|
|
|
def testConvertToMSBuildSettings_empty(self):
|
|
"""Tests an empty conversion."""
|
|
msvs_settings = {}
|
|
expected_msbuild_settings = {}
|
|
actual_msbuild_settings = MSVSSettings.ConvertToMSBuildSettings(
|
|
msvs_settings,
|
|
self.stderr)
|
|
self.assertEqual(expected_msbuild_settings, actual_msbuild_settings)
|
|
self._ExpectedWarnings([])
|
|
|
|
def testConvertToMSBuildSettings_minimal(self):
|
|
"""Tests a minimal conversion."""
|
|
msvs_settings = {
|
|
'VCCLCompilerTool': {
|
|
'AdditionalIncludeDirectories': 'dir1',
|
|
'AdditionalOptions': '/foo',
|
|
'BasicRuntimeChecks': '0',
|
|
},
|
|
'VCLinkerTool': {
|
|
'LinkTimeCodeGeneration': '1',
|
|
'ErrorReporting': '1',
|
|
'DataExecutionPrevention': '2',
|
|
},
|
|
}
|
|
expected_msbuild_settings = {
|
|
'ClCompile': {
|
|
'AdditionalIncludeDirectories': 'dir1',
|
|
'AdditionalOptions': '/foo',
|
|
'BasicRuntimeChecks': 'Default',
|
|
},
|
|
'Link': {
|
|
'LinkTimeCodeGeneration': 'UseLinkTimeCodeGeneration',
|
|
'LinkErrorReporting': 'PromptImmediately',
|
|
'DataExecutionPrevention': 'true',
|
|
},
|
|
}
|
|
actual_msbuild_settings = MSVSSettings.ConvertToMSBuildSettings(
|
|
msvs_settings,
|
|
self.stderr)
|
|
self.assertEqual(expected_msbuild_settings, actual_msbuild_settings)
|
|
self._ExpectedWarnings([])
|
|
|
|
def testConvertToMSBuildSettings_warnings(self):
|
|
"""Tests conversion that generates warnings."""
|
|
msvs_settings = {
|
|
'VCCLCompilerTool': {
|
|
'AdditionalIncludeDirectories': '1',
|
|
'AdditionalOptions': '2',
|
|
# These are incorrect values:
|
|
'BasicRuntimeChecks': '12',
|
|
'BrowseInformation': '21',
|
|
'UsePrecompiledHeader': '13',
|
|
'GeneratePreprocessedFile': '14'},
|
|
'VCLinkerTool': {
|
|
# These are incorrect values:
|
|
'Driver': '10',
|
|
'LinkTimeCodeGeneration': '31',
|
|
'ErrorReporting': '21',
|
|
'FixedBaseAddress': '6'},
|
|
'VCResourceCompilerTool': {
|
|
# Custom
|
|
'Culture': '1003'}}
|
|
expected_msbuild_settings = {
|
|
'ClCompile': {
|
|
'AdditionalIncludeDirectories': '1',
|
|
'AdditionalOptions': '2'},
|
|
'Link': {},
|
|
'ResourceCompile': {
|
|
# Custom
|
|
'Culture': '0x03eb'}}
|
|
actual_msbuild_settings = MSVSSettings.ConvertToMSBuildSettings(
|
|
msvs_settings,
|
|
self.stderr)
|
|
self.assertEqual(expected_msbuild_settings, actual_msbuild_settings)
|
|
self._ExpectedWarnings([
|
|
'Warning: while converting VCCLCompilerTool/BasicRuntimeChecks to '
|
|
'MSBuild, index value (12) not in expected range [0, 4)',
|
|
'Warning: while converting VCCLCompilerTool/BrowseInformation to '
|
|
'MSBuild, index value (21) not in expected range [0, 3)',
|
|
'Warning: while converting VCCLCompilerTool/UsePrecompiledHeader to '
|
|
'MSBuild, index value (13) not in expected range [0, 3)',
|
|
'Warning: while converting VCCLCompilerTool/GeneratePreprocessedFile to '
|
|
'MSBuild, value must be one of [0, 1, 2]; got 14',
|
|
|
|
'Warning: while converting VCLinkerTool/Driver to '
|
|
'MSBuild, index value (10) not in expected range [0, 4)',
|
|
'Warning: while converting VCLinkerTool/LinkTimeCodeGeneration to '
|
|
'MSBuild, index value (31) not in expected range [0, 5)',
|
|
'Warning: while converting VCLinkerTool/ErrorReporting to '
|
|
'MSBuild, index value (21) not in expected range [0, 3)',
|
|
'Warning: while converting VCLinkerTool/FixedBaseAddress to '
|
|
'MSBuild, index value (6) not in expected range [0, 3)',
|
|
])
|
|
|
|
def testConvertToMSBuildSettings_full_synthetic(self):
|
|
"""Tests conversion of all the MSBuild settings."""
|
|
msvs_settings = {
|
|
'VCCLCompilerTool': {
|
|
'AdditionalIncludeDirectories': 'folder1;folder2;folder3',
|
|
'AdditionalOptions': 'a_string',
|
|
'AdditionalUsingDirectories': 'folder1;folder2;folder3',
|
|
'AssemblerListingLocation': 'a_file_name',
|
|
'AssemblerOutput': '0',
|
|
'BasicRuntimeChecks': '1',
|
|
'BrowseInformation': '2',
|
|
'BrowseInformationFile': 'a_file_name',
|
|
'BufferSecurityCheck': 'true',
|
|
'CallingConvention': '0',
|
|
'CompileAs': '1',
|
|
'DebugInformationFormat': '4',
|
|
'DefaultCharIsUnsigned': 'true',
|
|
'Detect64BitPortabilityProblems': 'true',
|
|
'DisableLanguageExtensions': 'true',
|
|
'DisableSpecificWarnings': 'd1;d2;d3',
|
|
'EnableEnhancedInstructionSet': '0',
|
|
'EnableFiberSafeOptimizations': 'true',
|
|
'EnableFunctionLevelLinking': 'true',
|
|
'EnableIntrinsicFunctions': 'true',
|
|
'EnablePREfast': 'true',
|
|
'ErrorReporting': '1',
|
|
'ExceptionHandling': '2',
|
|
'ExpandAttributedSource': 'true',
|
|
'FavorSizeOrSpeed': '0',
|
|
'FloatingPointExceptions': 'true',
|
|
'FloatingPointModel': '1',
|
|
'ForceConformanceInForLoopScope': 'true',
|
|
'ForcedIncludeFiles': 'file1;file2;file3',
|
|
'ForcedUsingFiles': 'file1;file2;file3',
|
|
'GeneratePreprocessedFile': '1',
|
|
'GenerateXMLDocumentationFiles': 'true',
|
|
'IgnoreStandardIncludePath': 'true',
|
|
'InlineFunctionExpansion': '2',
|
|
'KeepComments': 'true',
|
|
'MinimalRebuild': 'true',
|
|
'ObjectFile': 'a_file_name',
|
|
'OmitDefaultLibName': 'true',
|
|
'OmitFramePointers': 'true',
|
|
'OpenMP': 'true',
|
|
'Optimization': '3',
|
|
'PrecompiledHeaderFile': 'a_file_name',
|
|
'PrecompiledHeaderThrough': 'a_file_name',
|
|
'PreprocessorDefinitions': 'd1;d2;d3',
|
|
'ProgramDataBaseFileName': 'a_file_name',
|
|
'RuntimeLibrary': '0',
|
|
'RuntimeTypeInfo': 'true',
|
|
'ShowIncludes': 'true',
|
|
'SmallerTypeCheck': 'true',
|
|
'StringPooling': 'true',
|
|
'StructMemberAlignment': '1',
|
|
'SuppressStartupBanner': 'true',
|
|
'TreatWChar_tAsBuiltInType': 'true',
|
|
'UndefineAllPreprocessorDefinitions': 'true',
|
|
'UndefinePreprocessorDefinitions': 'd1;d2;d3',
|
|
'UseFullPaths': 'true',
|
|
'UsePrecompiledHeader': '1',
|
|
'UseUnicodeResponseFiles': 'true',
|
|
'WarnAsError': 'true',
|
|
'WarningLevel': '2',
|
|
'WholeProgramOptimization': 'true',
|
|
'XMLDocumentationFileName': 'a_file_name'},
|
|
'VCLinkerTool': {
|
|
'AdditionalDependencies': 'file1;file2;file3',
|
|
'AdditionalLibraryDirectories': 'folder1;folder2;folder3',
|
|
'AdditionalLibraryDirectories_excluded': 'folder1;folder2;folder3',
|
|
'AdditionalManifestDependencies': 'file1;file2;file3',
|
|
'AdditionalOptions': 'a_string',
|
|
'AddModuleNamesToAssembly': 'file1;file2;file3',
|
|
'AllowIsolation': 'true',
|
|
'AssemblyDebug': '0',
|
|
'AssemblyLinkResource': 'file1;file2;file3',
|
|
'BaseAddress': 'a_string',
|
|
'CLRImageType': '1',
|
|
'CLRThreadAttribute': '2',
|
|
'CLRUnmanagedCodeCheck': 'true',
|
|
'DataExecutionPrevention': '0',
|
|
'DelayLoadDLLs': 'file1;file2;file3',
|
|
'DelaySign': 'true',
|
|
'Driver': '1',
|
|
'EmbedManagedResourceFile': 'file1;file2;file3',
|
|
'EnableCOMDATFolding': '0',
|
|
'EnableUAC': 'true',
|
|
'EntryPointSymbol': 'a_string',
|
|
'ErrorReporting': '0',
|
|
'FixedBaseAddress': '1',
|
|
'ForceSymbolReferences': 'file1;file2;file3',
|
|
'FunctionOrder': 'a_file_name',
|
|
'GenerateDebugInformation': 'true',
|
|
'GenerateManifest': 'true',
|
|
'GenerateMapFile': 'true',
|
|
'HeapCommitSize': 'a_string',
|
|
'HeapReserveSize': 'a_string',
|
|
'IgnoreAllDefaultLibraries': 'true',
|
|
'IgnoreDefaultLibraryNames': 'file1;file2;file3',
|
|
'IgnoreEmbeddedIDL': 'true',
|
|
'IgnoreImportLibrary': 'true',
|
|
'ImportLibrary': 'a_file_name',
|
|
'KeyContainer': 'a_file_name',
|
|
'KeyFile': 'a_file_name',
|
|
'LargeAddressAware': '2',
|
|
'LinkIncremental': '1',
|
|
'LinkLibraryDependencies': 'true',
|
|
'LinkTimeCodeGeneration': '2',
|
|
'ManifestFile': 'a_file_name',
|
|
'MapExports': 'true',
|
|
'MapFileName': 'a_file_name',
|
|
'MergedIDLBaseFileName': 'a_file_name',
|
|
'MergeSections': 'a_string',
|
|
'MidlCommandFile': 'a_file_name',
|
|
'ModuleDefinitionFile': 'a_file_name',
|
|
'OptimizeForWindows98': '1',
|
|
'OptimizeReferences': '0',
|
|
'OutputFile': 'a_file_name',
|
|
'PerUserRedirection': 'true',
|
|
'Profile': 'true',
|
|
'ProfileGuidedDatabase': 'a_file_name',
|
|
'ProgramDatabaseFile': 'a_file_name',
|
|
'RandomizedBaseAddress': '1',
|
|
'RegisterOutput': 'true',
|
|
'ResourceOnlyDLL': 'true',
|
|
'SetChecksum': 'true',
|
|
'ShowProgress': '0',
|
|
'StackCommitSize': 'a_string',
|
|
'StackReserveSize': 'a_string',
|
|
'StripPrivateSymbols': 'a_file_name',
|
|
'SubSystem': '2',
|
|
'SupportUnloadOfDelayLoadedDLL': 'true',
|
|
'SuppressStartupBanner': 'true',
|
|
'SwapRunFromCD': 'true',
|
|
'SwapRunFromNet': 'true',
|
|
'TargetMachine': '3',
|
|
'TerminalServerAware': '2',
|
|
'TurnOffAssemblyGeneration': 'true',
|
|
'TypeLibraryFile': 'a_file_name',
|
|
'TypeLibraryResourceID': '33',
|
|
'UACExecutionLevel': '1',
|
|
'UACUIAccess': 'true',
|
|
'UseLibraryDependencyInputs': 'false',
|
|
'UseUnicodeResponseFiles': 'true',
|
|
'Version': 'a_string'},
|
|
'VCResourceCompilerTool': {
|
|
'AdditionalIncludeDirectories': 'folder1;folder2;folder3',
|
|
'AdditionalOptions': 'a_string',
|
|
'Culture': '1003',
|
|
'IgnoreStandardIncludePath': 'true',
|
|
'PreprocessorDefinitions': 'd1;d2;d3',
|
|
'ResourceOutputFileName': 'a_string',
|
|
'ShowProgress': 'true',
|
|
'SuppressStartupBanner': 'true',
|
|
'UndefinePreprocessorDefinitions': 'd1;d2;d3'},
|
|
'VCMIDLTool': {
|
|
'AdditionalIncludeDirectories': 'folder1;folder2;folder3',
|
|
'AdditionalOptions': 'a_string',
|
|
'CPreprocessOptions': 'a_string',
|
|
'DefaultCharType': '0',
|
|
'DLLDataFileName': 'a_file_name',
|
|
'EnableErrorChecks': '2',
|
|
'ErrorCheckAllocations': 'true',
|
|
'ErrorCheckBounds': 'true',
|
|
'ErrorCheckEnumRange': 'true',
|
|
'ErrorCheckRefPointers': 'true',
|
|
'ErrorCheckStubData': 'true',
|
|
'GenerateStublessProxies': 'true',
|
|
'GenerateTypeLibrary': 'true',
|
|
'HeaderFileName': 'a_file_name',
|
|
'IgnoreStandardIncludePath': 'true',
|
|
'InterfaceIdentifierFileName': 'a_file_name',
|
|
'MkTypLibCompatible': 'true',
|
|
'OutputDirectory': 'a_string',
|
|
'PreprocessorDefinitions': 'd1;d2;d3',
|
|
'ProxyFileName': 'a_file_name',
|
|
'RedirectOutputAndErrors': 'a_file_name',
|
|
'StructMemberAlignment': '3',
|
|
'SuppressStartupBanner': 'true',
|
|
'TargetEnvironment': '1',
|
|
'TypeLibraryName': 'a_file_name',
|
|
'UndefinePreprocessorDefinitions': 'd1;d2;d3',
|
|
'ValidateParameters': 'true',
|
|
'WarnAsError': 'true',
|
|
'WarningLevel': '4'},
|
|
'VCLibrarianTool': {
|
|
'AdditionalDependencies': 'file1;file2;file3',
|
|
'AdditionalLibraryDirectories': 'folder1;folder2;folder3',
|
|
'AdditionalLibraryDirectories_excluded': 'folder1;folder2;folder3',
|
|
'AdditionalOptions': 'a_string',
|
|
'ExportNamedFunctions': 'd1;d2;d3',
|
|
'ForceSymbolReferences': 'a_string',
|
|
'IgnoreAllDefaultLibraries': 'true',
|
|
'IgnoreSpecificDefaultLibraries': 'file1;file2;file3',
|
|
'LinkLibraryDependencies': 'true',
|
|
'ModuleDefinitionFile': 'a_file_name',
|
|
'OutputFile': 'a_file_name',
|
|
'SuppressStartupBanner': 'true',
|
|
'UseUnicodeResponseFiles': 'true'},
|
|
'VCManifestTool': {
|
|
'AdditionalManifestFiles': 'file1;file2;file3',
|
|
'AdditionalOptions': 'a_string',
|
|
'AssemblyIdentity': 'a_string',
|
|
'ComponentFileName': 'a_file_name',
|
|
'DependencyInformationFile': 'a_file_name',
|
|
'EmbedManifest': 'true',
|
|
'GenerateCatalogFiles': 'true',
|
|
'InputResourceManifests': 'a_string',
|
|
'ManifestResourceFile': 'my_name',
|
|
'OutputManifestFile': 'a_file_name',
|
|
'RegistrarScriptFile': 'a_file_name',
|
|
'ReplacementsFile': 'a_file_name',
|
|
'SuppressStartupBanner': 'true',
|
|
'TypeLibraryFile': 'a_file_name',
|
|
'UpdateFileHashes': 'true',
|
|
'UpdateFileHashesSearchPath': 'a_file_name',
|
|
'UseFAT32Workaround': 'true',
|
|
'UseUnicodeResponseFiles': 'true',
|
|
'VerboseOutput': 'true'}}
|
|
expected_msbuild_settings = {
|
|
'ClCompile': {
|
|
'AdditionalIncludeDirectories': 'folder1;folder2;folder3',
|
|
'AdditionalOptions': 'a_string /J',
|
|
'AdditionalUsingDirectories': 'folder1;folder2;folder3',
|
|
'AssemblerListingLocation': 'a_file_name',
|
|
'AssemblerOutput': 'NoListing',
|
|
'BasicRuntimeChecks': 'StackFrameRuntimeCheck',
|
|
'BrowseInformation': 'true',
|
|
'BrowseInformationFile': 'a_file_name',
|
|
'BufferSecurityCheck': 'true',
|
|
'CallingConvention': 'Cdecl',
|
|
'CompileAs': 'CompileAsC',
|
|
'DebugInformationFormat': 'EditAndContinue',
|
|
'DisableLanguageExtensions': 'true',
|
|
'DisableSpecificWarnings': 'd1;d2;d3',
|
|
'EnableEnhancedInstructionSet': 'NotSet',
|
|
'EnableFiberSafeOptimizations': 'true',
|
|
'EnablePREfast': 'true',
|
|
'ErrorReporting': 'Prompt',
|
|
'ExceptionHandling': 'Async',
|
|
'ExpandAttributedSource': 'true',
|
|
'FavorSizeOrSpeed': 'Neither',
|
|
'FloatingPointExceptions': 'true',
|
|
'FloatingPointModel': 'Strict',
|
|
'ForceConformanceInForLoopScope': 'true',
|
|
'ForcedIncludeFiles': 'file1;file2;file3',
|
|
'ForcedUsingFiles': 'file1;file2;file3',
|
|
'FunctionLevelLinking': 'true',
|
|
'GenerateXMLDocumentationFiles': 'true',
|
|
'IgnoreStandardIncludePath': 'true',
|
|
'InlineFunctionExpansion': 'AnySuitable',
|
|
'IntrinsicFunctions': 'true',
|
|
'MinimalRebuild': 'true',
|
|
'ObjectFileName': 'a_file_name',
|
|
'OmitDefaultLibName': 'true',
|
|
'OmitFramePointers': 'true',
|
|
'OpenMPSupport': 'true',
|
|
'Optimization': 'Full',
|
|
'PrecompiledHeader': 'Create',
|
|
'PrecompiledHeaderFile': 'a_file_name',
|
|
'PrecompiledHeaderOutputFile': 'a_file_name',
|
|
'PreprocessKeepComments': 'true',
|
|
'PreprocessorDefinitions': 'd1;d2;d3',
|
|
'PreprocessSuppressLineNumbers': 'false',
|
|
'PreprocessToFile': 'true',
|
|
'ProgramDataBaseFileName': 'a_file_name',
|
|
'RuntimeLibrary': 'MultiThreaded',
|
|
'RuntimeTypeInfo': 'true',
|
|
'ShowIncludes': 'true',
|
|
'SmallerTypeCheck': 'true',
|
|
'StringPooling': 'true',
|
|
'StructMemberAlignment': '1Byte',
|
|
'SuppressStartupBanner': 'true',
|
|
'TreatWarningAsError': 'true',
|
|
'TreatWChar_tAsBuiltInType': 'true',
|
|
'UndefineAllPreprocessorDefinitions': 'true',
|
|
'UndefinePreprocessorDefinitions': 'd1;d2;d3',
|
|
'UseFullPaths': 'true',
|
|
'WarningLevel': 'Level2',
|
|
'WholeProgramOptimization': 'true',
|
|
'XMLDocumentationFileName': 'a_file_name'},
|
|
'Link': {
|
|
'AdditionalDependencies': 'file1;file2;file3',
|
|
'AdditionalLibraryDirectories': 'folder1;folder2;folder3',
|
|
'AdditionalManifestDependencies': 'file1;file2;file3',
|
|
'AdditionalOptions': 'a_string',
|
|
'AddModuleNamesToAssembly': 'file1;file2;file3',
|
|
'AllowIsolation': 'true',
|
|
'AssemblyDebug': '',
|
|
'AssemblyLinkResource': 'file1;file2;file3',
|
|
'BaseAddress': 'a_string',
|
|
'CLRImageType': 'ForceIJWImage',
|
|
'CLRThreadAttribute': 'STAThreadingAttribute',
|
|
'CLRUnmanagedCodeCheck': 'true',
|
|
'DataExecutionPrevention': '',
|
|
'DelayLoadDLLs': 'file1;file2;file3',
|
|
'DelaySign': 'true',
|
|
'Driver': 'Driver',
|
|
'EmbedManagedResourceFile': 'file1;file2;file3',
|
|
'EnableCOMDATFolding': '',
|
|
'EnableUAC': 'true',
|
|
'EntryPointSymbol': 'a_string',
|
|
'FixedBaseAddress': 'false',
|
|
'ForceSymbolReferences': 'file1;file2;file3',
|
|
'FunctionOrder': 'a_file_name',
|
|
'GenerateDebugInformation': 'true',
|
|
'GenerateMapFile': 'true',
|
|
'HeapCommitSize': 'a_string',
|
|
'HeapReserveSize': 'a_string',
|
|
'IgnoreAllDefaultLibraries': 'true',
|
|
'IgnoreEmbeddedIDL': 'true',
|
|
'IgnoreSpecificDefaultLibraries': 'file1;file2;file3',
|
|
'ImportLibrary': 'a_file_name',
|
|
'KeyContainer': 'a_file_name',
|
|
'KeyFile': 'a_file_name',
|
|
'LargeAddressAware': 'true',
|
|
'LinkErrorReporting': 'NoErrorReport',
|
|
'LinkTimeCodeGeneration': 'PGInstrument',
|
|
'ManifestFile': 'a_file_name',
|
|
'MapExports': 'true',
|
|
'MapFileName': 'a_file_name',
|
|
'MergedIDLBaseFileName': 'a_file_name',
|
|
'MergeSections': 'a_string',
|
|
'MidlCommandFile': 'a_file_name',
|
|
'ModuleDefinitionFile': 'a_file_name',
|
|
'NoEntryPoint': 'true',
|
|
'OptimizeReferences': '',
|
|
'OutputFile': 'a_file_name',
|
|
'PerUserRedirection': 'true',
|
|
'Profile': 'true',
|
|
'ProfileGuidedDatabase': 'a_file_name',
|
|
'ProgramDatabaseFile': 'a_file_name',
|
|
'RandomizedBaseAddress': 'false',
|
|
'RegisterOutput': 'true',
|
|
'SetChecksum': 'true',
|
|
'ShowProgress': 'NotSet',
|
|
'StackCommitSize': 'a_string',
|
|
'StackReserveSize': 'a_string',
|
|
'StripPrivateSymbols': 'a_file_name',
|
|
'SubSystem': 'Windows',
|
|
'SupportUnloadOfDelayLoadedDLL': 'true',
|
|
'SuppressStartupBanner': 'true',
|
|
'SwapRunFromCD': 'true',
|
|
'SwapRunFromNET': 'true',
|
|
'TargetMachine': 'MachineARM',
|
|
'TerminalServerAware': 'true',
|
|
'TurnOffAssemblyGeneration': 'true',
|
|
'TypeLibraryFile': 'a_file_name',
|
|
'TypeLibraryResourceID': '33',
|
|
'UACExecutionLevel': 'HighestAvailable',
|
|
'UACUIAccess': 'true',
|
|
'Version': 'a_string'},
|
|
'ResourceCompile': {
|
|
'AdditionalIncludeDirectories': 'folder1;folder2;folder3',
|
|
'AdditionalOptions': 'a_string',
|
|
'Culture': '0x03eb',
|
|
'IgnoreStandardIncludePath': 'true',
|
|
'PreprocessorDefinitions': 'd1;d2;d3',
|
|
'ResourceOutputFileName': 'a_string',
|
|
'ShowProgress': 'true',
|
|
'SuppressStartupBanner': 'true',
|
|
'UndefinePreprocessorDefinitions': 'd1;d2;d3'},
|
|
'Midl': {
|
|
'AdditionalIncludeDirectories': 'folder1;folder2;folder3',
|
|
'AdditionalOptions': 'a_string',
|
|
'CPreprocessOptions': 'a_string',
|
|
'DefaultCharType': 'Unsigned',
|
|
'DllDataFileName': 'a_file_name',
|
|
'EnableErrorChecks': 'All',
|
|
'ErrorCheckAllocations': 'true',
|
|
'ErrorCheckBounds': 'true',
|
|
'ErrorCheckEnumRange': 'true',
|
|
'ErrorCheckRefPointers': 'true',
|
|
'ErrorCheckStubData': 'true',
|
|
'GenerateStublessProxies': 'true',
|
|
'GenerateTypeLibrary': 'true',
|
|
'HeaderFileName': 'a_file_name',
|
|
'IgnoreStandardIncludePath': 'true',
|
|
'InterfaceIdentifierFileName': 'a_file_name',
|
|
'MkTypLibCompatible': 'true',
|
|
'OutputDirectory': 'a_string',
|
|
'PreprocessorDefinitions': 'd1;d2;d3',
|
|
'ProxyFileName': 'a_file_name',
|
|
'RedirectOutputAndErrors': 'a_file_name',
|
|
'StructMemberAlignment': '4',
|
|
'SuppressStartupBanner': 'true',
|
|
'TargetEnvironment': 'Win32',
|
|
'TypeLibraryName': 'a_file_name',
|
|
'UndefinePreprocessorDefinitions': 'd1;d2;d3',
|
|
'ValidateAllParameters': 'true',
|
|
'WarnAsError': 'true',
|
|
'WarningLevel': '4'},
|
|
'Lib': {
|
|
'AdditionalDependencies': 'file1;file2;file3',
|
|
'AdditionalLibraryDirectories': 'folder1;folder2;folder3',
|
|
'AdditionalOptions': 'a_string',
|
|
'ExportNamedFunctions': 'd1;d2;d3',
|
|
'ForceSymbolReferences': 'a_string',
|
|
'IgnoreAllDefaultLibraries': 'true',
|
|
'IgnoreSpecificDefaultLibraries': 'file1;file2;file3',
|
|
'ModuleDefinitionFile': 'a_file_name',
|
|
'OutputFile': 'a_file_name',
|
|
'SuppressStartupBanner': 'true',
|
|
'UseUnicodeResponseFiles': 'true'},
|
|
'Manifest': {
|
|
'AdditionalManifestFiles': 'file1;file2;file3',
|
|
'AdditionalOptions': 'a_string',
|
|
'AssemblyIdentity': 'a_string',
|
|
'ComponentFileName': 'a_file_name',
|
|
'GenerateCatalogFiles': 'true',
|
|
'InputResourceManifests': 'a_string',
|
|
'OutputManifestFile': 'a_file_name',
|
|
'RegistrarScriptFile': 'a_file_name',
|
|
'ReplacementsFile': 'a_file_name',
|
|
'SuppressStartupBanner': 'true',
|
|
'TypeLibraryFile': 'a_file_name',
|
|
'UpdateFileHashes': 'true',
|
|
'UpdateFileHashesSearchPath': 'a_file_name',
|
|
'VerboseOutput': 'true'},
|
|
'ManifestResourceCompile': {
|
|
'ResourceOutputFileName': 'my_name'},
|
|
'ProjectReference': {
|
|
'LinkLibraryDependencies': 'true',
|
|
'UseLibraryDependencyInputs': 'false'},
|
|
'': {
|
|
'EmbedManifest': 'true',
|
|
'GenerateManifest': 'true',
|
|
'IgnoreImportLibrary': 'true',
|
|
'LinkIncremental': 'false'}}
|
|
actual_msbuild_settings = MSVSSettings.ConvertToMSBuildSettings(
|
|
msvs_settings,
|
|
self.stderr)
|
|
self.assertEqual(expected_msbuild_settings, actual_msbuild_settings)
|
|
self._ExpectedWarnings([])
|
|
|
|
def testConvertToMSBuildSettings_actual(self):
|
|
"""Tests the conversion of an actual project.
|
|
|
|
A VS2008 project with most of the options defined was created through the
|
|
VS2008 IDE. It was then converted to VS2010. The tool settings found in
|
|
the .vcproj and .vcxproj files were converted to the two dictionaries
|
|
msvs_settings and expected_msbuild_settings.
|
|
|
|
Note that for many settings, the VS2010 converter adds macros like
|
|
%(AdditionalIncludeDirectories) to make sure than inherited values are
|
|
included. Since the Gyp projects we generate do not use inheritance,
|
|
we removed these macros. They were:
|
|
ClCompile:
|
|
AdditionalIncludeDirectories: ';%(AdditionalIncludeDirectories)'
|
|
AdditionalOptions: ' %(AdditionalOptions)'
|
|
AdditionalUsingDirectories: ';%(AdditionalUsingDirectories)'
|
|
DisableSpecificWarnings: ';%(DisableSpecificWarnings)',
|
|
ForcedIncludeFiles: ';%(ForcedIncludeFiles)',
|
|
ForcedUsingFiles: ';%(ForcedUsingFiles)',
|
|
PreprocessorDefinitions: ';%(PreprocessorDefinitions)',
|
|
UndefinePreprocessorDefinitions:
|
|
';%(UndefinePreprocessorDefinitions)',
|
|
Link:
|
|
AdditionalDependencies: ';%(AdditionalDependencies)',
|
|
AdditionalLibraryDirectories: ';%(AdditionalLibraryDirectories)',
|
|
AdditionalManifestDependencies:
|
|
';%(AdditionalManifestDependencies)',
|
|
AdditionalOptions: ' %(AdditionalOptions)',
|
|
AddModuleNamesToAssembly: ';%(AddModuleNamesToAssembly)',
|
|
AssemblyLinkResource: ';%(AssemblyLinkResource)',
|
|
DelayLoadDLLs: ';%(DelayLoadDLLs)',
|
|
EmbedManagedResourceFile: ';%(EmbedManagedResourceFile)',
|
|
ForceSymbolReferences: ';%(ForceSymbolReferences)',
|
|
IgnoreSpecificDefaultLibraries:
|
|
';%(IgnoreSpecificDefaultLibraries)',
|
|
ResourceCompile:
|
|
AdditionalIncludeDirectories: ';%(AdditionalIncludeDirectories)',
|
|
AdditionalOptions: ' %(AdditionalOptions)',
|
|
PreprocessorDefinitions: ';%(PreprocessorDefinitions)',
|
|
Manifest:
|
|
AdditionalManifestFiles: ';%(AdditionalManifestFiles)',
|
|
AdditionalOptions: ' %(AdditionalOptions)',
|
|
InputResourceManifests: ';%(InputResourceManifests)',
|
|
"""
|
|
msvs_settings = {
|
|
'VCCLCompilerTool': {
|
|
'AdditionalIncludeDirectories': 'dir1',
|
|
'AdditionalOptions': '/more',
|
|
'AdditionalUsingDirectories': 'test',
|
|
'AssemblerListingLocation': '$(IntDir)\\a',
|
|
'AssemblerOutput': '1',
|
|
'BasicRuntimeChecks': '3',
|
|
'BrowseInformation': '1',
|
|
'BrowseInformationFile': '$(IntDir)\\e',
|
|
'BufferSecurityCheck': 'false',
|
|
'CallingConvention': '1',
|
|
'CompileAs': '1',
|
|
'DebugInformationFormat': '4',
|
|
'DefaultCharIsUnsigned': 'true',
|
|
'Detect64BitPortabilityProblems': 'true',
|
|
'DisableLanguageExtensions': 'true',
|
|
'DisableSpecificWarnings': 'abc',
|
|
'EnableEnhancedInstructionSet': '1',
|
|
'EnableFiberSafeOptimizations': 'true',
|
|
'EnableFunctionLevelLinking': 'true',
|
|
'EnableIntrinsicFunctions': 'true',
|
|
'EnablePREfast': 'true',
|
|
'ErrorReporting': '2',
|
|
'ExceptionHandling': '2',
|
|
'ExpandAttributedSource': 'true',
|
|
'FavorSizeOrSpeed': '2',
|
|
'FloatingPointExceptions': 'true',
|
|
'FloatingPointModel': '1',
|
|
'ForceConformanceInForLoopScope': 'false',
|
|
'ForcedIncludeFiles': 'def',
|
|
'ForcedUsingFiles': 'ge',
|
|
'GeneratePreprocessedFile': '2',
|
|
'GenerateXMLDocumentationFiles': 'true',
|
|
'IgnoreStandardIncludePath': 'true',
|
|
'InlineFunctionExpansion': '1',
|
|
'KeepComments': 'true',
|
|
'MinimalRebuild': 'true',
|
|
'ObjectFile': '$(IntDir)\\b',
|
|
'OmitDefaultLibName': 'true',
|
|
'OmitFramePointers': 'true',
|
|
'OpenMP': 'true',
|
|
'Optimization': '3',
|
|
'PrecompiledHeaderFile': '$(IntDir)\\$(TargetName).pche',
|
|
'PrecompiledHeaderThrough': 'StdAfx.hd',
|
|
'PreprocessorDefinitions': 'WIN32;_DEBUG;_CONSOLE',
|
|
'ProgramDataBaseFileName': '$(IntDir)\\vc90b.pdb',
|
|
'RuntimeLibrary': '3',
|
|
'RuntimeTypeInfo': 'false',
|
|
'ShowIncludes': 'true',
|
|
'SmallerTypeCheck': 'true',
|
|
'StringPooling': 'true',
|
|
'StructMemberAlignment': '3',
|
|
'SuppressStartupBanner': 'false',
|
|
'TreatWChar_tAsBuiltInType': 'false',
|
|
'UndefineAllPreprocessorDefinitions': 'true',
|
|
'UndefinePreprocessorDefinitions': 'wer',
|
|
'UseFullPaths': 'true',
|
|
'UsePrecompiledHeader': '0',
|
|
'UseUnicodeResponseFiles': 'false',
|
|
'WarnAsError': 'true',
|
|
'WarningLevel': '3',
|
|
'WholeProgramOptimization': 'true',
|
|
'XMLDocumentationFileName': '$(IntDir)\\c'},
|
|
'VCLinkerTool': {
|
|
'AdditionalDependencies': 'zx',
|
|
'AdditionalLibraryDirectories': 'asd',
|
|
'AdditionalManifestDependencies': 's2',
|
|
'AdditionalOptions': '/mor2',
|
|
'AddModuleNamesToAssembly': 'd1',
|
|
'AllowIsolation': 'false',
|
|
'AssemblyDebug': '1',
|
|
'AssemblyLinkResource': 'd5',
|
|
'BaseAddress': '23423',
|
|
'CLRImageType': '3',
|
|
'CLRThreadAttribute': '1',
|
|
'CLRUnmanagedCodeCheck': 'true',
|
|
'DataExecutionPrevention': '0',
|
|
'DelayLoadDLLs': 'd4',
|
|
'DelaySign': 'true',
|
|
'Driver': '2',
|
|
'EmbedManagedResourceFile': 'd2',
|
|
'EnableCOMDATFolding': '1',
|
|
'EnableUAC': 'false',
|
|
'EntryPointSymbol': 'f5',
|
|
'ErrorReporting': '2',
|
|
'FixedBaseAddress': '1',
|
|
'ForceSymbolReferences': 'd3',
|
|
'FunctionOrder': 'fssdfsd',
|
|
'GenerateDebugInformation': 'true',
|
|
'GenerateManifest': 'false',
|
|
'GenerateMapFile': 'true',
|
|
'HeapCommitSize': '13',
|
|
'HeapReserveSize': '12',
|
|
'IgnoreAllDefaultLibraries': 'true',
|
|
'IgnoreDefaultLibraryNames': 'flob;flok',
|
|
'IgnoreEmbeddedIDL': 'true',
|
|
'IgnoreImportLibrary': 'true',
|
|
'ImportLibrary': 'f4',
|
|
'KeyContainer': 'f7',
|
|
'KeyFile': 'f6',
|
|
'LargeAddressAware': '2',
|
|
'LinkIncremental': '0',
|
|
'LinkLibraryDependencies': 'false',
|
|
'LinkTimeCodeGeneration': '1',
|
|
'ManifestFile':
|
|
'$(IntDir)\\$(TargetFileName).2intermediate.manifest',
|
|
'MapExports': 'true',
|
|
'MapFileName': 'd5',
|
|
'MergedIDLBaseFileName': 'f2',
|
|
'MergeSections': 'f5',
|
|
'MidlCommandFile': 'f1',
|
|
'ModuleDefinitionFile': 'sdsd',
|
|
'OptimizeForWindows98': '2',
|
|
'OptimizeReferences': '2',
|
|
'OutputFile': '$(OutDir)\\$(ProjectName)2.exe',
|
|
'PerUserRedirection': 'true',
|
|
'Profile': 'true',
|
|
'ProfileGuidedDatabase': '$(TargetDir)$(TargetName).pgdd',
|
|
'ProgramDatabaseFile': 'Flob.pdb',
|
|
'RandomizedBaseAddress': '1',
|
|
'RegisterOutput': 'true',
|
|
'ResourceOnlyDLL': 'true',
|
|
'SetChecksum': 'false',
|
|
'ShowProgress': '1',
|
|
'StackCommitSize': '15',
|
|
'StackReserveSize': '14',
|
|
'StripPrivateSymbols': 'd3',
|
|
'SubSystem': '1',
|
|
'SupportUnloadOfDelayLoadedDLL': 'true',
|
|
'SuppressStartupBanner': 'false',
|
|
'SwapRunFromCD': 'true',
|
|
'SwapRunFromNet': 'true',
|
|
'TargetMachine': '1',
|
|
'TerminalServerAware': '1',
|
|
'TurnOffAssemblyGeneration': 'true',
|
|
'TypeLibraryFile': 'f3',
|
|
'TypeLibraryResourceID': '12',
|
|
'UACExecutionLevel': '2',
|
|
'UACUIAccess': 'true',
|
|
'UseLibraryDependencyInputs': 'true',
|
|
'UseUnicodeResponseFiles': 'false',
|
|
'Version': '333'},
|
|
'VCResourceCompilerTool': {
|
|
'AdditionalIncludeDirectories': 'f3',
|
|
'AdditionalOptions': '/more3',
|
|
'Culture': '3084',
|
|
'IgnoreStandardIncludePath': 'true',
|
|
'PreprocessorDefinitions': '_UNICODE;UNICODE2',
|
|
'ResourceOutputFileName': '$(IntDir)/$(InputName)3.res',
|
|
'ShowProgress': 'true'},
|
|
'VCManifestTool': {
|
|
'AdditionalManifestFiles': 'sfsdfsd',
|
|
'AdditionalOptions': 'afdsdafsd',
|
|
'AssemblyIdentity': 'sddfdsadfsa',
|
|
'ComponentFileName': 'fsdfds',
|
|
'DependencyInformationFile': '$(IntDir)\\mt.depdfd',
|
|
'EmbedManifest': 'false',
|
|
'GenerateCatalogFiles': 'true',
|
|
'InputResourceManifests': 'asfsfdafs',
|
|
'ManifestResourceFile':
|
|
'$(IntDir)\\$(TargetFileName).embed.manifest.resfdsf',
|
|
'OutputManifestFile': '$(TargetPath).manifestdfs',
|
|
'RegistrarScriptFile': 'sdfsfd',
|
|
'ReplacementsFile': 'sdffsd',
|
|
'SuppressStartupBanner': 'false',
|
|
'TypeLibraryFile': 'sfsd',
|
|
'UpdateFileHashes': 'true',
|
|
'UpdateFileHashesSearchPath': 'sfsd',
|
|
'UseFAT32Workaround': 'true',
|
|
'UseUnicodeResponseFiles': 'false',
|
|
'VerboseOutput': 'true'}}
|
|
expected_msbuild_settings = {
|
|
'ClCompile': {
|
|
'AdditionalIncludeDirectories': 'dir1',
|
|
'AdditionalOptions': '/more /J',
|
|
'AdditionalUsingDirectories': 'test',
|
|
'AssemblerListingLocation': '$(IntDir)a',
|
|
'AssemblerOutput': 'AssemblyCode',
|
|
'BasicRuntimeChecks': 'EnableFastChecks',
|
|
'BrowseInformation': 'true',
|
|
'BrowseInformationFile': '$(IntDir)e',
|
|
'BufferSecurityCheck': 'false',
|
|
'CallingConvention': 'FastCall',
|
|
'CompileAs': 'CompileAsC',
|
|
'DebugInformationFormat': 'EditAndContinue',
|
|
'DisableLanguageExtensions': 'true',
|
|
'DisableSpecificWarnings': 'abc',
|
|
'EnableEnhancedInstructionSet': 'StreamingSIMDExtensions',
|
|
'EnableFiberSafeOptimizations': 'true',
|
|
'EnablePREfast': 'true',
|
|
'ErrorReporting': 'Queue',
|
|
'ExceptionHandling': 'Async',
|
|
'ExpandAttributedSource': 'true',
|
|
'FavorSizeOrSpeed': 'Size',
|
|
'FloatingPointExceptions': 'true',
|
|
'FloatingPointModel': 'Strict',
|
|
'ForceConformanceInForLoopScope': 'false',
|
|
'ForcedIncludeFiles': 'def',
|
|
'ForcedUsingFiles': 'ge',
|
|
'FunctionLevelLinking': 'true',
|
|
'GenerateXMLDocumentationFiles': 'true',
|
|
'IgnoreStandardIncludePath': 'true',
|
|
'InlineFunctionExpansion': 'OnlyExplicitInline',
|
|
'IntrinsicFunctions': 'true',
|
|
'MinimalRebuild': 'true',
|
|
'ObjectFileName': '$(IntDir)b',
|
|
'OmitDefaultLibName': 'true',
|
|
'OmitFramePointers': 'true',
|
|
'OpenMPSupport': 'true',
|
|
'Optimization': 'Full',
|
|
'PrecompiledHeader': 'NotUsing', # Actual conversion gives ''
|
|
'PrecompiledHeaderFile': 'StdAfx.hd',
|
|
'PrecompiledHeaderOutputFile': '$(IntDir)$(TargetName).pche',
|
|
'PreprocessKeepComments': 'true',
|
|
'PreprocessorDefinitions': 'WIN32;_DEBUG;_CONSOLE',
|
|
'PreprocessSuppressLineNumbers': 'true',
|
|
'PreprocessToFile': 'true',
|
|
'ProgramDataBaseFileName': '$(IntDir)vc90b.pdb',
|
|
'RuntimeLibrary': 'MultiThreadedDebugDLL',
|
|
'RuntimeTypeInfo': 'false',
|
|
'ShowIncludes': 'true',
|
|
'SmallerTypeCheck': 'true',
|
|
'StringPooling': 'true',
|
|
'StructMemberAlignment': '4Bytes',
|
|
'SuppressStartupBanner': 'false',
|
|
'TreatWarningAsError': 'true',
|
|
'TreatWChar_tAsBuiltInType': 'false',
|
|
'UndefineAllPreprocessorDefinitions': 'true',
|
|
'UndefinePreprocessorDefinitions': 'wer',
|
|
'UseFullPaths': 'true',
|
|
'WarningLevel': 'Level3',
|
|
'WholeProgramOptimization': 'true',
|
|
'XMLDocumentationFileName': '$(IntDir)c'},
|
|
'Link': {
|
|
'AdditionalDependencies': 'zx',
|
|
'AdditionalLibraryDirectories': 'asd',
|
|
'AdditionalManifestDependencies': 's2',
|
|
'AdditionalOptions': '/mor2',
|
|
'AddModuleNamesToAssembly': 'd1',
|
|
'AllowIsolation': 'false',
|
|
'AssemblyDebug': 'true',
|
|
'AssemblyLinkResource': 'd5',
|
|
'BaseAddress': '23423',
|
|
'CLRImageType': 'ForceSafeILImage',
|
|
'CLRThreadAttribute': 'MTAThreadingAttribute',
|
|
'CLRUnmanagedCodeCheck': 'true',
|
|
'DataExecutionPrevention': '',
|
|
'DelayLoadDLLs': 'd4',
|
|
'DelaySign': 'true',
|
|
'Driver': 'UpOnly',
|
|
'EmbedManagedResourceFile': 'd2',
|
|
'EnableCOMDATFolding': 'false',
|
|
'EnableUAC': 'false',
|
|
'EntryPointSymbol': 'f5',
|
|
'FixedBaseAddress': 'false',
|
|
'ForceSymbolReferences': 'd3',
|
|
'FunctionOrder': 'fssdfsd',
|
|
'GenerateDebugInformation': 'true',
|
|
'GenerateMapFile': 'true',
|
|
'HeapCommitSize': '13',
|
|
'HeapReserveSize': '12',
|
|
'IgnoreAllDefaultLibraries': 'true',
|
|
'IgnoreEmbeddedIDL': 'true',
|
|
'IgnoreSpecificDefaultLibraries': 'flob;flok',
|
|
'ImportLibrary': 'f4',
|
|
'KeyContainer': 'f7',
|
|
'KeyFile': 'f6',
|
|
'LargeAddressAware': 'true',
|
|
'LinkErrorReporting': 'QueueForNextLogin',
|
|
'LinkTimeCodeGeneration': 'UseLinkTimeCodeGeneration',
|
|
'ManifestFile': '$(IntDir)$(TargetFileName).2intermediate.manifest',
|
|
'MapExports': 'true',
|
|
'MapFileName': 'd5',
|
|
'MergedIDLBaseFileName': 'f2',
|
|
'MergeSections': 'f5',
|
|
'MidlCommandFile': 'f1',
|
|
'ModuleDefinitionFile': 'sdsd',
|
|
'NoEntryPoint': 'true',
|
|
'OptimizeReferences': 'true',
|
|
'OutputFile': '$(OutDir)$(ProjectName)2.exe',
|
|
'PerUserRedirection': 'true',
|
|
'Profile': 'true',
|
|
'ProfileGuidedDatabase': '$(TargetDir)$(TargetName).pgdd',
|
|
'ProgramDatabaseFile': 'Flob.pdb',
|
|
'RandomizedBaseAddress': 'false',
|
|
'RegisterOutput': 'true',
|
|
'SetChecksum': 'false',
|
|
'ShowProgress': 'LinkVerbose',
|
|
'StackCommitSize': '15',
|
|
'StackReserveSize': '14',
|
|
'StripPrivateSymbols': 'd3',
|
|
'SubSystem': 'Console',
|
|
'SupportUnloadOfDelayLoadedDLL': 'true',
|
|
'SuppressStartupBanner': 'false',
|
|
'SwapRunFromCD': 'true',
|
|
'SwapRunFromNET': 'true',
|
|
'TargetMachine': 'MachineX86',
|
|
'TerminalServerAware': 'false',
|
|
'TurnOffAssemblyGeneration': 'true',
|
|
'TypeLibraryFile': 'f3',
|
|
'TypeLibraryResourceID': '12',
|
|
'UACExecutionLevel': 'RequireAdministrator',
|
|
'UACUIAccess': 'true',
|
|
'Version': '333'},
|
|
'ResourceCompile': {
|
|
'AdditionalIncludeDirectories': 'f3',
|
|
'AdditionalOptions': '/more3',
|
|
'Culture': '0x0c0c',
|
|
'IgnoreStandardIncludePath': 'true',
|
|
'PreprocessorDefinitions': '_UNICODE;UNICODE2',
|
|
'ResourceOutputFileName': '$(IntDir)%(Filename)3.res',
|
|
'ShowProgress': 'true'},
|
|
'Manifest': {
|
|
'AdditionalManifestFiles': 'sfsdfsd',
|
|
'AdditionalOptions': 'afdsdafsd',
|
|
'AssemblyIdentity': 'sddfdsadfsa',
|
|
'ComponentFileName': 'fsdfds',
|
|
'GenerateCatalogFiles': 'true',
|
|
'InputResourceManifests': 'asfsfdafs',
|
|
'OutputManifestFile': '$(TargetPath).manifestdfs',
|
|
'RegistrarScriptFile': 'sdfsfd',
|
|
'ReplacementsFile': 'sdffsd',
|
|
'SuppressStartupBanner': 'false',
|
|
'TypeLibraryFile': 'sfsd',
|
|
'UpdateFileHashes': 'true',
|
|
'UpdateFileHashesSearchPath': 'sfsd',
|
|
'VerboseOutput': 'true'},
|
|
'ProjectReference': {
|
|
'LinkLibraryDependencies': 'false',
|
|
'UseLibraryDependencyInputs': 'true'},
|
|
'': {
|
|
'EmbedManifest': 'false',
|
|
'GenerateManifest': 'false',
|
|
'IgnoreImportLibrary': 'true',
|
|
'LinkIncremental': ''
|
|
},
|
|
'ManifestResourceCompile': {
|
|
'ResourceOutputFileName':
|
|
'$(IntDir)$(TargetFileName).embed.manifest.resfdsf'}
|
|
}
|
|
actual_msbuild_settings = MSVSSettings.ConvertToMSBuildSettings(
|
|
msvs_settings,
|
|
self.stderr)
|
|
self.assertEqual(expected_msbuild_settings, actual_msbuild_settings)
|
|
self._ExpectedWarnings([])
|
|
|
|
|
|
if __name__ == '__main__':
|
|
unittest.main()
|
|
|