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.

This commit is contained in:
Brad King 2005-03-01 12:21:34 -05:00
parent b636a0f20a
commit e979735a19
4 changed files with 125 additions and 0 deletions

View File

@ -17,6 +17,8 @@ SET(SRCS
cmDependsFortranLexer.cxx
cmDependsFortranParser.cxx
cmDependsFortranParser.h
cmDependsJava.cxx
cmDependsJava.h
cmDependsJavaLexer.cxx
cmDependsJavaParser.cxx
cmDependsJavaParserHelper.cxx

59
Source/cmDependsJava.cxx Normal file
View File

@ -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;
}

54
Source/cmDependsJava.h Normal file
View File

@ -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

View File

@ -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;
}