Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 40 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ enable_testing()
## Project stuff
option(YAML_CPP_BUILD_TOOLS "Enable testing and parse tools" ON)
option(YAML_CPP_BUILD_CONTRIB "Enable contrib stuff in library" ON)
option(USE_DOXYGEN "Enable doxygen generation" ON)

## Build options
# --> General
Expand Down Expand Up @@ -120,6 +121,7 @@ include_directories(${YAML_CPP_SOURCE_DIR}/include)




###
### General compilation settings
###
Expand Down Expand Up @@ -260,14 +262,17 @@ endif()
###
if(WIN32)
set(_library_dir bin) # .dll are in PATH, like executables
set(_share_dir bin)
else()
set(_library_dir lib)
set(_share_dir share)
endif()

set(INCLUDE_INSTALL_ROOT_DIR ${CMAKE_INSTALL_PREFIX}/include)

set(INCLUDE_INSTALL_DIR ${INCLUDE_INSTALL_ROOT_DIR}/yaml-cpp)
set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/${_library_dir}${LIB_SUFFIX}")
set(LIB_INSTALL_DIR "${_library_dir}${LIB_SUFFIX}")
set(SHARE_INSTALL_DIR "${_share_dir}${LIB_SUFFIX}")

set(_INSTALL_DESTINATIONS
RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/bin
Expand Down Expand Up @@ -331,7 +336,7 @@ else()
set(INSTALL_CMAKE_DIR ${LIB_INSTALL_DIR}/cmake/yaml-cpp)
endif()

file(RELATIVE_PATH REL_INCLUDE_DIR "${INSTALL_CMAKE_DIR}" "${INCLUDE_INSTALL_ROOT_DIR}")
file(RELATIVE_PATH REL_INCLUDE_DIR "${CMAKE_INSTALL_PREFIX}/${INSTALL_CMAKE_DIR}" "${INCLUDE_INSTALL_ROOT_DIR}")
set(CONFIG_INCLUDE_DIRS "\${YAML_CPP_CMAKE_DIR}/${REL_INCLUDE_DIR}")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/yaml-cpp-config.cmake.in
"${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/yaml-cpp-config.cmake" @ONLY)
Expand All @@ -351,6 +356,39 @@ if(UNIX)
install(FILES ${PC_FILE} DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)
endif()

###
### Doxygen
###
if(USE_DOXYGEN)

find_package(Doxygen)
if(DOXYGEN_FOUND)

set(DOC_DIR "${PROJECT_BINARY_DIR}/doc")

configure_file(
"${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in"
"${PROJECT_BINARY_DIR}/Doxyfile"
@ONLY
)

add_custom_target(doc
COMMAND ${DOXYGEN_EXECUTABLE} ${PROJECT_BINARY_DIR}/Doxyfile
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
COMMENT "Generating API documentation with Doxygen" VERBATIM
)

install(DIRECTORY
"${DOC_DIR}/"
DESTINATION
"${SHARE_INSTALL_DIR}/doc/yaml-cpp${LIB_SUFFIX}"
OPTIONAL
PATTERN "${DOC_DIR}/*"
)

endif(DOXYGEN_FOUND)

endif(USE_DOXYGEN)

###
### Extras
Expand Down
133 changes: 133 additions & 0 deletions Doxyfile.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
DOXYFILE_ENCODING = UTF-8

PROJECT_NAME = "@PROJECT_NAME@"

PROJECT_NUMBER = @YAML_CPP_VERSION@

PROJECT_BRIEF = "yaml-cpp is a YAML parser and emitter in C++ matching the YAML 1.2 spec."
OUTPUT_DIRECTORY = @DOC_DIR@

INPUT = @CMAKE_CURRENT_SOURCE_DIR@
USE_MDFILE_AS_MAINPAGE = @CMAKE_CURRENT_SOURCE_DIR@/README.md

EXCLUDE_PATTERNS = @CMAKE_CURRENT_SOURCE_DIR@/test/gmock*

BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES

INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = YES
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = NO

