[Cmake-commits] CMake branch, next, updated. v3.8.0-rc3-610-g10a48e6
Kitware Robot
kwrobot at kitware.com
Tue Mar 28 14:25:02 EDT 2017
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, next has been updated
via 10a48e620ee872e32642ed5ad1e993776be2a694 (commit)
via fff34934e70da77c359e47c53ffd04701bcd7611 (commit)
via 79a915383fd0c0e55bf0ca5fe5b3cf07d1823aa7 (commit)
via c77194ec471dd4f039c0c30e05f0b519ab44bc14 (commit)
via 1449f6f63d09f21203b36b3485dd3eb60c73ac17 (commit)
via 8a619e8c85def632e9e7938fc5a3a36bb22f46ff (commit)
from eb3978b6688c4233a42b890ebc26e278940942b1 (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=10a48e620ee872e32642ed5ad1e993776be2a694
commit 10a48e620ee872e32642ed5ad1e993776be2a694
Merge: eb3978b fff3493
Author: Brad King <brad.king at kitware.com>
AuthorDate: Tue Mar 28 18:23:38 2017 +0000
Commit: Kitware Robot <kwrobot at kitware.com>
CommitDate: Tue Mar 28 14:24:54 2017 -0400
Stage topic 'vs-rc-defines'
Topic-id: 23329
Topic-url: https://gitlab.kitware.com/cmake/cmake/merge_requests/640
diff --cc Source/cmVisualStudioGeneratorOptions.cxx
index 1ca6b9c,da6f9a7..abc4924
--- a/Source/cmVisualStudioGeneratorOptions.cxx
+++ b/Source/cmVisualStudioGeneratorOptions.cxx
@@@ -395,16 -259,19 +396,18 @@@ void cmVisualStudioGeneratorOptions::Ou
if (!this->Configuration.empty()) {
fout << prefix;
this->TargetGenerator->WritePlatformConfigTag(
- "PreprocessorDefinitions", this->Configuration.c_str(), 0, 0, 0,
- &fout);
+ tag, this->Configuration.c_str(), 0, 0, 0, &fout);
} else {
- fout << prefix << "<PreprocessorDefinitions>";
+ fout << prefix << "<" << tag << ">";
}
} else {
- fout << prefix << "PreprocessorDefinitions=\"";
+ fout << prefix << tag << "=\"";
}
const char* sep = "";
+ std::vector<std::string>::const_iterator de =
+ cmRemoveDuplicates(this->Defines);
for (std::vector<std::string>::const_iterator di = this->Defines.begin();
- di != this->Defines.end(); ++di) {
+ di != de; ++di) {
// Escape the definition for the compiler.
std::string define;
if (this->Version < cmGlobalVisualStudioGenerator::VS10) {
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=fff34934e70da77c359e47c53ffd04701bcd7611
commit fff34934e70da77c359e47c53ffd04701bcd7611
Author: Brad King <brad.king at kitware.com>
AuthorDate: Tue Mar 28 13:04:37 2017 -0400
Commit: Brad King <brad.king at kitware.com>
CommitDate: Tue Mar 28 13:10:56 2017 -0400
MSVC: Restore _DEBUG preprocessor definition in RC debug builds
In commit v3.8.0-rc1~304^2 (MSVC: Do not define _DEBUG explicitly when
using /MDd, 2016-11-15) we removed the `_DEBUG` preprocessor definition
from MSVC C and C++ flags because the `cl` compiler automatically
defines it in Debug builds anyway. However, the VS generators propagate
C preprocessor definitions to the RC (Windows Resource Compiler) tool.
This means that we used to explicitly define `_DEBUG` for RC debug
builds. Therefore existing project code may expect the definition to be
there even though the `rc` compiler itself does not implicitly define
`_DEBUG` in debug builds.
Add the `_DEBUG` flag to the default `CMAKE_RC_FLAGS_DEBUG` instead
to restore this definition for RC debug builds. This also makes it
available consistently in VS, Ninja, and Makefile generators.
Fixes: #16745
diff --git a/Modules/Platform/Windows-MSVC.cmake b/Modules/Platform/Windows-MSVC.cmake
index 31b26b59..e4aca6e 100644
--- a/Modules/Platform/Windows-MSVC.cmake
+++ b/Modules/Platform/Windows-MSVC.cmake
@@ -310,6 +310,9 @@ macro(__windows_compiler_msvc lang)
if(NOT CMAKE_RC_FLAGS_INIT)
string(APPEND CMAKE_RC_FLAGS_INIT " ${_PLATFORM_DEFINES} ${_PLATFORM_DEFINES_${lang}}")
endif()
+ if(NOT CMAKE_RC_FLAGS_DEBUG_INIT)
+ string(APPEND CMAKE_RC_FLAGS_DEBUG_INIT " /D_DEBUG")
+ endif()
enable_language(RC)
set(CMAKE_NINJA_CMCLDEPS_RC 1)
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=79a915383fd0c0e55bf0ca5fe5b3cf07d1823aa7
commit 79a915383fd0c0e55bf0ca5fe5b3cf07d1823aa7
Author: Brad King <brad.king at kitware.com>
AuthorDate: Tue Mar 28 13:03:56 2017 -0400
Commit: Brad King <brad.king at kitware.com>
CommitDate: Tue Mar 28 13:10:55 2017 -0400
RC: Add missing CMAKE_RC_FLAGS_<CONFIG> entries to cache
diff --git a/Modules/CMakeRCInformation.cmake b/Modules/CMakeRCInformation.cmake
index 10f2cfb..7ddd297 100644
--- a/Modules/CMakeRCInformation.cmake
+++ b/Modules/CMakeRCInformation.cmake
@@ -17,11 +17,26 @@ set(CMAKE_SYSTEM_AND_RC_COMPILER_INFO_FILE
${CMAKE_ROOT}/Modules/Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME}.cmake)
include(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME} OPTIONAL)
-string(STRIP "$ENV{RCFLAGS} ${CMAKE_RC_FLAGS_INIT}" CMAKE_RC_FLAGS_INIT)
+set(CMAKE_RC_FLAGS_INIT "$ENV{RCFLAGS} ${CMAKE_RC_FLAGS_INIT}")
+
+foreach(c "" _DEBUG _RELEASE _MINSIZEREL _RELWITHDEBINFO)
+ string(STRIP "${CMAKE_RC_FLAGS${c}_INIT}" CMAKE_RC_FLAGS${c}_INIT)
+endforeach()
set (CMAKE_RC_FLAGS "${CMAKE_RC_FLAGS_INIT}" CACHE STRING
"Flags for Windows Resource Compiler.")
+if(NOT CMAKE_NOT_USING_CONFIG_FLAGS)
+ set (CMAKE_RC_FLAGS_DEBUG "${CMAKE_RC_FLAGS_DEBUG_INIT}" CACHE STRING
+ "Flags for Windows Resource Compiler during debug builds.")
+ set (CMAKE_RC_FLAGS_MINSIZEREL "${CMAKE_RC_FLAGS_MINSIZEREL_INIT}" CACHE STRING
+ "Flags for Windows Resource Compiler during release builds for minimum size.")
+ set (CMAKE_RC_FLAGS_RELEASE "${CMAKE_RC_FLAGS_RELEASE_INIT}" CACHE STRING
+ "Flags for Windows Resource Compiler during release builds.")
+ set (CMAKE_RC_FLAGS_RELWITHDEBINFO "${CMAKE_RC_FLAGS_RELWITHDEBINFO_INIT}" CACHE STRING
+ "Flags for Windows Resource Compiler during release builds with debug info.")
+endif()
+
# These are the only types of flags that should be passed to the rc
# command, if COMPILE_FLAGS is used on a target this will be used
# to filter out any other flags
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=c77194ec471dd4f039c0c30e05f0b519ab44bc14
commit c77194ec471dd4f039c0c30e05f0b519ab44bc14
Author: Brad King <brad.king at kitware.com>
AuthorDate: Tue Mar 28 13:00:59 2017 -0400
Commit: Brad King <brad.king at kitware.com>
CommitDate: Tue Mar 28 13:10:55 2017 -0400
VS: Honor preprocessor definitions in RC flags
The VS generators use the C (or CXX) preprocessor definitions for
the Windows Resource Compiler tool. This causes definitions parsed
out of `CMAKE_RC_FLAGS[_<CONFIG>]` variables to be dropped. Fix
the implementation to preserve both.
Issue: #16745
diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx
index 7447821..902fe03 100644
--- a/Source/cmVisualStudio10TargetGenerator.cxx
+++ b/Source/cmVisualStudio10TargetGenerator.cxx
@@ -2346,6 +2346,11 @@ bool cmVisualStudio10TargetGenerator::ComputeRcOptions(
std::string(this->Makefile->GetSafeDefinition(rcConfigFlagsVar));
rcOptions.Parse(flags.c_str());
+
+ // For historical reasons, add the C preprocessor defines to RC.
+ Options& clOptions = *(this->ClOptions[configName]);
+ rcOptions.AddDefines(clOptions.GetDefines());
+
this->RcOptions[configName] = pOptions.release();
return true;
}
@@ -2358,12 +2363,9 @@ void cmVisualStudio10TargetGenerator::WriteRCOptions(
}
this->WriteString("<ResourceCompile>\n", 2);
- // Preprocessor definitions and includes are shared with clOptions.
- Options& clOptions = *(this->ClOptions[configName]);
- clOptions.OutputPreprocessorDefinitions(*this->BuildFileStream, " ",
- "\n", "RC");
-
Options& rcOptions = *(this->RcOptions[configName]);
+ rcOptions.OutputPreprocessorDefinitions(*this->BuildFileStream, " ",
+ "\n", "RC");
rcOptions.AppendFlag("AdditionalIncludeDirectories", includes);
rcOptions.AppendFlag("AdditionalIncludeDirectories",
"%(AdditionalIncludeDirectories)");
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1449f6f63d09f21203b36b3485dd3eb60c73ac17
commit 1449f6f63d09f21203b36b3485dd3eb60c73ac17
Author: Brad King <brad.king at kitware.com>
AuthorDate: Tue Mar 28 12:56:29 2017 -0400
Commit: Brad King <brad.king at kitware.com>
CommitDate: Tue Mar 28 13:10:55 2017 -0400
cmVisualStudio10TargetGenerator: De-duplicate preprocessor defs
diff --git a/Source/cmVisualStudioGeneratorOptions.cxx b/Source/cmVisualStudioGeneratorOptions.cxx
index c0913e6..da6f9a7 100644
--- a/Source/cmVisualStudioGeneratorOptions.cxx
+++ b/Source/cmVisualStudioGeneratorOptions.cxx
@@ -1,5 +1,6 @@
#include "cmVisualStudioGeneratorOptions.h"
+#include "cmAlgorithms.h"
#include "cmLocalVisualStudioGenerator.h"
#include "cmOutputConverter.h"
#include "cmSystemTools.h"
@@ -267,8 +268,10 @@ void cmVisualStudioGeneratorOptions::OutputPreprocessorDefinitions(
fout << prefix << "PreprocessorDefinitions=\"";
}
const char* sep = "";
+ std::vector<std::string>::const_iterator de =
+ cmRemoveDuplicates(this->Defines);
for (std::vector<std::string>::const_iterator di = this->Defines.begin();
- di != this->Defines.end(); ++di) {
+ di != de; ++di) {
// Escape the definition for the compiler.
std::string define;
if (this->Version < cmGlobalVisualStudioGenerator::VS10) {
https://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8a619e8c85def632e9e7938fc5a3a36bb22f46ff
commit 8a619e8c85def632e9e7938fc5a3a36bb22f46ff
Author: Brad King <brad.king at kitware.com>
AuthorDate: Tue Mar 28 12:55:14 2017 -0400
Commit: Brad King <brad.king at kitware.com>
CommitDate: Tue Mar 28 13:10:55 2017 -0400
cmIDEOptions: Add GetDefines method
diff --git a/Source/cmIDEOptions.cxx b/Source/cmIDEOptions.cxx
index c6c0e05..8d07776 100644
--- a/Source/cmIDEOptions.cxx
+++ b/Source/cmIDEOptions.cxx
@@ -148,6 +148,11 @@ void cmIDEOptions::AddDefines(const std::vector<std::string>& defines)
this->Defines.insert(this->Defines.end(), defines.begin(), defines.end());
}
+std::vector<std::string> const& cmIDEOptions::GetDefines() const
+{
+ return this->Defines;
+}
+
void cmIDEOptions::AddFlag(const char* flag, const char* value)
{
this->FlagMap[flag] = value;
diff --git a/Source/cmIDEOptions.h b/Source/cmIDEOptions.h
index a0696e1..be2fd6d 100644
--- a/Source/cmIDEOptions.h
+++ b/Source/cmIDEOptions.h
@@ -24,6 +24,8 @@ public:
void AddDefine(const std::string& define);
void AddDefines(const char* defines);
void AddDefines(const std::vector<std::string>& defines);
+ std::vector<std::string> const& GetDefines() const;
+
void AddFlag(const char* flag, const char* value);
void AddFlag(const char* flag, std::vector<std::string> const& value);
void AppendFlag(std::string const& flag, std::string const& value);
-----------------------------------------------------------------------
Summary of changes:
Modules/CMakeRCInformation.cmake | 17 ++++++++++++++++-
Modules/Platform/Windows-MSVC.cmake | 3 +++
Source/cmIDEOptions.cxx | 5 +++++
Source/cmIDEOptions.h | 2 ++
Source/cmVisualStudio10TargetGenerator.cxx | 12 +++++++-----
Source/cmVisualStudioGeneratorOptions.cxx | 5 ++++-
6 files changed, 37 insertions(+), 7 deletions(-)
hooks/post-receive
--
CMake
More information about the Cmake-commits
mailing list