#include "config.h"
#include "logger.h"
#include "packagemanager.h"
+#include "sourcepackage.h"
#include "target.h"
#include "toolchain.h"
#include "virtualfilesystem.h"
class FileTarget;
class Package;
class Plugin;
-class SourcePackage;
/**
This class ties everything else together. It also contains code for loading
std::vector<LoadedPlugin> plugins;
PackageManager package_manager;
+ SourcePackage::ComponentRegistry component_registry;
Architecture native_arch;
Architecture *current_arch = 0;
void load_plugins();
PackageManager &get_package_manager() { return package_manager; }
+ SourcePackage::ComponentRegistry &get_component_registry() { return component_registry; }
+
+ template<typename F>
+ void call_plugins(F) const;
void set_architecture(const std::string &);
const Architecture &get_current_arch() const { return *current_arch; }
int do_create_makefile();
};
+template<typename F>
+void Builder::call_plugins(F func) const
+{
+ for(const LoadedPlugin &p: plugins)
+ func(*p.plugin);
+}
+
#endif