diff options
-rw-r--r-- | README | 6 | ||||
-rw-r--r-- | Source/cmClassFile.cxx | 11 | ||||
-rw-r--r-- | Source/cmMakefile.cxx | 10 |
3 files changed, 19 insertions, 8 deletions
@@ -2,8 +2,8 @@ CMakeLists.txt -> File in each directory that contains classes, exe, etc CMakeLists.txt contains the following: # build targets -WIN32_CLASSES = -UNIX_CLASSES = +WIN32_SOURCE_FILES = +UNIX_SOURCE_FILES = ABSTRACT_CLASSES = SUBDIRS = EXECUTABLES = @@ -25,7 +25,7 @@ BEGIN MAKE VERBATIM ... # copy stuff into CMakeTargets.make directly LOCAL_BUILD_TARGETS = // These are done first before anything else END MAKE VERBATIM -TEMPLATE_INSTANCE_DIR = +AUX_SOURCE_DIR = Windows / Visual Studio 6.0 programs CMakeSetup.exe -> window MFC based GUI for configure on windows diff --git a/Source/cmClassFile.cxx b/Source/cmClassFile.cxx index 6c219ed..21af889 100644 --- a/Source/cmClassFile.cxx +++ b/Source/cmClassFile.cxx @@ -21,8 +21,19 @@ void cmClassFile::SetName(const char* name, const char* dir) pathname += "/"; } + // First try and see whether the listed file can be found + // as is without extensions added on. pathname += m_ClassName; std::string hname = pathname; + if(cmSystemTools::FileExists(hname.c_str())) + { + m_HeaderFileOnly = false; + m_FullPath = hname; + return; + } + + // Try various extentions + hname = pathname; hname += ".cxx"; if(cmSystemTools::FileExists(hname.c_str())) { diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx index 49ee42f..c4eab57 100644 --- a/Source/cmMakefile.cxx +++ b/Source/cmMakefile.cxx @@ -42,7 +42,7 @@ bool cmMakefile::ReadMakefile(const char* filename) { std::string line = inbuffer; cmClassFile file; - if(line.find("COMPILE_CLASSES") != std::string::npos) + if(line.find("SOURCE_FILES") != std::string::npos) { if(line.find("\\") != std::string::npos) { @@ -50,7 +50,7 @@ bool cmMakefile::ReadMakefile(const char* filename) } } #ifdef _WIN32 - else if(line.find("WIN32_CLASSES") != std::string::npos) + else if(line.find("WIN32_SOURCE_FILES") != std::string::npos) { if(line.find("\\") != std::string::npos) { @@ -58,7 +58,7 @@ bool cmMakefile::ReadMakefile(const char* filename) } } #else - else if(line.find("UNIX_CLASSES") != std::string::npos) + else if(line.find("UNIX_SOURCE_FILES") != std::string::npos) { if(line.find("\\") != std::string::npos) { @@ -73,7 +73,7 @@ bool cmMakefile::ReadMakefile(const char* filename) this->ReadClasses(fin, true); } } - else if(line.find("TEMPLATE_INSTANCE_DIRECTORY") != std::string::npos) + else if(line.find("AUX_SOURCE_DIRECTORY") != std::string::npos) { this->ReadTemplateInstanceDirectory(line); } @@ -173,7 +173,7 @@ void cmMakefile::ReadClasses(std::ifstream& fin, } // Find all of the files in dir as specified from this line: -// TEMPLATE_INSTANCE_DIRECTORY = dir +// AUX_SOURCE_DIRECTORY = dir // Add all the files to the m_Classes array. void cmMakefile::ReadTemplateInstanceDirectory(std::string& line) |