Integrate the Parser as Submodule
The recommended way to include the Erbsland Configuration Parser in your project is by adding it as a Git submodule. This approach is especially suitable for new projects, as it allows you to lock the parser to a specific version. You can then manually update and test new versions when needed, maintaining better control over dependencies.
We also strongly recommend integrating the parser as a static library, rather than using dynamic linking. This avoids compatibility issues and simplifies distribution and deployment.
Project Structure
A typical project layout using the parser as a submodule might look like this:
<project root> # Your project root directory
├── erbsland-cpp-configuration # The Erbsland Configuration Parser as a Git submodule
│ └── (...)
├── <project> # Your application source directory
│ ├── src # Application source files
│ │ └── (...)
│ └── CMakeLists.txt # CMake build file for your app
├── (...)
└── CMakeLists.txt # Top-level CMake configuration file
The CMake Configuration
Below is a minimal example of how to configure your project using CMake:
cmake_minimum_required(VERSION 3.25)
project(ExampleProject)
add_subdirectory(erbsland-cpp-configuration)
add_subdirectory(example)
cmake_minimum_required(VERSION 3.25)
project(Example)
add_executable(example
src/main.cpp
)
target_compile_features(example PRIVATE cxx_std_20)
target_link_libraries(example PRIVATE erbsland-configuration-parser)
How to Compile
To build your project with this setup, run the following commands from your project root:
$ mkdir cmake-build
$ cmake . -B cmake-build
...
-- Build files have been written to: ~/example/cmake-build
$ cmake --build cmake-build
[ 1%] Building CXX object TokenDecoder.cpp.o
[ 3%] Building CXX object Core.cpp.o
...
[100%] Linking CXX executable example
[100%] Built target example