// 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 #include #include "base/files/file_path.h" #include "base/macros.h" #include "tools/gn/err.h" #include "tools/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& items); const BuildSettings* build_settings_; const Builder& builder_; base::FilePath project_prefix_; std::string root_target_name_; std::set targets_; std::set sources_; std::set includes_; std::set defines_; Err err_; DISALLOW_COPY_AND_ASSIGN(QtCreatorWriter); }; #endif // TOOLS_GN_QT_CREATOR_WRITER_H_