[cmake-developers] [PATCH 2/3] WINCE, VS: Propagate Subsystem and Entry point to generated solution
Pascal Bach
pascal.bach at siemens.com
Mon Sep 8 05:35:03 EDT 2014
The flags /SUBSYSTEM and /ENTRY are set by Windows-MSVC.cmake depending on the system.
Howver these values never ended up in the resulting VS solution.
This is fixed by reading the values of CMAKE_CREATE_WIN32_EXE and CMAKE_CREATE_CONSOLE_EXE
and propagates theses to the resulting XML.
---
Source/cmVS11LinkFlagTable.h | 2 ++
Source/cmVS12LinkFlagTable.h | 2 ++
Source/cmVS14LinkFlagTable.h | 2 ++
Source/cmVisualStudio10TargetGenerator.cxx | 19 ++++++++++---------
4 files changed, 16 insertions(+), 9 deletions(-)
diff --git a/Source/cmVS11LinkFlagTable.h b/Source/cmVS11LinkFlagTable.h
index 0f641e4..765dbcf 100644
--- a/Source/cmVS11LinkFlagTable.h
+++ b/Source/cmVS11LinkFlagTable.h
@@ -56,6 +56,8 @@ static cmVS7FlagTable cmVS11LinkFlagTable[] =
"EFI ROM", "EFI ROM", 0},
{"SubSystem", "SUBSYSTEM:EFI_RUNTIME_DRIVER",
"EFI Runtime", "EFI Runtime", 0},
+ {"SubSystem", "SUBSYSTEM:WINDOWSCE",
+ "WindowsCE", "WindowsCE", 0},
{"SubSystem", "SUBSYSTEM:POSIX",
"POSIX", "POSIX", 0},
diff --git a/Source/cmVS12LinkFlagTable.h b/Source/cmVS12LinkFlagTable.h
index e5a570e..ca68c7e 100644
--- a/Source/cmVS12LinkFlagTable.h
+++ b/Source/cmVS12LinkFlagTable.h
@@ -56,6 +56,8 @@ static cmVS7FlagTable cmVS12LinkFlagTable[] =
"EFI ROM", "EFI ROM", 0},
{"SubSystem", "SUBSYSTEM:EFI_RUNTIME_DRIVER",
"EFI Runtime", "EFI Runtime", 0},
+ {"SubSystem", "SUBSYSTEM:WINDOWSCE",
+ "WindowsCE", "WindowsCE", 0},
{"SubSystem", "SUBSYSTEM:POSIX",
"POSIX", "POSIX", 0},
diff --git a/Source/cmVS14LinkFlagTable.h b/Source/cmVS14LinkFlagTable.h
index 6d81d12..67ddbe3 100644
--- a/Source/cmVS14LinkFlagTable.h
+++ b/Source/cmVS14LinkFlagTable.h
@@ -56,6 +56,8 @@ static cmVS7FlagTable cmVS14LinkFlagTable[] =
"EFI ROM", "EFI ROM", 0},
{"SubSystem", "SUBSYSTEM:EFI_RUNTIME_DRIVER",
"EFI Runtime", "EFI Runtime", 0},
+ {"SubSystem", "SUBSYSTEM:WINDOWSCE",
+ "WindowsCE", "WindowsCE", 0},
{"SubSystem", "SUBSYSTEM:POSIX",
"POSIX", "POSIX", 0},
diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx
index c525b7c..1c2a7be 100644
--- a/Source/cmVisualStudio10TargetGenerator.cxx
+++ b/Source/cmVisualStudio10TargetGenerator.cxx
@@ -2041,6 +2041,16 @@ cmVisualStudio10TargetGenerator::ComputeLinkOptions(std::string const& config)
flags += " ";
flags += flagsConfig;
}
+ if (this->Target->GetPropertyAsBool("WIN32_EXECUTABLE"))
+ {
+ flags += " ";
+ flags += this->Target->GetMakefile()->GetSafeDefinition("CMAKE_CREATE_WIN32_EXE");
+ }
+ else
+ {
+ flags += " ";
+ flags += this->Target->GetMakefile()->GetSafeDefinition("CMAKE_CREATE_CONSOLE_EXE");
+ }
std::string standardLibsVar = "CMAKE_";
standardLibsVar += linkLanguage;
standardLibsVar += "_STANDARD_LIBRARIES";
@@ -2113,15 +2123,6 @@ cmVisualStudio10TargetGenerator::ComputeLinkOptions(std::string const& config)
{
linkOptions.AddFlag("Version", "");
- if ( this->Target->GetPropertyAsBool("WIN32_EXECUTABLE") )
- {
- linkOptions.AddFlag("SubSystem", "Windows");
- }
- else
- {
- linkOptions.AddFlag("SubSystem", "Console");
- }
-
if(const char* stackVal =
this->Makefile->GetDefinition("CMAKE_"+linkLanguage+"_STACK_SIZE"))
{
--
1.7.10.4
More information about the cmake-developers
mailing list