summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorKen Martin <ken.martin@kitware.com>2001-04-12 19:34:09 (GMT)
committerKen Martin <ken.martin@kitware.com>2001-04-12 19:34:09 (GMT)
commite40aaa57c36387fdd8ecf6ffab0021a086dad969 (patch)
tree72fc95ac1ae033e888b906cffcc483d21cd61330 /Source
parentfb6c4b8710ea6023a2a55dddd7b0034c20f68705 (diff)
downloadCMake-e40aaa57c36387fdd8ecf6ffab0021a086dad969.zip
CMake-e40aaa57c36387fdd8ecf6ffab0021a086dad969.tar.gz
CMake-e40aaa57c36387fdd8ecf6ffab0021a086dad969.tar.bz2
some bug fixes
Diffstat (limited to 'Source')
-rw-r--r--Source/Makefile.in2
-rw-r--r--Source/cmAddLibraryCommand.cxx7
-rw-r--r--Source/cmCacheManager.cxx1
-rw-r--r--Source/cmCacheManager.h2
-rw-r--r--Source/cmMakefile.h4
-rw-r--r--Source/cmUnixMakefileGenerator.cxx39
-rw-r--r--Source/cmWrapTclCommand.cxx3
7 files changed, 38 insertions, 20 deletions
diff --git a/Source/Makefile.in b/Source/Makefile.in
index 5bf6fe5..89c8c9f 100644
--- a/Source/Makefile.in
+++ b/Source/Makefile.in
@@ -26,7 +26,7 @@ cmCustomCommand.o \
cmCacheManager.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)
CMakeBuildTargets.o : $(DEPENDS)
diff --git a/Source/cmAddLibraryCommand.cxx b/Source/cmAddLibraryCommand.cxx
index 68845e4..736d567 100644
--- a/Source/cmAddLibraryCommand.cxx
+++ b/Source/cmAddLibraryCommand.cxx
@@ -14,6 +14,7 @@
=========================================================================*/
#include "cmAddLibraryCommand.h"
+#include "cmCacheManager.h"
// cmLibraryCommand
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());
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;
}
diff --git a/Source/cmCacheManager.cxx b/Source/cmCacheManager.cxx
index 0dbdd9d..62762e2 100644
--- a/Source/cmCacheManager.cxx
+++ b/Source/cmCacheManager.cxx
@@ -25,6 +25,7 @@ const char* cmCacheManagerTypes[] =
"PATH",
"FILEPATH",
"STRING",
+ "INTERNAL",
0
};
diff --git a/Source/cmCacheManager.h b/Source/cmCacheManager.h
index 7ed5f92..11cd592 100644
--- a/Source/cmCacheManager.h
+++ b/Source/cmCacheManager.h
@@ -35,7 +35,7 @@ public:
* text entry box, FILEPATH is a full path to a file which
* 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*);
//! Singleton pattern get instance of the cmCacheManager.
static cmCacheManager* GetInstance();
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index 5d50371..f72a6ed 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -97,7 +97,9 @@ public:
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*);
diff --git a/Source/cmUnixMakefileGenerator.cxx b/Source/cmUnixMakefileGenerator.cxx
index 6d4bcd9..8e67000 100644
--- a/Source/cmUnixMakefileGenerator.cxx
+++ b/Source/cmUnixMakefileGenerator.cxx
@@ -19,6 +19,7 @@
#include "cmSystemTools.h"
#include "cmClassFile.h"
#include "cmMakeDepend.h"
+#include "cmCacheManager.h"
void cmUnixMakefileGenerator::GenerateMakefile()
{
@@ -69,6 +70,7 @@ void cmUnixMakefileGenerator::OutputTargetRules(std::ostream& fout)
// for each target add to the list of targets
fout << "TARGETS = ";
const cmTargets &tgts = m_Makefile->GetTargets();
+ // libraries
for(cmTargets::const_iterator l = tgts.begin();
l != tgts.end(); l++)
{
@@ -76,7 +78,12 @@ void cmUnixMakefileGenerator::OutputTargetRules(std::ostream& fout)
{
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();
}
@@ -216,21 +223,18 @@ void cmUnixMakefileGenerator::OutputDependencies(std::ostream& fout)
{
bool found = false;
// loop over the list of directories that the libraries might
- // be in, looking for a LIBRARY=(lib) line.
- for(dir = libdirs.begin(); dir != libdirs.end() && !found; ++dir)
+ // be in, looking for an ADD_LIBRARY(lib...) line. This would
+ // be stored in the cache
+ const char* cacheValue
+ = cmCacheManager::GetInstance()->GetCacheValue(lib->c_str());
+ if(cacheValue)
{
- std::string expression = "LIBRARY.*=.*";
- expression += lib->c_str();
- if(cmSystemTools::Grep(dir->c_str(), "CMakeTargets.make",
- expression.c_str()))
- {
- std::string libpath = *dir;
- libpath += "/lib";
- libpath += *lib;
- libpath += "${CMAKE_LIB_EXT}";
- fout << libpath << " ";
- found = true;
- }
+ std::string libpath = cacheValue;
+ 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;
// 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)
{
- std::string expression = "EXECUTABLES.*=.*";
+ std::string expression = "TARGETS =.*";
expression += util->c_str();
if(cmSystemTools::Grep(dir->c_str(), "CMakeTargets.make",
expression.c_str()))
@@ -267,6 +271,7 @@ void cmUnixMakefileGenerator::OutputMakeFlags(std::ostream& fout)
fout << "INCLUDE_FLAGS = ";
std::vector<std::string>& includes = m_Makefile->GetIncludeDirectories();
std::vector<std::string>::iterator i;
+ fout << "-I" << m_Makefile->GetStartDirectory() << " ";
for(i = includes.begin(); i != includes.end(); ++i)
{
std::string include = *i;
diff --git a/Source/cmWrapTclCommand.cxx b/Source/cmWrapTclCommand.cxx
index 931af36..a7c0c12 100644
--- a/Source/cmWrapTclCommand.cxx
+++ b/Source/cmWrapTclCommand.cxx
@@ -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
std::string cdir = m_Makefile->GetCurrentDirectory();