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;
|
||||
}
|
||||
|
||||
// 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.
|
||||
std::set<cmStdString> emitted;
|
||||
|
||||
|
@ -1149,6 +1155,14 @@ void cmMakefileTargetGenerator
|
|||
for(cmTarget::LinkLibraryVectorType::const_iterator lib = tlibs.begin();
|
||||
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.
|
||||
if(emitted.insert(lib->first).second)
|
||||
{
|
||||
|
|
|
@ -10,3 +10,8 @@ add_library (simpleLib STATIC
|
|||
)
|
||||
|
||||
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