summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/CMakeLists.txt2
-rw-r--r--Source/cmDependsJava.cxx59
-rw-r--r--Source/cmDependsJava.h54
-rw-r--r--Source/cmLocalUnixMakefileGenerator2.cxx10
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;
}