some bug fixes
This commit is contained in:
parent
fb6c4b8710
commit
e40aaa57c3
|
@ -26,7 +26,7 @@ cmCustomCommand.o \
|
||||||
cmCacheManager.o \
|
cmCacheManager.o \
|
||||||
cmSourceGroup.o
|
cmSourceGroup.o
|
||||||
|
|
||||||
DEPENDS = $(srcdir)/*.h ${CMAKE_CONFIG_DIR}/CMake/Source/cmConfigure.h
|
DEPENDS = $(srcdir)/*.h $(srcdir)/*.cxx ${CMAKE_CONFIG_DIR}/CMake/Source/cmConfigure.h
|
||||||
|
|
||||||
cmCollectFlags.o : $(DEPENDS)
|
cmCollectFlags.o : $(DEPENDS)
|
||||||
CMakeBuildTargets.o : $(DEPENDS)
|
CMakeBuildTargets.o : $(DEPENDS)
|
||||||
|
|
|
@ -14,6 +14,7 @@
|
||||||
|
|
||||||
=========================================================================*/
|
=========================================================================*/
|
||||||
#include "cmAddLibraryCommand.h"
|
#include "cmAddLibraryCommand.h"
|
||||||
|
#include "cmCacheManager.h"
|
||||||
|
|
||||||
// cmLibraryCommand
|
// cmLibraryCommand
|
||||||
bool cmAddLibraryCommand::Invoke(std::vector<std::string>& args)
|
bool cmAddLibraryCommand::Invoke(std::vector<std::string>& args)
|
||||||
|
@ -28,6 +29,12 @@ bool cmAddLibraryCommand::Invoke(std::vector<std::string>& args)
|
||||||
std::vector<std::string> srclists(++s, args.end());
|
std::vector<std::string> srclists(++s, args.end());
|
||||||
|
|
||||||
m_Makefile->AddLibrary(args[0].c_str(),srclists);
|
m_Makefile->AddLibrary(args[0].c_str(),srclists);
|
||||||
|
|
||||||
|
// Add an entry into the cache
|
||||||
|
cmCacheManager::GetInstance()->
|
||||||
|
AddCacheEntry(args[0].c_str(),
|
||||||
|
m_Makefile->GetCurrentOutputDirectory(),
|
||||||
|
cmCacheManager::INTERNAL);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,7 @@ const char* cmCacheManagerTypes[] =
|
||||||
"PATH",
|
"PATH",
|
||||||
"FILEPATH",
|
"FILEPATH",
|
||||||
"STRING",
|
"STRING",
|
||||||
|
"INTERNAL",
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -35,7 +35,7 @@ public:
|
||||||
* text entry box, FILEPATH is a full path to a file which
|
* text entry box, FILEPATH is a full path to a file which
|
||||||
* can be different than just a path input
|
* can be different than just a path input
|
||||||
*/
|
*/
|
||||||
enum CacheEntryType{ BOOL=0, PATH, FILEPATH, STRING };
|
enum CacheEntryType{ BOOL=0, PATH, FILEPATH, STRING, INTERNAL };
|
||||||
static CacheEntryType StringToType(const char*);
|
static CacheEntryType StringToType(const char*);
|
||||||
//! Singleton pattern get instance of the cmCacheManager.
|
//! Singleton pattern get instance of the cmCacheManager.
|
||||||
static cmCacheManager* GetInstance();
|
static cmCacheManager* GetInstance();
|
||||||
|
|
|
@ -97,7 +97,9 @@ public:
|
||||||
void AddExecutable(const char *exename, const std::vector<std::string> &srcs);
|
void AddExecutable(const char *exename, const std::vector<std::string> &srcs);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a utility on which this project depends.
|
* Add a utility on which this project depends. A utility is an executable
|
||||||
|
* name as would be specified to the ADD_EXECUTABLE or UTILITY_SOURCE
|
||||||
|
* commands. It is not a full path nor does it have an extension.
|
||||||
*/
|
*/
|
||||||
void AddUtility(const char*);
|
void AddUtility(const char*);
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
#include "cmSystemTools.h"
|
#include "cmSystemTools.h"
|
||||||
#include "cmClassFile.h"
|
#include "cmClassFile.h"
|
||||||
#include "cmMakeDepend.h"
|
#include "cmMakeDepend.h"
|
||||||
|
#include "cmCacheManager.h"
|
||||||
|
|
||||||
void cmUnixMakefileGenerator::GenerateMakefile()
|
void cmUnixMakefileGenerator::GenerateMakefile()
|
||||||
{
|
{
|
||||||
|
@ -69,6 +70,7 @@ void cmUnixMakefileGenerator::OutputTargetRules(std::ostream& fout)
|
||||||
// for each target add to the list of targets
|
// for each target add to the list of targets
|
||||||
fout << "TARGETS = ";
|
fout << "TARGETS = ";
|
||||||
const cmTargets &tgts = m_Makefile->GetTargets();
|
const cmTargets &tgts = m_Makefile->GetTargets();
|
||||||
|
// libraries
|
||||||
for(cmTargets::const_iterator l = tgts.begin();
|
for(cmTargets::const_iterator l = tgts.begin();
|
||||||
l != tgts.end(); l++)
|
l != tgts.end(); l++)
|
||||||
{
|
{
|
||||||
|
@ -76,7 +78,12 @@ void cmUnixMakefileGenerator::OutputTargetRules(std::ostream& fout)
|
||||||
{
|
{
|
||||||
fout << " \\\nlib" << l->first.c_str() << "${CMAKE_LIB_EXT}";
|
fout << " \\\nlib" << l->first.c_str() << "${CMAKE_LIB_EXT}";
|
||||||
}
|
}
|
||||||
else
|
}
|
||||||
|
// executables
|
||||||
|
for(cmTargets::const_iterator l = tgts.begin();
|
||||||
|
l != tgts.end(); l++)
|
||||||
|
{
|
||||||
|
if (!l->second.m_IsALibrary)
|
||||||
{
|
{
|
||||||
fout << "\\\n" << l->first.c_str();
|
fout << "\\\n" << l->first.c_str();
|
||||||
}
|
}
|
||||||
|
@ -216,21 +223,18 @@ void cmUnixMakefileGenerator::OutputDependencies(std::ostream& fout)
|
||||||
{
|
{
|
||||||
bool found = false;
|
bool found = false;
|
||||||
// loop over the list of directories that the libraries might
|
// loop over the list of directories that the libraries might
|
||||||
// be in, looking for a LIBRARY=(lib) line.
|
// be in, looking for an ADD_LIBRARY(lib...) line. This would
|
||||||
for(dir = libdirs.begin(); dir != libdirs.end() && !found; ++dir)
|
// be stored in the cache
|
||||||
|
const char* cacheValue
|
||||||
|
= cmCacheManager::GetInstance()->GetCacheValue(lib->c_str());
|
||||||
|
if(cacheValue)
|
||||||
{
|
{
|
||||||
std::string expression = "LIBRARY.*=.*";
|
std::string libpath = cacheValue;
|
||||||
expression += lib->c_str();
|
libpath += "/lib";
|
||||||
if(cmSystemTools::Grep(dir->c_str(), "CMakeTargets.make",
|
libpath += *lib;
|
||||||
expression.c_str()))
|
libpath += "${CMAKE_LIB_EXT}";
|
||||||
{
|
fout << libpath << " ";
|
||||||
std::string libpath = *dir;
|
found = true;
|
||||||
libpath += "/lib";
|
|
||||||
libpath += *lib;
|
|
||||||
libpath += "${CMAKE_LIB_EXT}";
|
|
||||||
fout << libpath << " ";
|
|
||||||
found = true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -243,10 +247,10 @@ void cmUnixMakefileGenerator::OutputDependencies(std::ostream& fout)
|
||||||
{
|
{
|
||||||
bool found = false;
|
bool found = false;
|
||||||
// loop over the list of directories that the utilities might
|
// loop over the list of directories that the utilities might
|
||||||
// be in, looking for an EXECUTABLES=(util) line.
|
// be in, looking for an ADD_EXECUTABLE(util ...) line.
|
||||||
for(dir = utildirs.begin(); dir != utildirs.end() && !found; ++dir)
|
for(dir = utildirs.begin(); dir != utildirs.end() && !found; ++dir)
|
||||||
{
|
{
|
||||||
std::string expression = "EXECUTABLES.*=.*";
|
std::string expression = "TARGETS =.*";
|
||||||
expression += util->c_str();
|
expression += util->c_str();
|
||||||
if(cmSystemTools::Grep(dir->c_str(), "CMakeTargets.make",
|
if(cmSystemTools::Grep(dir->c_str(), "CMakeTargets.make",
|
||||||
expression.c_str()))
|
expression.c_str()))
|
||||||
|
@ -267,6 +271,7 @@ void cmUnixMakefileGenerator::OutputMakeFlags(std::ostream& fout)
|
||||||
fout << "INCLUDE_FLAGS = ";
|
fout << "INCLUDE_FLAGS = ";
|
||||||
std::vector<std::string>& includes = m_Makefile->GetIncludeDirectories();
|
std::vector<std::string>& includes = m_Makefile->GetIncludeDirectories();
|
||||||
std::vector<std::string>::iterator i;
|
std::vector<std::string>::iterator i;
|
||||||
|
fout << "-I" << m_Makefile->GetStartDirectory() << " ";
|
||||||
for(i = includes.begin(); i != includes.end(); ++i)
|
for(i = includes.begin(); i != includes.end(); ++i)
|
||||||
{
|
{
|
||||||
std::string include = *i;
|
std::string include = *i;
|
||||||
|
|
|
@ -44,6 +44,9 @@ bool cmWrapTclCommand::Invoke(std::vector<std::string>& args)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// add in a depend in the vtkWrapTcl executable
|
||||||
|
m_Makefile->AddUtility("vtkWrapTcl");
|
||||||
|
|
||||||
// what is the current source dir
|
// what is the current source dir
|
||||||
std::string cdir = m_Makefile->GetCurrentDirectory();
|
std::string cdir = m_Makefile->GetCurrentDirectory();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue