Debug optimized cache fixes
This commit is contained in:
parent
4fe8947bcc
commit
2242006ca1
|
@ -67,14 +67,6 @@ IF (WIN32)
|
|||
ENDIF(NOT UNIX)
|
||||
ENDIF (WIN32)
|
||||
|
||||
IF (UNIX)
|
||||
INCLUDE (${CMake_SOURCE_DIR}/Modules/FindCurses.cmake OPTIONAL)
|
||||
IF (CURSES_LIBRARY)
|
||||
SUBDIRS(CursesDialog/form)
|
||||
INCLUDE(${CMake_SOURCE_DIR}/Source/CursesDialog/CMakeLists.txt)
|
||||
ENDIF (CURSES_LIBRARY)
|
||||
ENDIF (UNIX)
|
||||
|
||||
SET(SRCS ${SRCS} cmUnixMakefileGenerator.cxx cmUnixMakefileGenerator.h)
|
||||
|
||||
|
||||
|
@ -91,6 +83,15 @@ ADD_EXECUTABLE(DumpDocumentation cmDumpDocumentation)
|
|||
ADD_EXECUTABLE(ctest ctest.cxx cmSystemTools.cxx cmRegularExpression.cxx)
|
||||
ADD_EXECUTABLE(ccommand ccommand.cxx cmSystemTools.cxx cmMakefile.cxx)
|
||||
|
||||
|
||||
IF (UNIX)
|
||||
INCLUDE (${CMake_SOURCE_DIR}/Modules/FindCurses.cmake OPTIONAL)
|
||||
IF (CURSES_LIBRARY)
|
||||
SUBDIRS(CursesDialog/form)
|
||||
INCLUDE(${CMake_SOURCE_DIR}/Source/CursesDialog/CMakeLists.txt)
|
||||
ENDIF (CURSES_LIBRARY)
|
||||
ENDIF (UNIX)
|
||||
|
||||
IF (NOT DART_ROOT)
|
||||
SET(MAKEPROGRAM ${CMAKE_MAKE_PROGRAM})
|
||||
ENDIF (NOT DART_ROOT)
|
||||
|
|
|
@ -665,7 +665,16 @@ void cmMakefile::AddLibrary(const char* lname, int shared,
|
|||
default:
|
||||
target.SetType(cmTarget::STATIC_LIBRARY);
|
||||
}
|
||||
// Clear its dependencies. Otherwise, dependencies might persist
|
||||
// over changes in CMakeLists.txt, making the information stale and
|
||||
// hence useless.
|
||||
std::string depname = lname;
|
||||
depname += "_LIB_DEPENDS";
|
||||
cmCacheManager::GetInstance()->
|
||||
AddCacheEntry(depname.c_str(), "",
|
||||
"Dependencies for target", cmCacheManager::INTERNAL);
|
||||
|
||||
|
||||
target.SetInAll(true);
|
||||
target.GetSourceLists() = srcs;
|
||||
std::vector<std::string>::iterator j;
|
||||
|
@ -723,14 +732,6 @@ void cmMakefile::AddLibrary(const char* lname, int shared,
|
|||
cmCacheManager::INTERNAL);
|
||||
}
|
||||
|
||||
// Clear its dependencies. Otherwise, dependencies might persist
|
||||
// over changes in CMakeLists.txt, making the information stale and
|
||||
// hence useless.
|
||||
std::string depname = lname;
|
||||
depname += "_LIB_DEPENDS";
|
||||
cmCacheManager::GetInstance()->
|
||||
AddCacheEntry(depname.c_str(), "",
|
||||
"Dependencies for target", cmCacheManager::INTERNAL);
|
||||
}
|
||||
|
||||
void cmMakefile::AddExecutable(const char *exeName,
|
||||
|
|
|
@ -80,6 +80,25 @@ void cmTarget::AddLinkLibrary(cmMakefile& mf,
|
|||
{
|
||||
m_LinkLibraries.push_back( std::pair<std::string, cmTarget::LinkLibraryType>(lib,llt) );
|
||||
|
||||
if(llt != cmTarget::GENERAL)
|
||||
{
|
||||
std::string linkTypeName = this->CanonicalLibraryName(lib);
|
||||
linkTypeName += "_LINK_TYPE";
|
||||
switch(llt)
|
||||
{
|
||||
case cmTarget::DEBUG:
|
||||
mf.AddCacheDefinition(linkTypeName.c_str(),
|
||||
"debug", "Library is used for debug links only",
|
||||
cmCacheManager::INTERNAL);
|
||||
break;
|
||||
case cmTarget::OPTIMIZED:
|
||||
mf.AddCacheDefinition(linkTypeName.c_str(),
|
||||
"optimized", "Library is used for debug links only",
|
||||
cmCacheManager::INTERNAL);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
mf.AddDependencyToCache( target, lib );
|
||||
}
|
||||
|
||||
|
@ -127,7 +146,7 @@ cmTarget::AnalyzeLibDependencies( const cmMakefile& mf )
|
|||
// if a variable expands to nothing.
|
||||
if (lib->first.size() == 0) continue;
|
||||
|
||||
std::string cname = CanonicalLibraryName(lib->first);
|
||||
std::string cname = this->CanonicalLibraryName(lib->first);
|
||||
lib_order.push_back( cname );
|
||||
if( lib_map.end() == lib_map.find( cname ) )
|
||||
{
|
||||
|
@ -140,7 +159,7 @@ cmTarget::AnalyzeLibDependencies( const cmMakefile& mf )
|
|||
// have specified them
|
||||
for( LinkLine::iterator i = orig_libs.begin(); i != orig_libs.end(); ++i )
|
||||
{
|
||||
GatherDependencies( mf, *i, dep_map, lib_map );
|
||||
this->GatherDependencies( mf, *i, dep_map, lib_map );
|
||||
}
|
||||
|
||||
// For the rest, get implicit dependencies. A library x depends
|
||||
|
@ -193,7 +212,6 @@ cmTarget::AnalyzeLibDependencies( const cmMakefile& mf )
|
|||
// for all the new libraries added by the dependency analysis.
|
||||
const char* libOutPath = mf.GetDefinition("LIBRARY_OUTPUT_PATH");
|
||||
bool addLibDirs = (libOutPath==0 || strcmp(libOutPath,"")==0);
|
||||
|
||||
m_LinkLibraries.clear();
|
||||
for( std::vector<std::string>::reverse_iterator i = link_line.rbegin();
|
||||
i != link_line.rend(); ++i )
|
||||
|
@ -217,7 +235,22 @@ cmTarget::AnalyzeLibDependencies( const cmMakefile& mf )
|
|||
}
|
||||
}
|
||||
}
|
||||
m_LinkLibraries.push_back( std::make_pair(*i,GENERAL) );
|
||||
std::string linkType = *i;
|
||||
linkType += "_LINK_TYPE";
|
||||
cmTarget::LinkLibraryType llt = cmTarget::GENERAL;
|
||||
const char* linkTypeString = mf.GetDefinition( linkType.c_str() );
|
||||
if(linkTypeString)
|
||||
{
|
||||
if(strcmp(linkTypeString, "debug") == 0)
|
||||
{
|
||||
llt = cmTarget::DEBUG;
|
||||
}
|
||||
if(strcmp(linkTypeString, "optimized") == 0)
|
||||
{
|
||||
llt = cmTarget::OPTIMIZED;
|
||||
}
|
||||
}
|
||||
m_LinkLibraries.push_back( std::make_pair(*i,llt) );
|
||||
}
|
||||
else
|
||||
{
|
||||
|
@ -247,10 +280,10 @@ std::string cmTarget::CanonicalLibraryName( const std::string& lib ) const
|
|||
{
|
||||
return libname_noprefix.match(1);
|
||||
}
|
||||
else
|
||||
{
|
||||
return file;
|
||||
}
|
||||
else
|
||||
{
|
||||
return file;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -20,6 +20,17 @@ SOURCE_FILES(LibrarySources
|
|||
SOURCE_FILES_REMOVE(LibrarySources create_file.cxx GENERATED nonexisting_file)
|
||||
ADD_LIBRARY(CMakeTestLibrary LibrarySources)
|
||||
|
||||
IF(WIN32)
|
||||
IF(NOT CYGWIN)
|
||||
TARGET_LINK_LIBRARIES(CMakeTestLibrary
|
||||
debug
|
||||
user32.lib)
|
||||
TARGET_LINK_LIBRARIES(CMakeTestLibrary
|
||||
optimized
|
||||
kernel32.lib)
|
||||
ENDIF(NOT CYGWIN)
|
||||
ENDIF(WIN32)
|
||||
|
||||
#
|
||||
# Create shared library
|
||||
#
|
||||
|
|
|
@ -20,6 +20,17 @@ SOURCE_FILES(LibrarySources
|
|||
SOURCE_FILES_REMOVE(LibrarySources create_file.cxx GENERATED nonexisting_file)
|
||||
ADD_LIBRARY(CMakeTestLibrary LibrarySources)
|
||||
|
||||
IF(WIN32)
|
||||
IF(NOT CYGWIN)
|
||||
TARGET_LINK_LIBRARIES(CMakeTestLibrary
|
||||
debug
|
||||
user32.lib)
|
||||
TARGET_LINK_LIBRARIES(CMakeTestLibrary
|
||||
optimized
|
||||
kernel32.lib)
|
||||
ENDIF(NOT CYGWIN)
|
||||
ENDIF(WIN32)
|
||||
|
||||
#
|
||||
# Create shared library
|
||||
#
|
||||
|
|
|
@ -20,6 +20,17 @@ SOURCE_FILES(LibrarySources
|
|||
SOURCE_FILES_REMOVE(LibrarySources create_file.cxx GENERATED nonexisting_file)
|
||||
ADD_LIBRARY(CMakeTestLibrary LibrarySources)
|
||||
|
||||
IF(WIN32)
|
||||
IF(NOT CYGWIN)
|
||||
TARGET_LINK_LIBRARIES(CMakeTestLibrary
|
||||
debug
|
||||
user32.lib)
|
||||
TARGET_LINK_LIBRARIES(CMakeTestLibrary
|
||||
optimized
|
||||
kernel32.lib)
|
||||
ENDIF(NOT CYGWIN)
|
||||
ENDIF(WIN32)
|
||||
|
||||
#
|
||||
# Create shared library
|
||||
#
|
||||
|
|
Loading…
Reference in New Issue