This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "CMake".
The branch, master has been updated via f60ec9e63a3a237ba868d2a454152a59a8c38b6a (commit) via 822697996e3c3fb92eaa817584d0bf6e0bd76b22 (commit) from c2ffcb3aabc5d422784eed7d11412e754087ea58 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=f60ec9e63a3a237ba868d2a454152a59a8c38b6a commit f60ec9e63a3a237ba868d2a454152a59a8c38b6a Merge: c2ffcb3 8226979 Author: Brad King <brad.k...@kitware.com> AuthorDate: Thu Feb 7 11:42:23 2019 +0000 Commit: Kitware Robot <kwro...@kitware.com> CommitDate: Thu Feb 7 06:42:30 2019 -0500 Merge topic 'vs-csharp-nowarn-numbers' 822697996e VS: Fix nowarn compiler option to accept warning numbers. Acked-by: Kitware Robot <kwro...@kitware.com> Merge-request: !2923 https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=822697996e3c3fb92eaa817584d0bf6e0bd76b22 commit 822697996e3c3fb92eaa817584d0bf6e0bd76b22 Author: Wil Stark <wil_st...@keysight.com> AuthorDate: Tue Feb 5 15:12:38 2019 -0800 Commit: Brad King <brad.k...@kitware.com> CommitDate: Thu Feb 7 06:39:45 2019 -0500 VS: Fix nowarn compiler option to accept warning numbers. Warning disables are transferred to the VS IDE `<NoWarn>` node. Fixes: #18878 diff --git a/Source/cmGlobalVisualStudio10Generator.cxx b/Source/cmGlobalVisualStudio10Generator.cxx index 07656ed..d8b2e89 100644 --- a/Source/cmGlobalVisualStudio10Generator.cxx +++ b/Source/cmGlobalVisualStudio10Generator.cxx @@ -1136,6 +1136,8 @@ static unsigned int cmLoadFlagTableSpecial(Json::Value entry, value |= cmIDEFlagTable::CaseInsensitive; } else if (s == "SpaceAppendable") { value |= cmIDEFlagTable::SpaceAppendable; + } else if (s == "CommaAppendable") { + value |= cmIDEFlagTable::CommaAppendable; } } } diff --git a/Source/cmIDEFlagTable.h b/Source/cmIDEFlagTable.h index 28d5d53..ff93432 100644 --- a/Source/cmIDEFlagTable.h +++ b/Source/cmIDEFlagTable.h @@ -29,6 +29,9 @@ struct cmIDEFlagTable SpaceAppendable = (1 << 7), // a flag that if specified multiple times // should have its value appended to the // old value with spaces + CommaAppendable = (1 << 8), // a flag that if specified multiple times + // should have its value appended to the + // old value with commas (e.g. C# /nowarn UserValueIgnored = UserValue | UserIgnored, UserValueRequired = UserValue | UserRequired diff --git a/Source/cmIDEOptions.cxx b/Source/cmIDEOptions.cxx index ee0c782..ea67d45 100644 --- a/Source/cmIDEOptions.cxx +++ b/Source/cmIDEOptions.cxx @@ -148,6 +148,8 @@ void cmIDEOptions::FlagMapUpdate(cmIDEFlagTable const* entry, this->FlagMap[entry->IDEName].push_back(new_value); } else if (entry->special & cmIDEFlagTable::SpaceAppendable) { this->FlagMap[entry->IDEName].append_with_space(new_value); + } else if (entry->special & cmIDEFlagTable::CommaAppendable) { + this->FlagMap[entry->IDEName].append_with_comma(new_value); } else { // Use the user-specified value. this->FlagMap[entry->IDEName] = new_value; diff --git a/Source/cmIDEOptions.h b/Source/cmIDEOptions.h index a4e5757..4a43073 100644 --- a/Source/cmIDEOptions.h +++ b/Source/cmIDEOptions.h @@ -65,12 +65,22 @@ protected: this->derived::operator=(r); return *this; } + FlagValue& append_with_comma(std::string const& r) + { + return append_with_separator(r, ','); + } FlagValue& append_with_space(std::string const& r) { + return append_with_separator(r, ' '); + } + + private: + FlagValue& append_with_separator(std::string const& r, char separator) + { this->resize(1); std::string& l = this->operator[](0); if (!l.empty()) { - l += " "; + l += separator; } l += r; return *this; diff --git a/Templates/MSBuild/FlagTables/v10_CSharp.json b/Templates/MSBuild/FlagTables/v10_CSharp.json index a0780a4..5989aea 100644 --- a/Templates/MSBuild/FlagTables/v10_CSharp.json +++ b/Templates/MSBuild/FlagTables/v10_CSharp.json @@ -299,11 +299,15 @@ "flags": [] }, { - "name": "DisabledWarnings", - "switch": "nowarn", + "name": "NoWarn", + "switch": "nowarn:", "comment": "", "value": "", - "flags": [] + "flags": [ + "UserValue", + "UserRequired", + "CommaAppendable" + ] }, { "name": "CheckForOverflowUnderflow", diff --git a/Templates/MSBuild/FlagTables/v11_CSharp.json b/Templates/MSBuild/FlagTables/v11_CSharp.json index a0780a4..5989aea 100644 --- a/Templates/MSBuild/FlagTables/v11_CSharp.json +++ b/Templates/MSBuild/FlagTables/v11_CSharp.json @@ -299,11 +299,15 @@ "flags": [] }, { - "name": "DisabledWarnings", - "switch": "nowarn", + "name": "NoWarn", + "switch": "nowarn:", "comment": "", "value": "", - "flags": [] + "flags": [ + "UserValue", + "UserRequired", + "CommaAppendable" + ] }, { "name": "CheckForOverflowUnderflow", diff --git a/Templates/MSBuild/FlagTables/v12_CSharp.json b/Templates/MSBuild/FlagTables/v12_CSharp.json index a0780a4..5989aea 100644 --- a/Templates/MSBuild/FlagTables/v12_CSharp.json +++ b/Templates/MSBuild/FlagTables/v12_CSharp.json @@ -299,11 +299,15 @@ "flags": [] }, { - "name": "DisabledWarnings", - "switch": "nowarn", + "name": "NoWarn", + "switch": "nowarn:", "comment": "", "value": "", - "flags": [] + "flags": [ + "UserValue", + "UserRequired", + "CommaAppendable" + ] }, { "name": "CheckForOverflowUnderflow", diff --git a/Templates/MSBuild/FlagTables/v140_CSharp.json b/Templates/MSBuild/FlagTables/v140_CSharp.json index a0780a4..5989aea 100644 --- a/Templates/MSBuild/FlagTables/v140_CSharp.json +++ b/Templates/MSBuild/FlagTables/v140_CSharp.json @@ -299,11 +299,15 @@ "flags": [] }, { - "name": "DisabledWarnings", - "switch": "nowarn", + "name": "NoWarn", + "switch": "nowarn:", "comment": "", "value": "", - "flags": [] + "flags": [ + "UserValue", + "UserRequired", + "CommaAppendable" + ] }, { "name": "CheckForOverflowUnderflow", diff --git a/Templates/MSBuild/FlagTables/v141_CSharp.json b/Templates/MSBuild/FlagTables/v141_CSharp.json index a0780a4..5989aea 100644 --- a/Templates/MSBuild/FlagTables/v141_CSharp.json +++ b/Templates/MSBuild/FlagTables/v141_CSharp.json @@ -299,11 +299,15 @@ "flags": [] }, { - "name": "DisabledWarnings", - "switch": "nowarn", + "name": "NoWarn", + "switch": "nowarn:", "comment": "", "value": "", - "flags": [] + "flags": [ + "UserValue", + "UserRequired", + "CommaAppendable" + ] }, { "name": "CheckForOverflowUnderflow", diff --git a/Tests/RunCMake/VS10Project/RunCMakeTest.cmake b/Tests/RunCMake/VS10Project/RunCMakeTest.cmake index 7c1ed4e..df253a9 100644 --- a/Tests/RunCMake/VS10Project/RunCMakeTest.cmake +++ b/Tests/RunCMake/VS10Project/RunCMakeTest.cmake @@ -1,5 +1,6 @@ include(RunCMake) +run_cmake(VsCSharpCompilerOpts) run_cmake(ExplicitCMakeLists) run_cmake(SourceGroupCMakeLists) diff --git a/Tests/RunCMake/VS10Project/VsCSharpCompilerOpts-check.cmake b/Tests/RunCMake/VS10Project/VsCSharpCompilerOpts-check.cmake new file mode 100644 index 0000000..3e418c3 --- /dev/null +++ b/Tests/RunCMake/VS10Project/VsCSharpCompilerOpts-check.cmake @@ -0,0 +1,64 @@ +# +# Check C# VS project for required elements. +# +set(csProjectFile "${RunCMake_TEST_BINARY_DIR}/foo.csproj") +if(NOT EXISTS "${csProjectFile}") + set(RunCMake_TEST_FAILED "Project file ${csProjectFile} does not exist.") + return() +endif() + + +set(inDebug FALSE) +set(inRelease FALSE) +set(debugOK FALSE) +set(releaseOK FALSE) + + +file(STRINGS "${csProjectFile}" lines) +foreach(line IN LISTS lines) + #message(STATUS ${line}) + if(line MATCHES "^ *<PropertyGroup .*Debug\\|(Win32|x64).*") + set(inDebug TRUE) + elseif(line MATCHES "^ *<PropertyGroup .*Release\\|(Win32|x64).*") + set(inRelease TRUE) + elseif(line MATCHES "^ *</PropertyGroup> *$") + set(inRelease FALSE) + set(inDebug FALSE) + elseif(inDebug AND + (line MATCHES "^ *<NoWarn>.*505.*</NoWarn> *$") AND + (line MATCHES "^ *<NoWarn>.*707.*</NoWarn> *$") AND + (line MATCHES "^ *<NoWarn>.*808.*</NoWarn> *$") AND + (line MATCHES "^ *<NoWarn>.*909.*</NoWarn> *$") + ) + set(debugOK TRUE) + elseif(inRelease AND + (NOT (line MATCHES "^ *<NoWarn>.*505.*</NoWarn> *$")) AND + (line MATCHES "^ *<NoWarn>.*707.*</NoWarn> *$") AND + (line MATCHES "^ *<NoWarn>.*808.*</NoWarn> *$") AND + (line MATCHES "^ *<NoWarn>.*909.*</NoWarn> *$") + ) + set(releaseOK TRUE) + endif() +endforeach() + +function(print_csprojfile) + file(STRINGS "${csProjectFile}" lines) + foreach(line IN LISTS lines) + message(STATUS ${line}) + endforeach() +endfunction() + + +if(NOT debugOK) + message(STATUS "Failed to set Debug configuration warning config correctly.") + set(RunCMake_TEST_FAILED "Failed to set Debug configuration defines correctly.") + print_csprojfile() + return() +endif() + +if(NOT releaseOK) + message(STATUS "Failed to set Release configuration warning config correctly.") + set(RunCMake_TEST_FAILED "Failed to set Release configuration defines correctly.") + print_csprojfile() + return() +endif() diff --git a/Tests/RunCMake/VS10Project/VsCSharpCompilerOpts.cmake b/Tests/RunCMake/VS10Project/VsCSharpCompilerOpts.cmake new file mode 100644 index 0000000..85af38b --- /dev/null +++ b/Tests/RunCMake/VS10Project/VsCSharpCompilerOpts.cmake @@ -0,0 +1,14 @@ +enable_language(CSharp) + +add_library(foo SHARED + foo.cs) + +set_target_properties(foo PROPERTIES + LINKER_LANGUAGE CSharp) + + +# Issue 18878 +target_compile_options(foo PRIVATE "/platform:anycpu" "/nowarn:707,808" "/nowarn:909" ) + +# Debug only warning disable +set(CMAKE_CSharp_FLAGS_DEBUG "${CMAKE_CSharp_FLAGS_DEBUG} /nowarn:505") ----------------------------------------------------------------------- Summary of changes: Source/cmGlobalVisualStudio10Generator.cxx | 2 ++ Source/cmIDEFlagTable.h | 3 +++ Source/cmIDEOptions.cxx | 2 ++ Source/cmIDEOptions.h | 12 +++++++++++- Templates/MSBuild/FlagTables/v10_CSharp.json | 10 +++++++--- Templates/MSBuild/FlagTables/v11_CSharp.json | 10 +++++++--- Templates/MSBuild/FlagTables/v12_CSharp.json | 10 +++++++--- Templates/MSBuild/FlagTables/v140_CSharp.json | 10 +++++++--- Templates/MSBuild/FlagTables/v141_CSharp.json | 10 +++++++--- Tests/RunCMake/VS10Project/RunCMakeTest.cmake | 1 + ...-check.cmake => VsCSharpCompilerOpts-check.cmake} | 20 ++++++++++---------- .../RunCMake/VS10Project/VsCSharpCompilerOpts.cmake | 14 ++++++++++++++ 12 files changed, 78 insertions(+), 26 deletions(-) copy Tests/RunCMake/VS10Project/{VsCSharpDefines-check.cmake => VsCSharpCompilerOpts-check.cmake} (58%) create mode 100644 Tests/RunCMake/VS10Project/VsCSharpCompilerOpts.cmake hooks/post-receive -- CMake _______________________________________________ Cmake-commits mailing list Cmake-commits@cmake.org https://cmake.org/mailman/listinfo/cmake-commits