- Notifications
You must be signed in to change notification settings - Fork2k
A YAML parser and emitter in C++
License
jbeder/yaml-cpp
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
yaml-cpp
is aYAML parser and emitter in C++ matching theYAML 1.2 spec.
SeeTutorial andHow to Emit YAML for reference. For the old API (until 0.5.0), seeHow To Parse A Document.
If you find a bug, post anissue! If you have questions about how to use yaml-cpp, please post it onhttp://stackoverflow.com and tag ityaml-cpp
.
yaml-cpp
usesCMake to support cross-platform building. InstallCMake(Resources -> Download) before proceeding. The basic steps to build are:
Note: If you don't use the provided installer for your platform, make sure that you addCMake
's bin folder to your path.
mkdir buildcd buildcmake [-G generator] [-DYAML_BUILD_SHARED_LIBS=on|OFF] ..
The
generator
option is the build system you'd like to use. Runcmake
without arguments to see a full list of available generators.- On Windows, you might use "Visual Studio 12 2013" (VS 2013 32-bits), or "Visual Studio 14 2015 Win64" (VS 2015 64-bits).
- On OS X, you might use "Xcode".
- On a UNIX-like system, omit the option (for a Makefile).
yaml-cpp
builds a static library by default, you may want to build a shared library by specifying-DYAML_BUILD_SHARED_LIBS=ON
.Debug mode of the GNU standard C++librarycan be used when both
yaml-cpp
and client code is compiled with the_GLIBCXX_DEBUG
flag (e.g. by calling CMake with-D CMAKE_CXX_FLAGS_DEBUG='-g -D_GLIBCXX_DEBUG'
option).Note that for
yaml-cpp
unit tests to run successfully, theGoogleTestlibrary also must be built with this flag, i.e. the system one cannot beused (theYAML_USE_SYSTEM_GTEST CMake option must beOFF, which is thedefault).For more options on customizing the build, see theCMakeLists.txt file.
- The command you'll need to run depends on the generator you chose earlier.
Note: To clean up, just remove thebuild
directory.
You can use for example FetchContent :
include(FetchContent)FetchContent_Declare( yaml-cpp GIT_REPOSITORY https://github.com/jbeder/yaml-cpp.git GIT_TAG <tag_name># Can be a tag (yaml-cpp-x.x.x), a commit hash, or a branch name (master))FetchContent_MakeAvailable(yaml-cpp)target_link_libraries(YOUR_LIBRARYPUBLIC yaml-cpp::yaml-cpp)# The library or executable that require yaml-cpp library
yaml-cpp 0.8.0 released!
yaml-cpp 0.3.0 is still available if you want the old API.
The old API will stop receiving bugfixes in 2026. The 0.3.x versions provide the old API, and 0.5.x and above all provide the new API.
The autogenerated API reference is hosted onCodeDocs
The following projects are not officially supported:
About
A YAML parser and emitter in C++
Resources
License
Contributing
Security policy
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.