QT_AUTOBRIEF = NO

MULTILINE_CPP_IS_BRIEF = NO

INHERIT_DOCS = YES
SEPARATE_MEMBER_PAGES = NO

TAB_SIZE = 2

MARKDOWN_SUPPORT = YES

AUTOLINK_SUPPORT = YES

SUBGROUPING = YES

TYPEDEF_HIDES_STRUCT = YES

EXTRACT_ALL = YES

EXTRACT_PRIVATE = YES

EXTRACT_PACKAGE = YES

EXTRACT_STATIC = YES

EXTRACT_LOCAL_CLASSES = YES

EXTRACT_LOCAL_METHODS = YES
EXTRACT_ANON_NSPACES = NO

SHOW_INCLUDE_FILES = YES
SHOW_GROUPED_MEMB_INC = NO

INLINE_INFO = YES
SORT_MEMBER_DOCS = YES

SORT_BRIEF_DOCS = NO

SORT_MEMBERS_CTORS_1ST = NO
SORT_GROUP_NAMES = NO

SORT_BY_SCOPE_NAME = NO

STRICT_PROTO_MATCHING = NO
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES

GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES
SHOW_FILES = YES
SHOW_NAMESPACES = YES
QUIET = NO
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES

WARN_IF_DOC_ERROR = YES

WARN_NO_PARAMDOC = NO

WARN_FORMAT = "$file:$line: $text"

RECURSIVE = YES

EXCLUDE_SYMLINKS = YES

FILTER_SOURCE_FILES = NO

SOURCE_BROWSER = YES

INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES

REFERENCED_BY_RELATION = NO

REFERENCES_RELATION = NO

REFERENCES_LINK_SOURCE = YES

SOURCE_TOOLTIPS = YES

USE_HTAGS = NO

VERBATIM_HEADERS = YES
ALPHABETICAL_INDEX = YES
COLS_IN_ALPHA_INDEX = 5
GENERATE_HTML = YES

HTML_OUTPUT = html
HTML_FILE_EXTENSION = .html

HTML_COLORSTYLE_HUE = 220

HTML_COLORSTYLE_SAT = 100
HTML_COLORSTYLE_GAMMA = 80

HTML_TIMESTAMP = YES

HTML_DYNAMIC_SECTIONS = NO
HTML_INDEX_NUM_ENTRIES = 100

SEARCHENGINE = YES

SERVER_BASED_SEARCH = NO

CLASS_DIAGRAMS = YES

HIDE_UNDOC_RELATIONS = YES

GENERATE_LATEX = NO
19 changes: 12 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,16 @@ yaml-cpp uses [CMake](http://www.cmake.org) to support cross-platform building.

2. Navigate into the source directory, and type:

```
mkdir build
cd build
```

mkdir build
cd build


3. Run CMake. The basic syntax is:

```
cmake [-G generator] [-DBUILD_SHARED_LIBS=ON|OFF] ..
```

cmake [-G generator] [-DBUILD_SHARED_LIBS=ON|OFF] ..


* The `generator` is whatever type of build system you'd like to use. To see a full list of generators on your platform, just run `cmake` (with no arguments). For example:
* On Windows, you might use "Visual Studio 12 2013" to generate a Visual Studio 2013 solution or "Visual Studio 14 2015 Win64" to generate a 64-bit Visual Studio 2015 solution.
Expand All @@ -36,6 +36,11 @@ cmake [-G generator] [-DBUILD_SHARED_LIBS=ON|OFF] ..

* yaml-cpp defaults to building a static library, but you may build a shared library by specifying `-DBUILD_SHARED_LIBS=ON`.

* By default the build is configured to generate doxygen documentation for the
library. If you'd like to turn this off use `-DUSE_DOXYGEN=OFF`. If you _do_
use doxygen then __make sure you run__: `make doc` __before__ running `make
install`.

* For more options on customizing the build, see the [CMakeLists.txt](https://github.com/jbeder/yaml-cpp/blob/master/CMakeLists.txt) file.

4. Build it!
Expand Down