| // Copyright (c) 2016 The Chromium Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #ifndef TOOLS_GN_QT_CREATOR_WRITER_H_ | |
| #define TOOLS_GN_QT_CREATOR_WRITER_H_ | |
| #include <set> | |
| #include <string> | |
| #include "base/files/file_path.h" | |
| #include "gn/err.h" | |
| #include "gn/target.h" | |
| class Builder; | |
| class BuildSettings; | |
| class QtCreatorWriter { | |
| public: | |
| static bool RunAndWriteFile(const BuildSettings* build_settings, | |
| const Builder& builder, | |
| Err* err, | |
| const std::string& root_target); | |
| private: | |
| QtCreatorWriter(const BuildSettings* build_settings, | |
| const Builder& builder, | |
| const base::FilePath& project_prefix, | |
| const std::string& root_target_name); | |
| ~QtCreatorWriter(); | |
| void Run(); | |
| bool DiscoverTargets(); | |
| void HandleTarget(const Target* target); | |
| void CollectDeps(const Target* target); | |
| void AddToSources(const Target::FileList& files); | |
| void GenerateFile(const base::FilePath::CharType* suffix, | |
| const std::set<std::string>& items); | |
| const BuildSettings* build_settings_; | |
| const Builder& builder_; | |
| base::FilePath project_prefix_; | |
| std::string root_target_name_; | |
| TargetSet targets_; | |
| std::set<std::string> sources_; | |
| std::set<std::string> includes_; | |
| std::set<std::string> defines_; | |
| Err err_; | |
| QtCreatorWriter(const QtCreatorWriter&) = delete; | |
| QtCreatorWriter& operator=(const QtCreatorWriter&) = delete; | |
| }; | |
| #endif // TOOLS_GN_QT_CREATOR_WRITER_H_ |