Merge topic 'resolve/fix_target_name_with_dot_vs10/allow_upper_case_cpp_and_others'
eccc7d5
Merge branch 'allow_upper_case_cpp_and_others' into resolve/fix_target_name_with_dot_vs10/allow_upper_case_cpp_and_othersed37fc3
VS2010: Set IntDir for utility and global targets.e79e412
VS2010: Honor PROJECT_LABEL target property (#10611)530ade6
Fix targets with . in the name for VS 10 IDE.
This commit is contained in:
commit
4c06e23307
|
@ -155,6 +155,13 @@ void cmVisualStudio10TargetGenerator::Generate()
|
||||||
this->WriteString("<Keyword>Win32Proj</Keyword>\n", 2);
|
this->WriteString("<Keyword>Win32Proj</Keyword>\n", 2);
|
||||||
this->WriteString("<Platform>", 2);
|
this->WriteString("<Platform>", 2);
|
||||||
(*this->BuildFileStream) << this->Platform << "</Platform>\n";
|
(*this->BuildFileStream) << this->Platform << "</Platform>\n";
|
||||||
|
const char* projLabel = this->Target->GetProperty("PROJECT_LABEL");
|
||||||
|
if(!projLabel)
|
||||||
|
{
|
||||||
|
projLabel = this->Name.c_str();
|
||||||
|
}
|
||||||
|
this->WriteString("<ProjectName>", 2);
|
||||||
|
(*this->BuildFileStream) << projLabel << "</ProjectName>\n";
|
||||||
this->WriteString("</PropertyGroup>\n", 1);
|
this->WriteString("</PropertyGroup>\n", 1);
|
||||||
this->WriteString("<Import Project="
|
this->WriteString("<Import Project="
|
||||||
"\"$(VCTargetsPath)\\Microsoft.Cpp.Default.props\" />\n",
|
"\"$(VCTargetsPath)\\Microsoft.Cpp.Default.props\" />\n",
|
||||||
|
@ -807,10 +814,12 @@ bool cmVisualStudio10TargetGenerator::OutputSourceSpecificFlags(
|
||||||
|
|
||||||
void cmVisualStudio10TargetGenerator::WritePathAndIncrementalLinkOptions()
|
void cmVisualStudio10TargetGenerator::WritePathAndIncrementalLinkOptions()
|
||||||
{
|
{
|
||||||
if(this->Target->GetType() > cmTarget::MODULE_LIBRARY)
|
cmTarget::TargetType ttype = this->Target->GetType();
|
||||||
|
if(ttype > cmTarget::GLOBAL_TARGET)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this->WriteString("<PropertyGroup>\n", 2);
|
this->WriteString("<PropertyGroup>\n", 2);
|
||||||
this->WriteString("<_ProjectFileVersion>10.0.20506.1"
|
this->WriteString("<_ProjectFileVersion>10.0.20506.1"
|
||||||
"</_ProjectFileVersion>\n", 3);
|
"</_ProjectFileVersion>\n", 3);
|
||||||
|
@ -820,36 +829,50 @@ void cmVisualStudio10TargetGenerator::WritePathAndIncrementalLinkOptions()
|
||||||
for(std::vector<std::string>::iterator config = configs->begin();
|
for(std::vector<std::string>::iterator config = configs->begin();
|
||||||
config != configs->end(); ++config)
|
config != configs->end(); ++config)
|
||||||
{
|
{
|
||||||
std::string targetNameFull =
|
if(ttype >= cmTarget::UTILITY)
|
||||||
this->Target->GetFullName(config->c_str());
|
{
|
||||||
std::string intermediateDir = this->LocalGenerator->
|
this->WritePlatformConfigTag("IntDir", config->c_str(), 3);
|
||||||
GetTargetDirectory(*this->Target);
|
*this->BuildFileStream
|
||||||
intermediateDir += "/";
|
<< "$(Platform)\\$(Configuration)\\$(ProjectName)\\"
|
||||||
intermediateDir += *config;
|
<< "</IntDir>\n";
|
||||||
intermediateDir += "/";
|
}
|
||||||
this->ConvertToWindowsSlash(intermediateDir);
|
else
|
||||||
std::string outDir = this->Target->GetDirectory(config->c_str());
|
{
|
||||||
this->ConvertToWindowsSlash(outDir);
|
std::string targetNameFull =
|
||||||
this->WritePlatformConfigTag("OutDir", config->c_str(), 3);
|
this->Target->GetFullName(config->c_str());
|
||||||
*this->BuildFileStream << outDir
|
std::string intermediateDir = this->LocalGenerator->
|
||||||
<< "\\"
|
GetTargetDirectory(*this->Target);
|
||||||
<< "</OutDir>\n";
|
intermediateDir += "/";
|
||||||
this->WritePlatformConfigTag("IntDir", config->c_str(), 3);
|
intermediateDir += *config;
|
||||||
*this->BuildFileStream << intermediateDir
|
intermediateDir += "/";
|
||||||
<< "</IntDir>\n";
|
this->ConvertToWindowsSlash(intermediateDir);
|
||||||
this->WritePlatformConfigTag("TargetName", config->c_str(), 3);
|
std::string outDir = this->Target->GetDirectory(config->c_str());
|
||||||
*this->BuildFileStream << cmSystemTools::GetFilenameWithoutExtension(
|
this->ConvertToWindowsSlash(outDir);
|
||||||
targetNameFull.c_str())
|
|
||||||
<< "</TargetName>\n";
|
this->WritePlatformConfigTag("OutDir", config->c_str(), 3);
|
||||||
|
*this->BuildFileStream << outDir
|
||||||
this->WritePlatformConfigTag("TargetExt", config->c_str(), 3);
|
<< "\\"
|
||||||
*this->BuildFileStream << cmSystemTools::GetFilenameLastExtension(
|
<< "</OutDir>\n";
|
||||||
targetNameFull.c_str())
|
|
||||||
<< "</TargetExt>\n";
|
this->WritePlatformConfigTag("IntDir", config->c_str(), 3);
|
||||||
this->OutputLinkIncremental(*config);
|
*this->BuildFileStream << intermediateDir
|
||||||
|
<< "</IntDir>\n";
|
||||||
|
|
||||||
|
this->WritePlatformConfigTag("TargetName", config->c_str(), 3);
|
||||||
|
*this->BuildFileStream
|
||||||
|
<< cmSystemTools::GetFilenameWithoutLastExtension(
|
||||||
|
targetNameFull.c_str())
|
||||||
|
<< "</TargetName>\n";
|
||||||
|
|
||||||
|
this->WritePlatformConfigTag("TargetExt", config->c_str(), 3);
|
||||||
|
*this->BuildFileStream
|
||||||
|
<< cmSystemTools::GetFilenameLastExtension(targetNameFull.c_str())
|
||||||
|
<< "</TargetExt>\n";
|
||||||
|
|
||||||
|
this->OutputLinkIncremental(*config);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
this->WriteString("</PropertyGroup>\n", 2);
|
this->WriteString("</PropertyGroup>\n", 2);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ set(CMAKE_DEBUG_POSTFIX "_test_debug_postfix")
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(EXTRA_SRCS test.CPP)
|
set(EXTRA_SRCS test.CPP)
|
||||||
endif()
|
endif()
|
||||||
add_library(testcxx1 STATIC libcxx1.cxx ${EXTRA_SRCS})
|
add_library(testcxx1.my STATIC libcxx1.cxx ${EXTRA_SRCS})
|
||||||
add_library(testcxx2 SHARED libcxx2.cxx)
|
add_library(testcxx2 SHARED libcxx2.cxx)
|
||||||
add_executable (CxxOnly cxxonly.cxx)
|
add_executable (CxxOnly cxxonly.cxx)
|
||||||
target_link_libraries(CxxOnly testcxx1 testcxx2)
|
target_link_libraries(CxxOnly testcxx1.my testcxx2)
|
||||||
|
|
|
@ -166,3 +166,11 @@ ELSE(DEFINED SUBDIR_DEFINED)
|
||||||
ENDIF(DEFINED SUBDIR_DEFINED)
|
ENDIF(DEFINED SUBDIR_DEFINED)
|
||||||
|
|
||||||
ADD_EXECUTABLE(FunctionTest functionTest.c)
|
ADD_EXECUTABLE(FunctionTest functionTest.c)
|
||||||
|
|
||||||
|
# Use the PROJECT_LABEL property: in IDEs, the project label should appear
|
||||||
|
# in the UI rather than the target name. If this were a good test of the
|
||||||
|
# property rather than just a smoke test, it would verify that the label
|
||||||
|
# actually appears in the UI of the IDE... Or at least that the text appears
|
||||||
|
# somewhere in the generated project files.
|
||||||
|
SET_PROPERTY(TARGET miniFunctionTest
|
||||||
|
PROPERTY PROJECT_LABEL "Test de Fonctionnement")
|
||||||
|
|
Loading…
Reference in New Issue