resolve cyclic dependency with zstd
[platform/upstream/cmake.git] / Source / cmDependsJava.h
1 /* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
2    file Copyright.txt or https://cmake.org/licensing for details.  */
3 #pragma once
4
5 #include "cmConfigure.h" // IWYU pragma: keep
6
7 #include <iosfwd>
8 #include <set>
9 #include <string>
10
11 #include "cmDepends.h"
12
13 /** \class cmDependsJava
14  * \brief Dependency scanner for Java class files.
15  */
16 class cmDependsJava : public cmDepends
17 {
18 public:
19   /** Checking instances need to know the build directory name and the
20       relative path from the build directory to the target file.  */
21   cmDependsJava();
22
23   /** Virtual destructor to cleanup subclasses properly.  */
24   ~cmDependsJava() override;
25
26   cmDependsJava(cmDependsJava const&) = delete;
27   cmDependsJava& operator=(cmDependsJava const&) = delete;
28
29 protected:
30   // Implement writing/checking methods required by superclass.
31   bool WriteDependencies(const std::set<std::string>& sources,
32                          const std::string& file, std::ostream& makeDepends,
33                          std::ostream& internalDepends) override;
34   bool CheckDependencies(std::istream& internalDepends,
35                          const std::string& internalDependsFileName,
36                          DependencyMap& validDeps) override;
37 };