Dark Mode

Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Hahn-Schickard/IODD-Model

Repository files navigation

IO-Link IO Device Descriptor Model and XML Parser Library

Description

IO-Link IO Device Description model declaration and XML parser library for C++17

Documentation

If you want to have the latest documentation with your changes locally, you can generate it with Doxygen from sources by running the following:

doxygen Doxyfile

This will generate html like documentation at [PROJECT_ROOT]/docs/html. To use it open the [PROJECT_ROOT]/docs/html/index.html file with your browser.

Dependencies

Required

  • compiler with C++17 support
  • cmake 3.24.0 >= - build system generator, used by package generator as well
  • python3 - used by utilities and package generator
  • conan 2.4.0 >= - dependency handler/package generator

Optional

  • ninja - build system (alternative to make)
  • clang-format >=15.0.7 - to use formatting tools
  • clang-tidy >=15.0.7 - to use static code analysis
  • lcov - to generate code coverage reports
  • valgrind - to run memory analysis
  • doxygen 1.9.8 >= - to generate documentation from code
  • plantuml 1.2023.10 >= - to generate UML diagrams in doxygen

Visual Studio Code Support

Recommended Plugins:

CMake Variant Integration

A CMake variant file is provided with this repository for easy cmake configuration setup. This functionality requires CMake Tools plugin to be installed. After Visual Code has been started Open Control Panel with Cntrl + Shift + P and type in CMake: Select Variant to start configuring your cmake project configuration.

Building the project

To build the project CMake project makefile generation as well as integrated testing and linting tools.

We recommend to create a directory for project makefiles and binaries:

mkdir build && cd build

Once in this new build directory, generate the project makefiles for Debug configuration (you can change Debug for Release if debugging information is not needed):

cmake .. -DCMAKE_BUILD_TYPE=Debug

Once makefiles have been generated, build the project either in Debug configuration:

cmake --build . --target all --config Debug --

or Release configuration, if previous cmake configuration was set for Release:

cmake --build . --target all --config Release --

Once the project is built, it is also possible to use the integrated tests runner to run the provided tests:

ctest --verbose

Creating local conan package

To create a custom local package first define VERSION, USER and CHANEL environmental variables. These variables will tell conan how to name the package.

  • VERSION variable specifies package version number in the following format ${MAJOR}.${MINOR}.${PATCH}. For more information see Release versioning schema
  • USER variable specifies the name of release community (for example hahn-schickard, bincrafters, etc.), it is used to showcase that this package is outside of conan-center-index repository
  • CHANEL variable specifies the package type, i.e. if it is a stable, development or nightly release, defaults to empty

Conan v1

To create local conan packages run the following command in project root directory:

conan create . ${VERSION}@${USER}/${CHANEL} --build=missing

Conan v2

To create local conan packages run the following command in project root directory:

conan create . --version=${VERSION} --user=${USER} --channel=${CHANEL} --build=missing

In case you need to change default recipe options

conan create . --version=${VERSION} --user=${USER} --channel=${CHANEL} --build=missing -o ${OPTION_PAIR}

Where ${OPTION_PAIR} is option_name=value. To add multiple options, continue to add -o ${OPTION_PAIR} as required.

About

No description, website, or topics provided.

Resources

Readme

License

Apache-2.0 license

Contributing

Contributing

Stars

Watchers

Forks

Packages

Contributors