This commit is contained in:
theNerd247 2017-08-25 07:00:58 +00:00 committed by GitHub
commit e6fd322d32
3 changed files with 185 additions and 9 deletions

View File

@ -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
@ -120,6 +121,7 @@ include_directories(${YAML_CPP_SOURCE_DIR}/include)
###
### General compilation settings
###
@ -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
@ -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)
@ -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

133
Doxyfile.in Normal file
View File

@ -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

View File

@ -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.
@ -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!