tizentoolchain.h 3.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. /****************************************************************************
  2. **
  3. ** Copyright (C) 2013 Jarek Pelczar <jpelczar@gmail.com>
  4. ** Copyright (C) 2014 Tomasz Olszak <olszak.tomasz@gmail.com>
  5. **
  6. ** This file is part of Qt Creator.
  7. **
  8. ** Commercial License Usage
  9. ** Licensees holding valid commercial Qt licenses may use this file in
  10. ** accordance with the commercial license agreement provided with the
  11. ** Software or, alternatively, in accordance with the terms contained in
  12. ** a written agreement between you and Digia. For licensing terms and
  13. ** conditions see http://qt.digia.com/licensing. For further information
  14. ** use the contact form at http://qt.digia.com/contact-us.
  15. **
  16. ** GNU Lesser General Public License Usage
  17. ** Alternatively, this file may be used under the terms of the GNU Lesser
  18. ** General Public License version 2.1 as published by the Free Software
  19. ** Foundation and appearing in the file LICENSE.LGPL included in the
  20. ** packaging of this file. Please review the following information to
  21. ** ensure the GNU Lesser General Public License version 2.1 requirements
  22. ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
  23. **
  24. ** In addition, as a special exception, Digia gives you certain additional
  25. ** rights. These rights are described in the Digia Qt LGPL Exception
  26. ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
  27. **
  28. ****************************************************************************/
  29. #ifndef TIZEN_TIZENTOOLCHAIN_H
  30. #define TIZEN_TIZENTOOLCHAIN_H
  31. #include <projectexplorer/gcctoolchain.h>
  32. #include <projectexplorer/toolchainconfigwidget.h>
  33. #include <projectexplorer/gcctoolchainfactories.h>
  34. namespace Tizen {
  35. namespace Internal {
  36. class TizenToolChainFactory;
  37. class TizenGccToolChain : public ProjectExplorer::GccToolChain
  38. {
  39. public:
  40. ~TizenGccToolChain();
  41. QString type() const; QString typeDisplayName() const;
  42. bool isValid() const;
  43. void addToEnvironment(Utils::Environment &env) const;
  44. bool operator ==(const ProjectExplorer::ToolChain &) const;
  45. ProjectExplorer::ToolChainConfigWidget *configurationWidget();
  46. Utils::FileName suggestedDebugger() const;
  47. QVariantMap toMap() const;
  48. bool fromMap(const QVariantMap &data);
  49. QString makeCommand(const Utils::Environment &environment) const;
  50. QList<Utils::FileName> suggestedMkspecList() const;
  51. Utils::FileName gbsBuildRoot() const {return m_gbsBuildRoot;}
  52. protected:
  53. QList<ProjectExplorer::Abi> detectSupportedAbis() const;
  54. private:
  55. TizenGccToolChain();
  56. TizenGccToolChain(const ProjectExplorer::Abi::Architecture arch, Detection d, Utils::FileName gbsBuildRoot = Utils::FileName());
  57. TizenGccToolChain(const TizenGccToolChain&);
  58. Utils::FileName m_gbsBuildRoot;
  59. friend class TizenToolChainFactory;
  60. };
  61. class TizenToolChainFactory : public ProjectExplorer::ToolChainFactory
  62. {
  63. Q_OBJECT
  64. public:
  65. TizenToolChainFactory();
  66. QString displayName() const;
  67. virtual QList<ProjectExplorer::ToolChain *> autoDetect();
  68. virtual bool canRestore(const QVariantMap &data);
  69. virtual ProjectExplorer::ToolChain *restore(const QVariantMap &data);
  70. virtual bool canCreate();
  71. virtual ProjectExplorer::ToolChain *create();
  72. static QList<ProjectExplorer::ToolChain *> createToolChainsForSdk(const QString& sdkPath);
  73. static ProjectExplorer::ToolChain *createToolChainForGbs(const QString& gbsBuildRoot);
  74. };
  75. } // namespace Internal
  76. } // namespace Tizen
  77. #endif // TIZEN_TIZENTOOLCHAIN_H