// This file is generated by kconfig_compiler_kf6 from makebuilderconfig.kcfg.
// All changes you do to this file will be lost.
#ifndef MAKEBUILDERSETTINGS_H
#define MAKEBUILDERSETTINGS_H

#include <project/projectconfigskeleton.h>

#include <kconfigskeleton.h>
#include <QCoreApplication>
#include <QDebug>

class MakeBuilderSettings : public KDevelop::ProjectConfigSkeleton
{
  public:

    static MakeBuilderSettings *self();
    static void instance(const QString& cfgfilename);
    static void instance(KSharedConfig::Ptr config);
    ~MakeBuilderSettings() override;

    /**
      Set Display Only
    */
    static
    void setDisplayOnly( bool v )
    {
      if (!self()->isDisplayOnlyImmutable())
        self()->mDisplayOnly = v;
    }

    /**
      Get Display Only
    */
    static
    bool displayOnly()
    {
      return self()->mDisplayOnly;
    }

    /**
      Is Display Only Immutable
    */
    static
    bool isDisplayOnlyImmutable()
    {
      return self()->isImmutable( QStringLiteral( "displayOnly" ) );
    }

    /**
      Set Abort on First Error
    */
    static
    void setAbortOnFirstError( bool v )
    {
      if (!self()->isAbortOnFirstErrorImmutable())
        self()->mAbortOnFirstError = v;
    }

    /**
      Get Abort on First Error
    */
    static
    bool abortOnFirstError()
    {
      return self()->mAbortOnFirstError;
    }

    /**
      Is Abort on First Error Immutable
    */
    static
    bool isAbortOnFirstErrorImmutable()
    {
      return self()->isImmutable( QStringLiteral( "abortOnFirstError" ) );
    }

    /**
      Set Install As Root
    */
    static
    void setInstallAsRoot( bool v )
    {
      if (!self()->isInstallAsRootImmutable())
        self()->mInstallAsRoot = v;
    }

    /**
      Get Install As Root
    */
    static
    bool installAsRoot()
    {
      return self()->mInstallAsRoot;
    }

    /**
      Is Install As Root Immutable
    */
    static
    bool isInstallAsRootImmutable()
    {
      return self()->isImmutable( QStringLiteral( "installAsRoot" ) );
    }

    /**
      Set Su Command
    */
    static
    void setSuCommand( const QString & v )
    {
      if (!self()->isSuCommandImmutable())
        self()->mSuCommand = v;
    }

    /**
      Get Su Command
    */
    static
    QString suCommand()
    {
      return self()->mSuCommand;
    }

    /**
      Is Su Command Immutable
    */
    static
    bool isSuCommandImmutable()
    {
      return self()->isImmutable( QStringLiteral( "suCommand" ) );
    }

    /**
      Set Override Number Of Jobs
    */
    static
    void setOverrideNumberOfJobs( bool v )
    {
      if (!self()->isOverrideNumberOfJobsImmutable())
        self()->mOverrideNumberOfJobs = v;
    }

    /**
      Get Override Number Of Jobs
    */
    static
    bool overrideNumberOfJobs()
    {
      return self()->mOverrideNumberOfJobs;
    }

    /**
      Is Override Number Of Jobs Immutable
    */
    static
    bool isOverrideNumberOfJobsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "overrideNumberOfJobs" ) );
    }

    /**
      Set Number Of Jobs
    */
    static
    void setNumberOfJobs( uint v )
    {
      if (!self()->isNumberOfJobsImmutable())
        self()->mNumberOfJobs = v;
    }

    /**
      Get Number Of Jobs
    */
    static
    uint numberOfJobs()
    {
      return self()->mNumberOfJobs;
    }

    /**
      Is Number Of Jobs Immutable
    */
    static
    bool isNumberOfJobsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "numberOfJobs" ) );
    }

    /**
      Set Make Binary
    */
    static
    void setMakeExecutable( const QString & v )
    {
      if (!self()->isMakeExecutableImmutable())
        self()->mMakeExecutable = v;
    }

    /**
      Get Make Binary
    */
    static
    QString makeExecutable()
    {
      return self()->mMakeExecutable;
    }

    /**
      Is Make Binary Immutable
    */
    static
    bool isMakeExecutableImmutable()
    {
      return self()->isImmutable( QStringLiteral( "makeExecutable" ) );
    }

    /**
      Set Default Target
    */
    static
    void setDefaultTarget( const QString & v )
    {
      if (!self()->isDefaultTargetImmutable())
        self()->mDefaultTarget = v;
    }

    /**
      Get Default Target
    */
    static
    QString defaultTarget()
    {
      return self()->mDefaultTarget;
    }

    /**
      Is Default Target Immutable
    */
    static
    bool isDefaultTargetImmutable()
    {
      return self()->isImmutable( QStringLiteral( "defaultTarget" ) );
    }

    /**
      Set Additional Options
    */
    static
    void setAdditionalOptions( const QString & v )
    {
      if (!self()->isAdditionalOptionsImmutable())
        self()->mAdditionalOptions = v;
    }

    /**
      Get Additional Options
    */
    static
    QString additionalOptions()
    {
      return self()->mAdditionalOptions;
    }

    /**
      Is Additional Options Immutable
    */
    static
    bool isAdditionalOptionsImmutable()
    {
      return self()->isImmutable( QStringLiteral( "additionalOptions" ) );
    }

    /**
      Set Default Make Environment Profile
    */
    static
    void setEnvironmentProfile( const QString & v )
    {
      if (!self()->isEnvironmentProfileImmutable())
        self()->mEnvironmentProfile = v;
    }

    /**
      Get Default Make Environment Profile
    */
    static
    QString environmentProfile()
    {
      return self()->mEnvironmentProfile;
    }

    /**
      Is Default Make Environment Profile Immutable
    */
    static
    bool isEnvironmentProfileImmutable()
    {
      return self()->isImmutable( QStringLiteral( "environmentProfile" ) );
    }

  protected:
    MakeBuilderSettings(KSharedConfig::Ptr config);
    friend class MakeBuilderSettingsHelper;


    // MakeBuilder
    bool mDisplayOnly;
    bool mAbortOnFirstError;
    bool mInstallAsRoot;
    QString mSuCommand;
    bool mOverrideNumberOfJobs;
    uint mNumberOfJobs;
    QString mMakeExecutable;
    QString mDefaultTarget;
    QString mAdditionalOptions;
    QString mEnvironmentProfile;
};

#endif

