/**************************************************************************** ** ** Copyright (C) 2016 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of Qbs. ** ** $QT_BEGIN_LICENSE:LGPL$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms ** and conditions see https://www.qt.io/terms-conditions. For further ** information use the contact form at https://www.qt.io/contact-us. ** ** GNU Lesser General Public License Usage ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 3 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL3 included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 3 requirements ** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. ** ** GNU General Public License Usage ** Alternatively, this file may be used under the terms of the GNU ** General Public License version 2.0 or (at your option) the GNU General ** Public license version 3 or any later version approved by the KDE Free ** Qt Foundation. The licenses are as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 ** included in the packaging of this file. Please review the following ** information to ensure the GNU General Public License requirements will ** be met: https://www.gnu.org/licenses/gpl-2.0.html and ** https://www.gnu.org/licenses/gpl-3.0.html. ** ** $QT_END_LICENSE$ ** ****************************************************************************/ #ifndef QBS_LANG_FORWARD_DECLS_H #define QBS_LANG_FORWARD_DECLS_H #include namespace qbs { namespace Internal { enum class ObserveMode; class Value; using ValuePtr = std::shared_ptr; using ValueConstPtr = std::shared_ptr; class ItemValue; using ItemValuePtr = std::shared_ptr; using ItemValueConstPtr = std::shared_ptr; class JSSourceValue; using JSSourceValuePtr = std::shared_ptr; using JSSourceValueConstPtr = std::shared_ptr; class VariantValue; using VariantValuePtr = std::shared_ptr; using VariantValueConstPtr = std::shared_ptr; class FileContext; using FileContextPtr = std::shared_ptr; using FileContextConstPtr = std::shared_ptr; class FileContextBase; using FileContextBasePtr = std::shared_ptr; using FileContextBaseConstPtr = std::shared_ptr; class Probe; using ProbePtr = std::shared_ptr; using ProbeConstPtr = std::shared_ptr; class PropertyMapInternal; using PropertyMapPtr = std::shared_ptr; using PropertyMapConstPtr = std::shared_ptr; class FileTagger; using FileTaggerPtr = std::shared_ptr; using FileTaggerConstPtr = std::shared_ptr; class ResolvedProduct; using ResolvedProductPtr = std::shared_ptr; using ResolvedProductConstPtr = std::shared_ptr; class ResolvedProject; using ResolvedProjectPtr = std::shared_ptr; using ResolvedProjectConstPtr = std::shared_ptr; class TopLevelProject; using TopLevelProjectPtr = std::shared_ptr; using TopLevelProjectConstPtr = std::shared_ptr; class ResolvedFileContext; using ResolvedFileContextPtr = std::shared_ptr; using ResolvedFileContextConstPtr = std::shared_ptr; class Rule; using RulePtr = std::shared_ptr; using RuleConstPtr = std::shared_ptr; class ResolvedScanner; using ResolvedScannerPtr = std::shared_ptr; using ResolvedScannerConstPtr = std::shared_ptr; class SourceArtifactInternal; using SourceArtifactPtr = std::shared_ptr; using SourceArtifactConstPtr = std::shared_ptr; class ScriptFunction; using ScriptFunctionPtr = std::shared_ptr; using ScriptFunctionConstPtr = std::shared_ptr; class PrivateScriptFunction; class RuleArtifact; using RuleArtifactPtr = std::shared_ptr; using RuleArtifactConstPtr = std::shared_ptr; class ResolvedModule; using ResolvedModulePtr = std::shared_ptr; using ResolvedModuleConstPtr = std::shared_ptr; class ResolvedGroup; using GroupPtr = std::shared_ptr; using GroupConstPtr = std::shared_ptr; class ArtifactProperties; using ArtifactPropertiesPtr = std::shared_ptr; using ArtifactPropertiesConstPtr = std::shared_ptr; class ExportedItem; using ExportedItemPtr = std::shared_ptr; class ExportedModule; class ExportedModuleDependency; class ExportedProperty; class PersistentPool; } // namespace Internal } // namespace qbs #ifdef QT_CORE_LIB #include namespace qbs { namespace Internal { template inline static uint qHash(const std::shared_ptr &p, uint seed = 0) { return ::qHash(p.get(), seed); } } // namespace Internal } // namespace qbs #endif #endif // QBS_LANG_FORWARD_DECLS_H