/* KMBuilderConfigTypes.h
 *
 * Copyright (C) 2023 OpenKylin, Inc
 */

#ifndef __BUILD_CONFIG_TYPES_H__
#define __BUILD_CONFIG_TYPES_H__

#include <map>
#include <list>
#include <vector>
#include <string>
#include <memory>

#include "KMBuilderSourceArchive.h"
#include "KMBuilderSourceFile.h"
#include "KMBuilderSourceGit.h"
#include "KMBuilderSourcePatch.h"
#include "KMBuilderSourceSvn.h"
#include "KMBuilderSourceDir.h"
#include "KMBuilderSourceScript.h"
#include "KMBuilderSourceShell.h"

using namespace std;

typedef struct
{
    string name = "";
    string directory = "";
    bool bundle = false;
    bool removeAfterBuild = false;
    bool autodelete = false;
    bool noAutoDownload = false;
    bool localeSubset = false;
    bool subdirectories = false;
    string addLdPath = "";
    string downloadIf = "";
    string enableIf = "";
    list<string> mergeDirs;
    string subdirectorySuffix = "";
    string version = "";
    list<string> versions;
} BuilderExtension;

#endif
