summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2005-03-01 17:21:34 (GMT)
committerBrad King <brad.king@kitware.com>2005-03-01 17:21:34 (GMT)
commite979735a195d45c3c1ed8657b0c4bad96aad90cf (patch)
tree8fc69403de7d5273b4507101845e7e9c86f4f88d /Source
parentb636a0f20aa9f94940acd109e3717ef79730d168 (diff)
downloadCMake-e979735a195d45c3c1ed8657b0c4bad96aad90cf.zip
CMake-e979735a195d45c3c1ed8657b0c4bad96aad90cf.tar.gz
CMake-e979735a195d45c3c1ed8657b0c4bad96aad90cf.tar.bz2
ENH: Framework for java dependency scanner. Right now it does nothing but always reports success. This is enough to get the Java test to pass with the new generator because the old implementation did not do dependencies anyway.
Diffstat (limited to 'Source')
-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;
}