ENH: make sure things do not depend on optimized libraries if they are debug, and the other way around as well
This commit is contained in:
parent
31a576abe6
commit
f2e8fd06c2
|
@ -1136,7 +1136,13 @@ void cmMakefileTargetGenerator
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
// Compute which library configuration to link.
|
||||||
|
cmTarget::LinkLibraryType linkType = cmTarget::OPTIMIZED;
|
||||||
|
if(cmSystemTools::UpperCase(
|
||||||
|
this->LocalGenerator->ConfigurationName.c_str()) == "DEBUG")
|
||||||
|
{
|
||||||
|
linkType = cmTarget::DEBUG;
|
||||||
|
}
|
||||||
// Keep track of dependencies already listed.
|
// Keep track of dependencies already listed.
|
||||||
std::set<cmStdString> emitted;
|
std::set<cmStdString> emitted;
|
||||||
|
|
||||||
|
@ -1149,6 +1155,14 @@ void cmMakefileTargetGenerator
|
||||||
for(cmTarget::LinkLibraryVectorType::const_iterator lib = tlibs.begin();
|
for(cmTarget::LinkLibraryVectorType::const_iterator lib = tlibs.begin();
|
||||||
lib != tlibs.end(); ++lib)
|
lib != tlibs.end(); ++lib)
|
||||||
{
|
{
|
||||||
|
// skip the library if it is not general and the link type
|
||||||
|
// does not match the current target
|
||||||
|
if(lib->second != cmTarget::GENERAL &&
|
||||||
|
lib->second != linkType)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
// Don't emit the same library twice for this target.
|
// Don't emit the same library twice for this target.
|
||||||
if(emitted.insert(lib->first).second)
|
if(emitted.insert(lib->first).second)
|
||||||
{
|
{
|
||||||
|
|
|
@ -10,3 +10,8 @@ add_library (simpleLib STATIC
|
||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries (simple simpleLib)
|
target_link_libraries (simple simpleLib)
|
||||||
|
|
||||||
|
# make sure optimized libs are not used by debug builds
|
||||||
|
if(CMAKE_BUILD_TYPE MATCHES Debug)
|
||||||
|
target_link_libraries(simple optimized c:/not/here.lib )
|
||||||
|
endif(CMAKE_BUILD_TYPE MATCHES Debug)
|
||||||
|
|
Loading…
Reference in New Issue