aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/Conf.hpp16
-rw-r--r--include/Package.hpp13
2 files changed, 23 insertions, 6 deletions
diff --git a/include/Conf.hpp b/include/Conf.hpp
index 3634f4c..c792075 100644
--- a/include/Conf.hpp
+++ b/include/Conf.hpp
@@ -5,6 +5,7 @@
#include "StringView.hpp"
#include "utils.hpp"
#include "Dependency.hpp"
+#include "Package.hpp"
#include <vector>
#include <cassert>
#include <stdexcept>
@@ -84,7 +85,7 @@ namespace sibs
class SibsConfig : public ConfigCallback
{
public:
- SibsConfig() : finishedProcessing(false) {}
+ SibsConfig() : finishedProcessing(false), packageType((PackageType)-1) {}
const std::string& getPackageName() const
{
@@ -92,6 +93,12 @@ namespace sibs
return packageName;
}
+ PackageType getPackageType() const
+ {
+ assert(finishedProcessing);
+ return packageType;
+ }
+
const std::vector<Dependency>& getDependencies() const
{
return dependencies;
@@ -99,14 +106,11 @@ namespace sibs
protected:
void processObject(StringView name) override;
void processField(StringView name, const ConfigValue &value) override;
-
- void finished() override
- {
- finishedProcessing = true;
- }
+ void finished() override;
private:
StringView currentObject;
std::string packageName;
+ PackageType packageType;
std::vector<Dependency> dependencies;
bool finishedProcessing;
};
diff --git a/include/Package.hpp b/include/Package.hpp
new file mode 100644
index 0000000..130e987
--- /dev/null
+++ b/include/Package.hpp
@@ -0,0 +1,13 @@
+#ifndef SIBS_PACKAGE_HPP
+#define SIBS_PACKAGE_HPP
+
+namespace sibs
+{
+ enum class PackageType : int
+ {
+ EXECUTABLE,
+ LIBRARY
+ };
+}
+
+#endif //SIBS_PACKAGE_HPP