summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.clang-tidy30
-rw-r--r--CMakeLists.txt14
-rw-r--r--Modules/FindJava.cmake3
-rw-r--r--Source/CMakeVersion.cmake2
-rw-r--r--Source/cmVS10MASMFlagTable.h76
-rw-r--r--Source/cmVS11MASMFlagTable.h76
-rw-r--r--Source/cmVS12MASMFlagTable.h76
-rw-r--r--Source/cmVS14MASMFlagTable.h76
-rw-r--r--Source/cmVisualStudio10TargetGenerator.cxx17
-rw-r--r--Source/cm_auto_ptr.hxx10
-rw-r--r--Utilities/.clang-tidy6
-rw-r--r--Utilities/CMakeLists.txt3
12 files changed, 226 insertions, 163 deletions
diff --git a/.clang-tidy b/.clang-tidy
new file mode 100644
index 0000000..a9d121a
--- /dev/null
+++ b/.clang-tidy
@@ -0,0 +1,30 @@
+---
+Checks: "-*,\
+misc-*,\
+-misc-incorrect-roundings,\
+-misc-macro-parentheses,\
+-misc-misplaced-widening-cast,\
+-misc-static-assert,\
+modernize-make-shared,\
+modernize-make-unique,\
+modernize-redundant-void-arg,\
+modernize-use-bool-literals,\
+modernize-use-nullptr,\
+modernize-use-override,\
+performance-*,\
+-performance-inefficient-string-concatenation,\
+readability-*,\
+-readability-function-size,\
+-readability-identifier-naming,\
+-readability-implicit-bool-cast,\
+-readability-inconsistent-declaration-parameter-name,\
+-readability-named-parameter,\
+-readability-redundant-declaration,\
+-readability-redundant-member-init,\
+-readability-simplify-boolean-expr,\
+"
+HeaderFilterRegex: 'Source/cm[^/]*\.(h|hxx|cxx)$'
+CheckOptions:
+ - key: modernize-use-nullptr.NullMacros
+ value: 'CM_NULLPTR'
+...
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 545177b..4dcf2f0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -226,6 +226,20 @@ option(CMAKE_USE_FOLDERS "Enable folder grouping of projects in IDEs." ON)
mark_as_advanced(CMAKE_USE_FOLDERS)
+option(CMake_RUN_CLANG_TIDY "Run clang-tidy with the compiler." OFF)
+if(CMake_RUN_CLANG_TIDY)
+ if(CMake_SOURCE_DIR STREQUAL CMake_BINARY_DIR)
+ message(FATAL_ERROR "CMake_RUN_CLANG_TIDY requires an out-of-source build!")
+ endif()
+ find_program(CLANG_TIDY_COMMAND NAMES clang-tidy)
+ if(NOT CLANG_TIDY_COMMAND)
+ message(FATAL_ERROR "CMake_RUN_CLANG_TIDY is ON but clang-tidy is not found!")
+ endif()
+ set(CMAKE_CXX_CLANG_TIDY "${CLANG_TIDY_COMMAND}")
+endif()
+configure_file(.clang-tidy .clang-tidy COPYONLY)
+
+
option(CMake_RUN_IWYU "Run include-what-you-use with the compiler." OFF)
if(CMake_RUN_IWYU)
find_program(IWYU_COMMAND NAMES include-what-you-use iwyu)
diff --git a/Modules/FindJava.cmake b/Modules/FindJava.cmake
index 4265a97..3d32560 100644
--- a/Modules/FindJava.cmake
+++ b/Modules/FindJava.cmake
@@ -143,6 +143,9 @@ if(Java_JAVA_EXECUTABLE)
if(var MATCHES "java version \"([0-9]+\\.[0-9]+\\.[0-9_.]+.*)\"")
# This is most likely Sun / OpenJDK, or maybe GCJ-java compat layer
set(Java_VERSION_STRING "${CMAKE_MATCH_1}")
+ elseif(var MATCHES "openjdk version \"([0-9]+)-[a-z]+\"")
+ # OpenJDK 9 early access builds or locally built
+ set(Java_VERSION_STRING "1.${CMAKE_MATCH_1}.0")
elseif(var MATCHES "java full version \"kaffe-([0-9]+\\.[0-9]+\\.[0-9_]+)\"")
# Kaffe style
set(Java_VERSION_STRING "${CMAKE_MATCH_1}")
diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake
index ce87fe2..4009571 100644
--- a/Source/CMakeVersion.cmake
+++ b/Source/CMakeVersion.cmake
@@ -1,5 +1,5 @@
# CMake version number components.
set(CMake_VERSION_MAJOR 3)
set(CMake_VERSION_MINOR 8)
-set(CMake_VERSION_PATCH 20170504)
+set(CMake_VERSION_PATCH 20170505)
#set(CMake_VERSION_RC 1)
diff --git a/Source/cmVS10MASMFlagTable.h b/Source/cmVS10MASMFlagTable.h
index 82e5270..0a45245 100644
--- a/Source/cmVS10MASMFlagTable.h
+++ b/Source/cmVS10MASMFlagTable.h
@@ -2,74 +2,72 @@ static cmVS7FlagTable cmVS10MASMFlagTable[] = {
// Enum Properties
{ "PreserveIdentifierCase", "", "Default", "0", 0 },
- { "PreserveIdentifierCase", "/Cp", "Preserves Identifier Case (/Cp)", "1",
+ { "PreserveIdentifierCase", "Cp", "Preserves Identifier Case (/Cp)", "1",
0 },
- { "PreserveIdentifierCase", "/Cu",
+ { "PreserveIdentifierCase", "Cu",
"Maps all identifiers to upper case. (/Cu)", "2", 0 },
- { "PreserveIdentifierCase", "/Cx",
+ { "PreserveIdentifierCase", "Cx",
"Preserves case in public and extern symbols. (/Cx)", "3", 0 },
- { "WarningLevel", "/W0", "Warning Level 0 (/W0)", "0", 0 },
- { "WarningLevel", "/W1", "Warning Level 1 (/W1)", "1", 0 },
- { "WarningLevel", "/W2", "Warning Level 2 (/W2)", "2", 0 },
- { "WarningLevel", "/W3", "Warning Level 3 (/W3)", "3", 0 },
+ { "WarningLevel", "W0", "Warning Level 0 (/W0)", "0", 0 },
+ { "WarningLevel", "W1", "Warning Level 1 (/W1)", "1", 0 },
+ { "WarningLevel", "W2", "Warning Level 2 (/W2)", "2", 0 },
+ { "WarningLevel", "W3", "Warning Level 3 (/W3)", "3", 0 },
{ "PackAlignmentBoundary", "", "Default", "0", 0 },
- { "PackAlignmentBoundary", "/Zp1", "One Byte Boundary (/Zp1)", "1", 0 },
- { "PackAlignmentBoundary", "/Zp2", "Two Byte Boundary (/Zp2)", "2", 0 },
- { "PackAlignmentBoundary", "/Zp4", "Four Byte Boundary (/Zp4)", "3", 0 },
- { "PackAlignmentBoundary", "/Zp8", "Eight Byte Boundary (/Zp8)", "4", 0 },
- { "PackAlignmentBoundary", "/Zp16", "Sixteen Byte Boundary (/Zp16)", "5",
- 0 },
+ { "PackAlignmentBoundary", "Zp1", "One Byte Boundary (/Zp1)", "1", 0 },
+ { "PackAlignmentBoundary", "Zp2", "Two Byte Boundary (/Zp2)", "2", 0 },
+ { "PackAlignmentBoundary", "Zp4", "Four Byte Boundary (/Zp4)", "3", 0 },
+ { "PackAlignmentBoundary", "Zp8", "Eight Byte Boundary (/Zp8)", "4", 0 },
+ { "PackAlignmentBoundary", "Zp16", "Sixteen Byte Boundary (/Zp16)", "5", 0 },
{ "CallingConvention", "", "Default", "0", 0 },
- { "CallingConvention", "/Gd", "Use C-style Calling Convention (/Gd)", "1",
- 0 },
- { "CallingConvention", "/Gz", "Use stdcall Calling Convention (/Gz)", "2",
+ { "CallingConvention", "Gd", "Use C-style Calling Convention (/Gd)", "1",
0 },
- { "CallingConvention", "/Gc", "Use Pascal Calling Convention (/Gc)", "3",
+ { "CallingConvention", "Gz", "Use stdcall Calling Convention (/Gz)", "2",
0 },
+ { "CallingConvention", "Gc", "Use Pascal Calling Convention (/Gc)", "3", 0 },
- { "ErrorReporting", "/errorReport:prompt",
+ { "ErrorReporting", "errorReport:prompt",
"Prompt to send report immediately (/errorReport:prompt)", "0", 0 },
- { "ErrorReporting", "/errorReport:queue",
+ { "ErrorReporting", "errorReport:queue",
"Prompt to send report at the next logon (/errorReport:queue)", "1", 0 },
- { "ErrorReporting", "/errorReport:send",
+ { "ErrorReporting", "errorReport:send",
"Automatically send report (/errorReport:send)", "2", 0 },
- { "ErrorReporting", "/errorReport:none",
+ { "ErrorReporting", "errorReport:none",
"Do not send report (/errorReport:none)", "3", 0 },
// Bool Properties
- { "NoLogo", "/nologo", "", "true", 0 },
- { "GeneratePreprocessedSourceListing", "/EP", "", "true", 0 },
- { "ListAllAvailableInformation", "/Sa", "", "true", 0 },
- { "UseSafeExceptionHandlers", "/safeseh", "", "true", 0 },
- { "AddFirstPassListing", "/Sf", "", "true", 0 },
- { "EnableAssemblyGeneratedCodeListing", "/Sg", "", "true", 0 },
- { "DisableSymbolTable", "/Sn", "", "true", 0 },
- { "EnableFalseConditionalsInListing", "/Sx", "", "true", 0 },
- { "TreatWarningsAsErrors", "/WX", "", "true", 0 },
- { "MakeAllSymbolsPublic", "/Zf", "", "true", 0 },
- { "GenerateDebugInformation", "/Zi", "", "true", 0 },
- { "EnableMASM51Compatibility", "/Zm", "", "true", 0 },
- { "PerformSyntaxCheckOnly", "/Zs", "", "true", 0 },
+ { "NoLogo", "nologo", "", "true", 0 },
+ { "GeneratePreprocessedSourceListing", "EP", "", "true", 0 },
+ { "ListAllAvailableInformation", "Sa", "", "true", 0 },
+ { "UseSafeExceptionHandlers", "safeseh", "", "true", 0 },
+ { "AddFirstPassListing", "Sf", "", "true", 0 },
+ { "EnableAssemblyGeneratedCodeListing", "Sg", "", "true", 0 },
+ { "DisableSymbolTable", "Sn", "", "true", 0 },
+ { "EnableFalseConditionalsInListing", "Sx", "", "true", 0 },
+ { "TreatWarningsAsErrors", "WX", "", "true", 0 },
+ { "MakeAllSymbolsPublic", "Zf", "", "true", 0 },
+ { "GenerateDebugInformation", "Zi", "", "true", 0 },
+ { "EnableMASM51Compatibility", "Zm", "", "true", 0 },
+ { "PerformSyntaxCheckOnly", "Zs", "", "true", 0 },
// Bool Properties With Argument
// String List Properties
- { "PreprocessorDefinitions", "/D", "Preprocessor Definitions", "",
+ { "PreprocessorDefinitions", "D", "Preprocessor Definitions", "",
cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable },
- { "IncludePaths", "/I", "Include Paths", "",
+ { "IncludePaths", "I", "Include Paths", "",
cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable },
- { "BrowseFile", "/FR", "Generate Browse Information File", "",
+ { "BrowseFile", "FR", "Generate Browse Information File", "",
cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable },
// Skip [AdditionalDependencies] - no command line Switch.
// String Properties
// Skip [Inputs] - no command line Switch.
- { "ObjectFileName", "/Fo", "Object File Name", "",
+ { "ObjectFileName", "Fo", "Object File Name", "",
cmVS7FlagTable::UserValue },
- { "AssembledCodeListingFile", "/Fl", "Assembled Code Listing File", "",
+ { "AssembledCodeListingFile", "Fl", "Assembled Code Listing File", "",
cmVS7FlagTable::UserValue },
// Skip [CommandLineTemplate] - no command line Switch.
// Skip [ExecutionDescription] - no command line Switch.
diff --git a/Source/cmVS11MASMFlagTable.h b/Source/cmVS11MASMFlagTable.h
index 1aca169..fdf8239 100644
--- a/Source/cmVS11MASMFlagTable.h
+++ b/Source/cmVS11MASMFlagTable.h
@@ -2,74 +2,72 @@ static cmVS7FlagTable cmVS11MASMFlagTable[] = {
// Enum Properties
{ "PreserveIdentifierCase", "", "Default", "0", 0 },
- { "PreserveIdentifierCase", "/Cp", "Preserves Identifier Case (/Cp)", "1",
+ { "PreserveIdentifierCase", "Cp", "Preserves Identifier Case (/Cp)", "1",
0 },
- { "PreserveIdentifierCase", "/Cu",
+ { "PreserveIdentifierCase", "Cu",
"Maps all identifiers to upper case. (/Cu)", "2", 0 },
- { "PreserveIdentifierCase", "/Cx",
+ { "PreserveIdentifierCase", "Cx",
"Preserves case in public and extern symbols. (/Cx)", "3", 0 },
- { "WarningLevel", "/W0", "Warning Level 0 (/W0)", "0", 0 },
- { "WarningLevel", "/W1", "Warning Level 1 (/W1)", "1", 0 },
- { "WarningLevel", "/W2", "Warning Level 2 (/W2)", "2", 0 },
- { "WarningLevel", "/W3", "Warning Level 3 (/W3)", "3", 0 },
+ { "WarningLevel", "W0", "Warning Level 0 (/W0)", "0", 0 },
+ { "WarningLevel", "W1", "Warning Level 1 (/W1)", "1", 0 },
+ { "WarningLevel", "W2", "Warning Level 2 (/W2)", "2", 0 },
+ { "WarningLevel", "W3", "Warning Level 3 (/W3)", "3", 0 },
{ "PackAlignmentBoundary", "", "Default", "0", 0 },
- { "PackAlignmentBoundary", "/Zp1", "One Byte Boundary (/Zp1)", "1", 0 },
- { "PackAlignmentBoundary", "/Zp2", "Two Byte Boundary (/Zp2)", "2", 0 },
- { "PackAlignmentBoundary", "/Zp4", "Four Byte Boundary (/Zp4)", "3", 0 },
- { "PackAlignmentBoundary", "/Zp8", "Eight Byte Boundary (/Zp8)", "4", 0 },
- { "PackAlignmentBoundary", "/Zp16", "Sixteen Byte Boundary (/Zp16)", "5",
- 0 },
+ { "PackAlignmentBoundary", "Zp1", "One Byte Boundary (/Zp1)", "1", 0 },
+ { "PackAlignmentBoundary", "Zp2", "Two Byte Boundary (/Zp2)", "2", 0 },
+ { "PackAlignmentBoundary", "Zp4", "Four Byte Boundary (/Zp4)", "3", 0 },
+ { "PackAlignmentBoundary", "Zp8", "Eight Byte Boundary (/Zp8)", "4", 0 },
+ { "PackAlignmentBoundary", "Zp16", "Sixteen Byte Boundary (/Zp16)", "5", 0 },
{ "CallingConvention", "", "Default", "0", 0 },
- { "CallingConvention", "/Gd", "Use C-style Calling Convention (/Gd)", "1",
- 0 },
- { "CallingConvention", "/Gz", "Use stdcall Calling Convention (/Gz)", "2",
+ { "CallingConvention", "Gd", "Use C-style Calling Convention (/Gd)", "1",
0 },
- { "CallingConvention", "/Gc", "Use Pascal Calling Convention (/Gc)", "3",
+ { "CallingConvention", "Gz", "Use stdcall Calling Convention (/Gz)", "2",
0 },
+ { "CallingConvention", "Gc", "Use Pascal Calling Convention (/Gc)", "3", 0 },
- { "ErrorReporting", "/errorReport:prompt",
+ { "ErrorReporting", "errorReport:prompt",
"Prompt to send report immediately (/errorReport:prompt)", "0", 0 },
- { "ErrorReporting", "/errorReport:queue",
+ { "ErrorReporting", "errorReport:queue",
"Prompt to send report at the next logon (/errorReport:queue)", "1", 0 },
- { "ErrorReporting", "/errorReport:send",
+ { "ErrorReporting", "errorReport:send",
"Automatically send report (/errorReport:send)", "2", 0 },
- { "ErrorReporting", "/errorReport:none",
+ { "ErrorReporting", "errorReport:none",
"Do not send report (/errorReport:none)", "3", 0 },
// Bool Properties
- { "NoLogo", "/nologo", "", "true", 0 },
- { "GeneratePreprocessedSourceListing", "/EP", "", "true", 0 },
- { "ListAllAvailableInformation", "/Sa", "", "true", 0 },
- { "UseSafeExceptionHandlers", "/safeseh", "", "true", 0 },
- { "AddFirstPassListing", "/Sf", "", "true", 0 },
- { "EnableAssemblyGeneratedCodeListing", "/Sg", "", "true", 0 },
- { "DisableSymbolTable", "/Sn", "", "true", 0 },
- { "EnableFalseConditionalsInListing", "/Sx", "", "true", 0 },
- { "TreatWarningsAsErrors", "/WX", "", "true", 0 },
- { "MakeAllSymbolsPublic", "/Zf", "", "true", 0 },
- { "GenerateDebugInformation", "/Zi", "", "true", 0 },
- { "EnableMASM51Compatibility", "/Zm", "", "true", 0 },
- { "PerformSyntaxCheckOnly", "/Zs", "", "true", 0 },
+ { "NoLogo", "nologo", "", "true", 0 },
+ { "GeneratePreprocessedSourceListing", "EP", "", "true", 0 },
+ { "ListAllAvailableInformation", "Sa", "", "true", 0 },
+ { "UseSafeExceptionHandlers", "safeseh", "", "true", 0 },
+ { "AddFirstPassListing", "Sf", "", "true", 0 },
+ { "EnableAssemblyGeneratedCodeListing", "Sg", "", "true", 0 },
+ { "DisableSymbolTable", "Sn", "", "true", 0 },
+ { "EnableFalseConditionalsInListing", "Sx", "", "true", 0 },
+ { "TreatWarningsAsErrors", "WX", "", "true", 0 },
+ { "MakeAllSymbolsPublic", "Zf", "", "true", 0 },
+ { "GenerateDebugInformation", "Zi", "", "true", 0 },
+ { "EnableMASM51Compatibility", "Zm", "", "true", 0 },
+ { "PerformSyntaxCheckOnly", "Zs", "", "true", 0 },
// Bool Properties With Argument
// String List Properties
- { "PreprocessorDefinitions", "/D", "Preprocessor Definitions", "",
+ { "PreprocessorDefinitions", "D", "Preprocessor Definitions", "",
cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable },
- { "IncludePaths", "/I", "Include Paths", "",
+ { "IncludePaths", "I", "Include Paths", "",
cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable },
- { "BrowseFile", "/FR", "Generate Browse Information File", "",
+ { "BrowseFile", "FR", "Generate Browse Information File", "",
cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable },
// Skip [AdditionalDependencies] - no command line Switch.
// String Properties
// Skip [Inputs] - no command line Switch.
- { "ObjectFileName", "/Fo", "Object File Name", "",
+ { "ObjectFileName", "Fo", "Object File Name", "",
cmVS7FlagTable::UserValue },
- { "AssembledCodeListingFile", "/Fl", "Assembled Code Listing File", "",
+ { "AssembledCodeListingFile", "Fl", "Assembled Code Listing File", "",
cmVS7FlagTable::UserValue },
// Skip [CommandLineTemplate] - no command line Switch.
// Skip [ExecutionDescription] - no command line Switch.
diff --git a/Source/cmVS12MASMFlagTable.h b/Source/cmVS12MASMFlagTable.h
index a7e4a80..acc0d48 100644
--- a/Source/cmVS12MASMFlagTable.h
+++ b/Source/cmVS12MASMFlagTable.h
@@ -2,74 +2,72 @@ static cmVS7FlagTable cmVS12MASMFlagTable[] = {
// Enum Properties
{ "PreserveIdentifierCase", "", "Default", "0", 0 },
- { "PreserveIdentifierCase", "/Cp", "Preserves Identifier Case (/Cp)", "1",
+ { "PreserveIdentifierCase", "Cp", "Preserves Identifier Case (/Cp)", "1",
0 },
- { "PreserveIdentifierCase", "/Cu",
+ { "PreserveIdentifierCase", "Cu",
"Maps all identifiers to upper case. (/Cu)", "2", 0 },
- { "PreserveIdentifierCase", "/Cx",
+ { "PreserveIdentifierCase", "Cx",
"Preserves case in public and extern symbols. (/Cx)", "3", 0 },
- { "WarningLevel", "/W0", "Warning Level 0 (/W0)", "0", 0 },
- { "WarningLevel", "/W1", "Warning Level 1 (/W1)", "1", 0 },
- { "WarningLevel", "/W2", "Warning Level 2 (/W2)", "2", 0 },
- { "WarningLevel", "/W3", "Warning Level 3 (/W3)", "3", 0 },
+ { "WarningLevel", "W0", "Warning Level 0 (/W0)", "0", 0 },
+ { "WarningLevel", "W1", "Warning Level 1 (/W1)", "1", 0 },
+ { "WarningLevel", "W2", "Warning Level 2 (/W2)", "2", 0 },
+ { "WarningLevel", "W3", "Warning Level 3 (/W3)", "3", 0 },
{ "PackAlignmentBoundary", "", "Default", "0", 0 },
- { "PackAlignmentBoundary", "/Zp1", "One Byte Boundary (/Zp1)", "1", 0 },
- { "PackAlignmentBoundary", "/Zp2", "Two Byte Boundary (/Zp2)", "2", 0 },
- { "PackAlignmentBoundary", "/Zp4", "Four Byte Boundary (/Zp4)", "3", 0 },
- { "PackAlignmentBoundary", "/Zp8", "Eight Byte Boundary (/Zp8)", "4", 0 },
- { "PackAlignmentBoundary", "/Zp16", "Sixteen Byte Boundary (/Zp16)", "5",
- 0 },
+ { "PackAlignmentBoundary", "Zp1", "One Byte Boundary (/Zp1)", "1", 0 },
+ { "PackAlignmentBoundary", "Zp2", "Two Byte Boundary (/Zp2)", "2", 0 },
+ { "PackAlignmentBoundary", "Zp4", "Four Byte Boundary (/Zp4)", "3", 0 },
+ { "PackAlignmentBoundary", "Zp8", "Eight Byte Boundary (/Zp8)", "4", 0 },
+ { "PackAlignmentBoundary", "Zp16", "Sixteen Byte Boundary (/Zp16)", "5", 0 },
{ "CallingConvention", "", "Default", "0", 0 },
- { "CallingConvention", "/Gd", "Use C-style Calling Convention (/Gd)", "1",
- 0 },
- { "CallingConvention", "/Gz", "Use stdcall Calling Convention (/Gz)", "2",
+ { "CallingConvention", "Gd", "Use C-style Calling Convention (/Gd)", "1",
0 },
- { "CallingConvention", "/Gc", "Use Pascal Calling Convention (/Gc)", "3",
+ { "CallingConvention", "Gz", "Use stdcall Calling Convention (/Gz)", "2",
0 },
+ { "CallingConvention", "Gc", "Use Pascal Calling Convention (/Gc)", "3", 0 },
- { "ErrorReporting", "/errorReport:prompt",
+ { "ErrorReporting", "errorReport:prompt",
"Prompt to send report immediately (/errorReport:prompt)", "0", 0 },
- { "ErrorReporting", "/errorReport:queue",
+ { "ErrorReporting", "errorReport:queue",
"Prompt to send report at the next logon (/errorReport:queue)", "1", 0 },
- { "ErrorReporting", "/errorReport:send",
+ { "ErrorReporting", "errorReport:send",
"Automatically send report (/errorReport:send)", "2", 0 },
- { "ErrorReporting", "/errorReport:none",
+ { "ErrorReporting", "errorReport:none",
"Do not send report (/errorReport:none)", "3", 0 },
// Bool Properties
- { "NoLogo", "/nologo", "", "true", 0 },
- { "GeneratePreprocessedSourceListing", "/EP", "", "true", 0 },
- { "ListAllAvailableInformation", "/Sa", "", "true", 0 },
- { "UseSafeExceptionHandlers", "/safeseh", "", "true", 0 },
- { "AddFirstPassListing", "/Sf", "", "true", 0 },
- { "EnableAssemblyGeneratedCodeListing", "/Sg", "", "true", 0 },
- { "DisableSymbolTable", "/Sn", "", "true", 0 },
- { "EnableFalseConditionalsInListing", "/Sx", "", "true", 0 },
- { "TreatWarningsAsErrors", "/WX", "", "true", 0 },
- { "MakeAllSymbolsPublic", "/Zf", "", "true", 0 },
- { "GenerateDebugInformation", "/Zi", "", "true", 0 },
- { "EnableMASM51Compatibility", "/Zm", "", "true", 0 },
- { "PerformSyntaxCheckOnly", "/Zs", "", "true", 0 },
+ { "NoLogo", "nologo", "", "true", 0 },
+ { "GeneratePreprocessedSourceListing", "EP", "", "true", 0 },
+ { "ListAllAvailableInformation", "Sa", "", "true", 0 },
+ { "UseSafeExceptionHandlers", "safeseh", "", "true", 0 },
+ { "AddFirstPassListing", "Sf", "", "true", 0 },
+ { "EnableAssemblyGeneratedCodeListing", "Sg", "", "true", 0 },
+ { "DisableSymbolTable", "Sn", "", "true", 0 },
+ { "EnableFalseConditionalsInListing", "Sx", "", "true", 0 },
+ { "TreatWarningsAsErrors", "WX", "", "true", 0 },
+ { "MakeAllSymbolsPublic", "Zf", "", "true", 0 },
+ { "GenerateDebugInformation", "Zi", "", "true", 0 },
+ { "EnableMASM51Compatibility", "Zm", "", "true", 0 },
+ { "PerformSyntaxCheckOnly", "Zs", "", "true", 0 },
// Bool Properties With Argument
// String List Properties
- { "PreprocessorDefinitions", "/D", "Preprocessor Definitions", "",
+ { "PreprocessorDefinitions", "D", "Preprocessor Definitions", "",
cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable },
- { "IncludePaths", "/I", "Include Paths", "",
+ { "IncludePaths", "I", "Include Paths", "",
cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable },
- { "BrowseFile", "/FR", "Generate Browse Information File", "",
+ { "BrowseFile", "FR", "Generate Browse Information File", "",
cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable },
// Skip [AdditionalDependencies] - no command line Switch.
// String Properties
// Skip [Inputs] - no command line Switch.
- { "ObjectFileName", "/Fo", "Object File Name", "",
+ { "ObjectFileName", "Fo", "Object File Name", "",
cmVS7FlagTable::UserValue },
- { "AssembledCodeListingFile", "/Fl", "Assembled Code Listing File", "",
+ { "AssembledCodeListingFile", "Fl", "Assembled Code Listing File", "",
cmVS7FlagTable::UserValue },
// Skip [CommandLineTemplate] - no command line Switch.
// Skip [ExecutionDescription] - no command line Switch.
diff --git a/Source/cmVS14MASMFlagTable.h b/Source/cmVS14MASMFlagTable.h
index c4e5e1e..82ec9f1 100644
--- a/Source/cmVS14MASMFlagTable.h
+++ b/Source/cmVS14MASMFlagTable.h
@@ -2,74 +2,72 @@ static cmVS7FlagTable cmVS14MASMFlagTable[] = {
// Enum Properties
{ "PreserveIdentifierCase", "", "Default", "0", 0 },
- { "PreserveIdentifierCase", "/Cp", "Preserves Identifier Case (/Cp)", "1",
+ { "PreserveIdentifierCase", "Cp", "Preserves Identifier Case (/Cp)", "1",
0 },
- { "PreserveIdentifierCase", "/Cu",
+ { "PreserveIdentifierCase", "Cu",
"Maps all identifiers to upper case. (/Cu)", "2", 0 },
- { "PreserveIdentifierCase", "/Cx",
+ { "PreserveIdentifierCase", "Cx",
"Preserves case in public and extern symbols. (/Cx)", "3", 0 },
- { "WarningLevel", "/W0", "Warning Level 0 (/W0)", "0", 0 },
- { "WarningLevel", "/W1", "Warning Level 1 (/W1)", "1", 0 },
- { "WarningLevel", "/W2", "Warning Level 2 (/W2)", "2", 0 },
- { "WarningLevel", "/W3", "Warning Level 3 (/W3)", "3", 0 },
+ { "WarningLevel", "W0", "Warning Level 0 (/W0)", "0", 0 },
+ { "WarningLevel", "W1", "Warning Level 1 (/W1)", "1", 0 },
+ { "WarningLevel", "W2", "Warning Level 2 (/W2)", "2", 0 },
+ { "WarningLevel", "W3", "Warning Level 3 (/W3)", "3", 0 },
{ "PackAlignmentBoundary", "", "Default", "0", 0 },
- { "PackAlignmentBoundary", "/Zp1", "One Byte Boundary (/Zp1)", "1", 0 },
- { "PackAlignmentBoundary", "/Zp2", "Two Byte Boundary (/Zp2)", "2", 0 },
- { "PackAlignmentBoundary", "/Zp4", "Four Byte Boundary (/Zp4)", "3", 0 },
- { "PackAlignmentBoundary", "/Zp8", "Eight Byte Boundary (/Zp8)", "4", 0 },
- { "PackAlignmentBoundary", "/Zp16", "Sixteen Byte Boundary (/Zp16)", "5",
- 0 },
+ { "PackAlignmentBoundary", "Zp1", "One Byte Boundary (/Zp1)", "1", 0 },
+ { "PackAlignmentBoundary", "Zp2", "Two Byte Boundary (/Zp2)", "2", 0 },
+ { "PackAlignmentBoundary", "Zp4", "Four Byte Boundary (/Zp4)", "3", 0 },
+ { "PackAlignmentBoundary", "Zp8", "Eight Byte Boundary (/Zp8)", "4", 0 },
+ { "PackAlignmentBoundary", "Zp16", "Sixteen Byte Boundary (/Zp16)", "5", 0 },
{ "CallingConvention", "", "Default", "0", 0 },
- { "CallingConvention", "/Gd", "Use C-style Calling Convention (/Gd)", "1",
- 0 },
- { "CallingConvention", "/Gz", "Use stdcall Calling Convention (/Gz)", "2",
+ { "CallingConvention", "Gd", "Use C-style Calling Convention (/Gd)", "1",
0 },
- { "CallingConvention", "/Gc", "Use Pascal Calling Convention (/Gc)", "3",
+ { "CallingConvention", "Gz", "Use stdcall Calling Convention (/Gz)", "2",
0 },
+ { "CallingConvention", "Gc", "Use Pascal Calling Convention (/Gc)", "3", 0 },
- { "ErrorReporting", "/errorReport:prompt",
+ { "ErrorReporting", "errorReport:prompt",
"Prompt to send report immediately (/errorReport:prompt)", "0", 0 },
- { "ErrorReporting", "/errorReport:queue",
+ { "ErrorReporting", "errorReport:queue",
"Prompt to send report at the next logon (/errorReport:queue)", "1", 0 },
- { "ErrorReporting", "/errorReport:send",
+ { "ErrorReporting", "errorReport:send",
"Automatically send report (/errorReport:send)", "2", 0 },
- { "ErrorReporting", "/errorReport:none",
+ { "ErrorReporting", "errorReport:none",
"Do not send report (/errorReport:none)", "3", 0 },
// Bool Properties
- { "NoLogo", "/nologo", "", "true", 0 },
- { "GeneratePreprocessedSourceListing", "/EP", "", "true", 0 },
- { "ListAllAvailableInformation", "/Sa", "", "true", 0 },
- { "UseSafeExceptionHandlers", "/safeseh", "", "true", 0 },
- { "AddFirstPassListing", "/Sf", "", "true", 0 },
- { "EnableAssemblyGeneratedCodeListing", "/Sg", "", "true", 0 },
- { "DisableSymbolTable", "/Sn", "", "true", 0 },
- { "EnableFalseConditionalsInListing", "/Sx", "", "true", 0 },
- { "TreatWarningsAsErrors", "/WX", "", "true", 0 },
- { "MakeAllSymbolsPublic", "/Zf", "", "true", 0 },
- { "GenerateDebugInformation", "/Zi", "", "true", 0 },
- { "EnableMASM51Compatibility", "/Zm", "", "true", 0 },
- { "PerformSyntaxCheckOnly", "/Zs", "", "true", 0 },
+ { "NoLogo", "nologo", "", "true", 0 },
+ { "GeneratePreprocessedSourceListing", "EP", "", "true", 0 },
+ { "ListAllAvailableInformation", "Sa", "", "true", 0 },
+ { "UseSafeExceptionHandlers", "safeseh", "", "true", 0 },
+ { "AddFirstPassListing", "Sf", "", "true", 0 },
+ { "EnableAssemblyGeneratedCodeListing", "Sg", "", "true", 0 },
+ { "DisableSymbolTable", "Sn", "", "true", 0 },
+ { "EnableFalseConditionalsInListing", "Sx", "", "true", 0 },
+ { "TreatWarningsAsErrors", "WX", "", "true", 0 },
+ { "MakeAllSymbolsPublic", "Zf", "", "true", 0 },
+ { "GenerateDebugInformation", "Zi", "", "true", 0 },
+ { "EnableMASM51Compatibility", "Zm", "", "true", 0 },
+ { "PerformSyntaxCheckOnly", "Zs", "", "true", 0 },
// Bool Properties With Argument
// String List Properties
- { "PreprocessorDefinitions", "/D", "Preprocessor Definitions", "",
+ { "PreprocessorDefinitions", "D", "Preprocessor Definitions", "",
cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable },
- { "IncludePaths", "/I", "Include Paths", "",
+ { "IncludePaths", "I", "Include Paths", "",
cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable },
- { "BrowseFile", "/FR", "Generate Browse Information File", "",
+ { "BrowseFile", "FR", "Generate Browse Information File", "",
cmVS7FlagTable::UserValue | cmVS7FlagTable::SemicolonAppendable },
// Skip [AdditionalDependencies] - no command line Switch.
// String Properties
// Skip [Inputs] - no command line Switch.
- { "ObjectFileName", "/Fo", "Object File Name", "",
+ { "ObjectFileName", "Fo", "Object File Name", "",
cmVS7FlagTable::UserValue },
- { "AssembledCodeListingFile", "/Fl", "Assembled Code Listing File", "",
+ { "AssembledCodeListingFile", "Fl", "Assembled Code Listing File", "",
cmVS7FlagTable::UserValue },
// Skip [CommandLineTemplate] - no command line Switch.
// Skip [ExecutionDescription] - no command line Switch.
diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx
index 5a09718..c81ba7a 100644
--- a/Source/cmVisualStudio10TargetGenerator.cxx
+++ b/Source/cmVisualStudio10TargetGenerator.cxx
@@ -1943,9 +1943,24 @@ bool cmVisualStudio10TargetGenerator::OutputSourceSpecificFlags(
hasFlags = true;
cmGlobalVisualStudio10Generator* gg =
static_cast<cmGlobalVisualStudio10Generator*>(this->GlobalGenerator);
+ cmIDEFlagTable const* flagtable = CM_NULLPTR;
+ const std::string& srclang = source->GetLanguage();
+ if (srclang == "C" || srclang == "CXX") {
+ flagtable = gg->GetClFlagTable();
+ } else if (srclang == "ASM_MASM" &&
+ this->GlobalGenerator->IsMasmEnabled()) {
+ flagtable = gg->GetMasmFlagTable();
+ } else if (lang == "ASM_NASM" &&
+ this->GlobalGenerator->IsNasmEnabled()) {
+ flagtable = gg->GetNasmFlagTable();
+ } else if (srclang == "RC") {
+ flagtable = gg->GetRcFlagTable();
+ } else if (srclang == "CSharp") {
+ flagtable = gg->GetCSharpFlagTable();
+ }
cmVisualStudioGeneratorOptions clOptions(
this->LocalGenerator, cmVisualStudioGeneratorOptions::Compiler,
- gg->GetClFlagTable(), 0, this);
+ flagtable, 0, this);
if (compileAs) {
clOptions.AddFlag("CompileAs", compileAs);
}
diff --git a/Source/cm_auto_ptr.hxx b/Source/cm_auto_ptr.hxx
index 2b5c059..773602a 100644
--- a/Source/cm_auto_ptr.hxx
+++ b/Source/cm_auto_ptr.hxx
@@ -100,10 +100,10 @@ public:
/** Assign from an auto_ptr holding a compatible object. This
transfers ownership to the left-hand-side of the assignment. */
template <class Y>
- auto_ptr& operator=(auto_ptr<Y> cm_AUTO_PTR_CONST& a) throw()
+ auto_ptr& operator=(auto_ptr<Y> cm_AUTO_PTR_CONST& a) throw() // NOLINT
{
this->reset(cm_AUTO_PTR_CAST(a).release());
- return *this;
+ return *this; // NOLINT
}
/**
@@ -127,10 +127,10 @@ public:
/** Assign from another auto_ptr holding an object of the same type.
This transfers ownership to the newly constructed auto_ptr. */
- auto_ptr& operator=(auto_ptr cm_AUTO_PTR_CONST& a) throw()
+ auto_ptr& operator=(auto_ptr cm_AUTO_PTR_CONST& a) throw() // NOLINT
{
this->reset(cm_AUTO_PTR_CAST(a).release());
- return *this;
+ return *this; // NOLINT
}
/** Destruct and delete the object held. */
@@ -192,7 +192,7 @@ public:
auto_ptr& operator=(detail::auto_ptr_ref<X> r) throw()
{
this->reset(r.p_);
- return *this;
+ return *this; // NOLINT
}
/** Convert to an auto_ptr_ref. This is used when a function
diff --git a/Utilities/.clang-tidy b/Utilities/.clang-tidy
new file mode 100644
index 0000000..381a0f4
--- /dev/null
+++ b/Utilities/.clang-tidy
@@ -0,0 +1,6 @@
+---
+# We want to disable all checks for 3rd party code. However, clang-tidy will
+# assume we did not configure it correctly. Just add one check that will never
+# be found.
+Checks: '-*,llvm-twine-local'
+...
diff --git a/Utilities/CMakeLists.txt b/Utilities/CMakeLists.txt
index 014204b..0564540 100644
--- a/Utilities/CMakeLists.txt
+++ b/Utilities/CMakeLists.txt
@@ -29,3 +29,6 @@ endif()
if(WIX_CUSTOM_ACTION_ENABLED)
add_subdirectory(Release/WiX)
endif()
+
+# Make sure generated files use the same clang-tidy checks (none).
+configure_file(.clang-tidy .clang-tidy COPYONLY)