Move schema model into its own library
There's little point in bundling Schema's (the abstract class) symbols
in a library which contains code which uses them. It will break with a
cyclic dependency when we add an implementation of this interface into
other libraries.
I'm also removing some duplicate definitions.
Change-Id: I89dfa4d29164e5a54b1567f6fa091f53e0d520f8
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d4f0d5d..5928c0e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -57,9 +57,13 @@
# we don't need filename tracking, and we prefer to use header-only Boost
add_definitions(-DBOOST_SPIRIT_X3_NO_FILESYSTEM)
-add_library(parser STATIC
+add_library(schemas STATIC
src/static_schema.cpp
src/schema.cpp
+ )
+target_link_libraries(schemas PUBLIC Boost::boost)
+
+add_library(parser STATIC
src/parser.cpp
src/ast_commands.cpp
src/ast_path.cpp
@@ -67,7 +71,7 @@
src/parser_context.cpp
src/interpreter.cpp
)
-target_link_libraries(parser Boost::boost)
+target_link_libraries(parser schemas)
add_executable(netconf-cli
src/main.cpp
diff --git a/src/static_schema.hpp b/src/static_schema.hpp
index 72e23d9..1c261c3 100644
--- a/src/static_schema.hpp
+++ b/src/static_schema.hpp
@@ -8,7 +8,6 @@
#pragma once
-#include <boost/variant.hpp>
#include <set>
#include <stdexcept>
#include <unordered_map>
@@ -19,7 +18,6 @@
/*! \class StaticSchema
* \brief Static schema, used mainly for testing
* */
-using ModuleNodePair = std::pair<boost::optional<std::string>, std::string>;
class StaticSchema : public Schema {
public: