summaryrefslogtreecommitdiffstats
path: root/Executable.h
blob: 48e53377c239c5f23a767ec5f96ef33140504573 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#ifndef EXECUTABLE_H_
#define EXECUTABLE_H_

#include "CCSource.h"
#include "Configuration.h"
#include "ProcessUtilities.h"
#include "SharedRef.h"

#include <string>
#include <vector>

class Component;
class Project;

class Executable : public Configurable
{
	public:
		Executable(const std::string& aName);
		~Executable();

		Executable& add(const SharedPtr<CCSource> File);
		ProcessController* createNextTask();
		const std::string& name() const;
		void setName(const std::string& s);
		void setFromParentConfiguration(const Configuration& Parent);
		unsigned int ccSources() const;
		SharedPtr<CCSource> getCcSource(unsigned int i);
		void setExecutableName(const std::string& N);
		const std::string& executableName() const;
		void add(SharedPtr<Component> aComponent);
		unsigned int components() const;
		SharedPtr<Component> getComponent(unsigned int i);

		void configure();
		void readSystemConfiguration();

	private:
		bool isFullyDiscovered();

		std::string Name, ExecutableName;
		std::vector<SharedPtr<CCSource> > CCFiles;
		std::vector<SharedPtr<Component> > UsedLibs;
		bool Linked;
		bool DiscoveryChecked;
		bool FullyDiscovered;
};

#endif