diff options
-rw-r--r-- | Source/CMakeLists.txt | 2 | ||||
-rw-r--r-- | Source/cmDependsJava.cxx | 59 | ||||
-rw-r--r-- | Source/cmDependsJava.h | 54 | ||||
-rw-r--r-- | Source/cmLocalUnixMakefileGenerator2.cxx | 10 |
4 files changed, 125 insertions, 0 deletions
diff --git a/Source/CMakeLists.txt b/Source/CMakeLists.txt index 6ded4e8..73c42e2 100644 --- a/Source/CMakeLists.txt +++ b/Source/CMakeLists.txt @@ -17,6 +17,8 @@ SET(SRCS cmDependsFortranLexer.cxx cmDependsFortranParser.cxx cmDependsFortranParser.h + cmDependsJava.cxx + cmDependsJava.h cmDependsJavaLexer.cxx cmDependsJavaParser.cxx cmDependsJavaParserHelper.cxx diff --git a/Source/cmDependsJava.cxx b/Source/cmDependsJava.cxx new file mode 100644 index 0000000..ebd1d83 --- /dev/null +++ b/Source/cmDependsJava.cxx @@ -0,0 +1,59 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#include "cmDependsJava.h" + +#include "cmDependsJavaParserHelper.h" +#include "cmSystemTools.h" + +//---------------------------------------------------------------------------- +cmDependsJava::cmDependsJava(const char* dir, const char* targetFile): + cmDepends(dir, targetFile), + m_SourceFile() +{ +} + +//---------------------------------------------------------------------------- +cmDependsJava::cmDependsJava(const char* dir, const char* targetFile, + const char* sourceFile): + cmDepends(dir, targetFile), + m_SourceFile(sourceFile) +{ +} + +//---------------------------------------------------------------------------- +cmDependsJava::~cmDependsJava() +{ +} + +//---------------------------------------------------------------------------- +bool cmDependsJava::WriteDependencies(std::ostream& os) +{ + // Make sure this is a scanning instance. + if(m_SourceFile == "") + { + cmSystemTools::Error("Cannot scan dependencies without an source file."); + return false; + } + + return true; +} + +//---------------------------------------------------------------------------- +bool cmDependsJava::CheckDependencies(std::istream&) +{ + return true; +} diff --git a/Source/cmDependsJava.h b/Source/cmDependsJava.h new file mode 100644 index 0000000..4904fe1 --- /dev/null +++ b/Source/cmDependsJava.h @@ -0,0 +1,54 @@ +/*========================================================================= + + Program: CMake - Cross-Platform Makefile Generator + Module: $RCSfile$ + Language: C++ + Date: $Date$ + Version: $Revision$ + + Copyright (c) 2002 Kitware, Inc., Insight Consortium. All rights reserved. + See Copyright.txt or http://www.cmake.org/HTML/Copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef cmDependsJava_h +#define cmDependsJava_h + +#include "cmDepends.h" + +/** \class cmDependsJava + * \brief Dependency scanner for Java class files. + */ +class cmDependsJava: public cmDepends +{ +public: + /** Checking instances need to know the build directory name and the + relative path from the build directory to the target file. */ + cmDependsJava(const char* dir, const char* targetFile); + + /** Scanning need to know the build directory name, the relative + path from the build directory to the target file and the source + file to scan. */ + cmDependsJava(const char* dir, const char* targetFile, + const char* sourceFile); + + /** Virtual destructor to cleanup subclasses properly. */ + virtual ~cmDependsJava(); + +protected: + // Implement writing/checking methods required by superclass. + virtual bool WriteDependencies(std::ostream& os); + virtual bool CheckDependencies(std::istream& is); + + // The source file from which to start scanning. + std::string m_SourceFile; + +private: + cmDependsJava(cmDependsJava const&); // Purposely not implemented. + void operator=(cmDependsJava const&); // Purposely not implemented. +}; + +#endif diff --git a/Source/cmLocalUnixMakefileGenerator2.cxx b/Source/cmLocalUnixMakefileGenerator2.cxx index 851504d..47a7d99 100644 --- a/Source/cmLocalUnixMakefileGenerator2.cxx +++ b/Source/cmLocalUnixMakefileGenerator2.cxx @@ -28,6 +28,7 @@ #include "cmDependsC.h" #ifdef CMAKE_BUILD_WITH_CMAKE # include "cmDependsFortran.h" +# include "cmDependsJava.h" #endif #include <memory> // auto_ptr @@ -3135,6 +3136,10 @@ cmLocalUnixMakefileGenerator2::GetDependsChecker(const std::string& lang, { return new cmDependsFortran(dir, objFile); } + else if(lang == "Java") + { + return new cmDependsJava(dir, objFile); + } #endif return 0; } @@ -3219,6 +3224,11 @@ cmLocalUnixMakefileGenerator2 cmDependsFortran scanner(".", objFile, srcFile, includes); return scanner.Write(); } + else if(lang == "Java") + { + cmDependsJava scanner(".", objFile, srcFile); + return scanner.Write(); + } #endif return false; } |