Merge branch 'master' into master

This commit is contained in:
João Marcos Pereira Bezerra 2019-09-18 15:12:18 -03:00 committed by GitHub
commit 3552ae98f4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 59 additions and 39 deletions

View File

@ -9,13 +9,7 @@ include(CheckCXXCompilerFlag)
### ###
### Project settings ### Project settings
### ###
project(YAML_CPP) project(YAML_CPP VERSION 0.6.2)
set(YAML_CPP_VERSION_MAJOR "0")
set(YAML_CPP_VERSION_MINOR "6")
set(YAML_CPP_VERSION_PATCH "2")
set(YAML_CPP_VERSION "${YAML_CPP_VERSION_MAJOR}.${YAML_CPP_VERSION_MINOR}.${YAML_CPP_VERSION_PATCH}")
### ###
### Project options ### Project options
@ -30,20 +24,20 @@ option(YAML_CPP_INSTALL "Enable generation of install target" ON)
# --> General # --> General
# see http://www.cmake.org/cmake/help/cmake2.6docs.html#variable:BUILD_SHARED_LIBS # see http://www.cmake.org/cmake/help/cmake2.6docs.html#variable:BUILD_SHARED_LIBS
# http://www.cmake.org/cmake/help/cmake2.6docs.html#command:add_library # http://www.cmake.org/cmake/help/cmake2.6docs.html#command:add_library
option(BUILD_SHARED_LIBS "Build Shared Libraries" OFF) option(YAML_BUILD_SHARED_LIBS "Build Shared Libraries" OFF)
# Set minimum C++ to 2011 standards
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
# --> Apple # --> Apple
option(APPLE_UNIVERSAL_BIN "Apple: Build universal binary" OFF) if(APPLE)
option(YAML_APPLE_UNIVERSAL_BIN "Apple: Build universal binary" OFF)
endif()
# --> Microsoft Visual C++ # --> Microsoft Visual C++
# see http://msdn.microsoft.com/en-us/library/aa278396(v=VS.60).aspx # see http://msdn.microsoft.com/en-us/library/aa278396(v=VS.60).aspx
# http://msdn.microsoft.com/en-us/library/2kzt1wy3(v=VS.71).aspx # http://msdn.microsoft.com/en-us/library/2kzt1wy3(v=VS.71).aspx
option(MSVC_SHARED_RT "MSVC: Build with shared runtime libs (/MD)" ON) if(MSVC)
option(MSVC_STHREADED_RT "MSVC: Build with single-threaded static runtime libs (/ML until VS .NET 2003)" OFF) option(YAML_MSVC_SHARED_RT "MSVC: Build with shared runtime libs (/MD)" ON)
option(YAML_MSVC_STHREADED_RT "MSVC: Build with single-threaded static runtime libs (/ML until VS .NET 2003)" OFF)
endif()
### ###
### Sources, headers, directories and libs ### Sources, headers, directories and libs
@ -116,14 +110,14 @@ endif()
set(yaml_c_flags ${CMAKE_C_FLAGS}) set(yaml_c_flags ${CMAKE_C_FLAGS})
set(yaml_cxx_flags ${CMAKE_CXX_FLAGS}) set(yaml_cxx_flags ${CMAKE_CXX_FLAGS})
if(BUILD_SHARED_LIBS) if(YAML_BUILD_SHARED_LIBS)
set(LABEL_SUFFIX "shared") set(LABEL_SUFFIX "shared")
else() else()
set(LABEL_SUFFIX "static") set(LABEL_SUFFIX "static")
endif() endif()
if(APPLE) if(APPLE)
if(APPLE_UNIVERSAL_BIN) if(YAML_APPLE_UNIVERSAL_BIN)
set(CMAKE_OSX_ARCHITECTURES ppc;i386) set(CMAKE_OSX_ARCHITECTURES ppc;i386)
endif() endif()
endif() endif()
@ -134,7 +128,7 @@ if(IPHONE)
endif() endif()
if(WIN32) if(WIN32)
if(BUILD_SHARED_LIBS) if(YAML_BUILD_SHARED_LIBS)
add_definitions(-D${PROJECT_NAME}_DLL) # use or build Windows DLL add_definitions(-D${PROJECT_NAME}_DLL) # use or build Windows DLL
endif() endif()
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
@ -161,7 +155,7 @@ if(CMAKE_CXX_COMPILER_ID MATCHES "GNU" OR
# #
set(GCC_EXTRA_OPTIONS "") set(GCC_EXTRA_OPTIONS "")
# #
if(BUILD_SHARED_LIBS) if(YAML_BUILD_SHARED_LIBS)
set(GCC_EXTRA_OPTIONS "${GCC_EXTRA_OPTIONS} -fPIC") set(GCC_EXTRA_OPTIONS "${GCC_EXTRA_OPTIONS} -fPIC")
endif() endif()
# #
@ -196,8 +190,8 @@ if(MSVC)
set(LIB_RT_SUFFIX "md") # CMake defaults to /MD for MSVC set(LIB_RT_SUFFIX "md") # CMake defaults to /MD for MSVC
set(LIB_RT_OPTION "/MD") set(LIB_RT_OPTION "/MD")
# #
if(NOT MSVC_SHARED_RT) # User wants to have static runtime libraries (/MT, /ML) if(NOT YAML_MSVC_SHARED_RT) # User wants to have static runtime libraries (/MT, /ML)
if(MSVC_STHREADED_RT) # User wants to have old single-threaded static runtime libraries if(YAML_MSVC_STHREADED_RT) # User wants to have old single-threaded static runtime libraries
set(LIB_RT_SUFFIX "ml") set(LIB_RT_SUFFIX "ml")
set(LIB_RT_OPTION "/ML") set(LIB_RT_OPTION "/ML")
if(NOT ${MSVC_VERSION} LESS 1400) if(NOT ${MSVC_VERSION} LESS 1400)
@ -227,7 +221,7 @@ if(MSVC)
set(CMAKE_STATIC_LIBRARY_PREFIX "lib") # to distinguish static libraries from DLL import libs set(CMAKE_STATIC_LIBRARY_PREFIX "lib") # to distinguish static libraries from DLL import libs
# c) Correct suffixes for static libraries # c) Correct suffixes for static libraries
if(NOT BUILD_SHARED_LIBS) if(NOT YAML_BUILD_SHARED_LIBS)
### General stuff ### General stuff
set(LIB_TARGET_SUFFIX "${LIB_SUFFIX}${LIB_RT_SUFFIX}") set(LIB_TARGET_SUFFIX "${LIB_SUFFIX}${LIB_RT_SUFFIX}")
endif() endif()
@ -258,7 +252,11 @@ set(_INSTALL_DESTINATIONS
### ###
### Library ### Library
### ###
add_library(yaml-cpp ${library_sources}) if(YAML_BUILD_SHARED_LIBS)
add_library(yaml-cpp SHARED ${library_sources})
else()
add_library(yaml-cpp STATIC ${library_sources})
endif()
if (NOT CMAKE_VERSION VERSION_LESS 2.8.12) if (NOT CMAKE_VERSION VERSION_LESS 2.8.12)
target_include_directories(yaml-cpp target_include_directories(yaml-cpp
@ -267,6 +265,11 @@ if (NOT CMAKE_VERSION VERSION_LESS 2.8.12)
PRIVATE $<BUILD_INTERFACE:${YAML_CPP_SOURCE_DIR}/src>) PRIVATE $<BUILD_INTERFACE:${YAML_CPP_SOURCE_DIR}/src>)
endif() endif()
set_target_properties(yaml-cpp PROPERTIES
CXX_STANDARD 11
CXX_STANDARD_REQUIRED ON
)
set_target_properties(yaml-cpp PROPERTIES set_target_properties(yaml-cpp PROPERTIES
COMPILE_FLAGS "${yaml_c_flags} ${yaml_cxx_flags}" COMPILE_FLAGS "${yaml_c_flags} ${yaml_cxx_flags}"
) )
@ -284,7 +287,7 @@ if(IPHONE)
endif() endif()
if(MSVC) if(MSVC)
if(NOT BUILD_SHARED_LIBS) if(NOT YAML_BUILD_SHARED_LIBS)
# correct library names # correct library names
set_target_properties(yaml-cpp PROPERTIES set_target_properties(yaml-cpp PROPERTIES
DEBUG_POSTFIX "${LIB_TARGET_SUFFIX}d" DEBUG_POSTFIX "${LIB_TARGET_SUFFIX}d"

View File

@ -39,7 +39,7 @@ class YAML_CPP_API Binary {
rhs.clear(); rhs.clear();
rhs.resize(m_unownedSize); rhs.resize(m_unownedSize);
std::copy(m_unownedData, m_unownedData + m_unownedSize, rhs.begin()); std::copy(m_unownedData, m_unownedData + m_unownedSize, rhs.begin());
m_unownedData = 0; m_unownedData = nullptr;
m_unownedSize = 0; m_unownedSize = 0;
} else { } else {
m_data.swap(rhs); m_data.swap(rhs);

View File

@ -117,7 +117,7 @@ inline const std::string KEY_NOT_FOUND_WITH_KEY(
template <typename T> template <typename T>
inline const std::string BAD_SUBSCRIPT_WITH_KEY( inline const std::string BAD_SUBSCRIPT_WITH_KEY(
const T&, typename disable_if<is_numeric<T>>::type* = 0) { const T&, typename disable_if<is_numeric<T>>::type* = nullptr) {
return BAD_SUBSCRIPT; return BAD_SUBSCRIPT;
} }
@ -129,7 +129,7 @@ inline const std::string BAD_SUBSCRIPT_WITH_KEY(const std::string& key) {
template <typename T> template <typename T>
inline const std::string BAD_SUBSCRIPT_WITH_KEY( inline const std::string BAD_SUBSCRIPT_WITH_KEY(
const T& key, typename enable_if<is_numeric<T>>::type* = 0) { const T& key, typename enable_if<is_numeric<T>>::type* = nullptr) {
std::stringstream stream; std::stringstream stream;
stream << BAD_SUBSCRIPT << " (key: \"" << key << "\")"; stream << BAD_SUBSCRIPT << " (key: \"" << key << "\")";
return stream.str(); return stream.str();
@ -160,7 +160,7 @@ class YAML_CPP_API Exception : public std::runtime_error {
static const std::string build_what(const Mark& mark, static const std::string build_what(const Mark& mark,
const std::string& msg) { const std::string& msg) {
if (mark.is_null()) { if (mark.is_null()) {
return msg.c_str(); return msg;
} }
std::stringstream output; std::stringstream output;

View File

@ -17,7 +17,7 @@ template <typename Key, typename Enable = void>
struct get_idx { struct get_idx {
static node* get(const std::vector<node*>& /* sequence */, static node* get(const std::vector<node*>& /* sequence */,
const Key& /* key */, shared_memory_holder /* pMemory */) { const Key& /* key */, shared_memory_holder /* pMemory */) {
return 0; return nullptr;
} }
}; };
@ -27,7 +27,7 @@ struct get_idx<Key,
!std::is_same<Key, bool>::value>::type> { !std::is_same<Key, bool>::value>::type> {
static node* get(const std::vector<node*>& sequence, const Key& key, static node* get(const std::vector<node*>& sequence, const Key& key,
shared_memory_holder /* pMemory */) { shared_memory_holder /* pMemory */) {
return key < sequence.size() ? sequence[key] : 0; return key < sequence.size() ? sequence[key] : nullptr;
} }
static node* get(std::vector<node*>& sequence, const Key& key, static node* get(std::vector<node*>& sequence, const Key& key,
@ -46,13 +46,13 @@ struct get_idx<Key, typename std::enable_if<std::is_signed<Key>::value>::type> {
shared_memory_holder pMemory) { shared_memory_holder pMemory) {
return key >= 0 ? get_idx<std::size_t>::get( return key >= 0 ? get_idx<std::size_t>::get(
sequence, static_cast<std::size_t>(key), pMemory) sequence, static_cast<std::size_t>(key), pMemory)
: 0; : nullptr;
} }
static node* get(std::vector<node*>& sequence, const Key& key, static node* get(std::vector<node*>& sequence, const Key& key,
shared_memory_holder pMemory) { shared_memory_holder pMemory) {
return key >= 0 ? get_idx<std::size_t>::get( return key >= 0 ? get_idx<std::size_t>::get(
sequence, static_cast<std::size_t>(key), pMemory) sequence, static_cast<std::size_t>(key), pMemory)
: 0; : nullptr;
} }
}; };
@ -109,11 +109,11 @@ inline node* node_data::get(const Key& key,
break; break;
case NodeType::Undefined: case NodeType::Undefined:
case NodeType::Null: case NodeType::Null:
return NULL; return nullptr;
case NodeType::Sequence: case NodeType::Sequence:
if (node* pNode = get_idx<Key>::get(m_sequence, key, pMemory)) if (node* pNode = get_idx<Key>::get(m_sequence, key, pMemory))
return pNode; return pNode;
return NULL; return nullptr;
case NodeType::Scalar: case NodeType::Scalar:
throw BadSubscript(key); throw BadSubscript(key);
} }
@ -124,7 +124,7 @@ inline node* node_data::get(const Key& key,
} }
} }
return NULL; return nullptr;
} }
template <typename Key> template <typename Key>

View File

@ -26,9 +26,9 @@ template <typename V>
struct node_iterator_value : public std::pair<V*, V*> { struct node_iterator_value : public std::pair<V*, V*> {
typedef std::pair<V*, V*> kv; typedef std::pair<V*, V*> kv;
node_iterator_value() : kv(), pNode(0) {} node_iterator_value() : kv(), pNode(nullptr) {}
explicit node_iterator_value(V& rhs) : kv(), pNode(&rhs) {} explicit node_iterator_value(V& rhs) : kv(), pNode(&rhs) {}
explicit node_iterator_value(V& key, V& value) : kv(&key, &value), pNode(0) {} explicit node_iterator_value(V& key, V& value) : kv(&key, &value), pNode(nullptr) {}
V& operator*() const { return *pNode; } V& operator*() const { return *pNode; }
V& operator->() const { return *pNode; } V& operator->() const { return *pNode; }

View File

@ -52,7 +52,7 @@ inline Node::Node(Zombie)
: m_isValid(false), m_invalidKey{}, m_pMemory{}, m_pNode(nullptr) {} : m_isValid(false), m_invalidKey{}, m_pMemory{}, m_pNode(nullptr) {}
inline Node::Node(Zombie, const std::string& key) inline Node::Node(Zombie, const std::string& key)
: m_isValid(false), m_invalidKey(key), m_pMemory{}, m_pNode(NULL) {} : m_isValid(false), m_invalidKey(key), m_pMemory{}, m_pNode(nullptr) {}
inline Node::Node(detail::node& node, detail::shared_memory_holder pMemory) inline Node::Node(detail::node& node, detail::shared_memory_holder pMemory)
: m_isValid(true), m_invalidKey{}, m_pMemory(pMemory), m_pNode(&node) {} : m_isValid(true), m_invalidKey{}, m_pMemory(pMemory), m_pNode(&node) {}

View File

@ -30,7 +30,7 @@ class YAML_CPP_API ostream_wrapper {
const char* str() const { const char* str() const {
if (m_pStream) { if (m_pStream) {
return 0; return nullptr;
} else { } else {
m_buffer[m_pos] = '\0'; m_buffer[m_pos] = '\0';
return &m_buffer[0]; return &m_buffer[0];

View File

@ -51,6 +51,11 @@ add_executable(run-tests
${test_headers} ${test_headers}
) )
set_target_properties(run-tests PROPERTIES
CXX_STANDARD 11
CXX_STANDARD_REQUIRED ON
)
add_dependencies(run-tests googletest_project) add_dependencies(run-tests googletest_project)
set_target_properties(run-tests PROPERTIES set_target_properties(run-tests PROPERTIES

View File

@ -2,13 +2,25 @@ cmake_minimum_required(VERSION 3.5)
add_sources(parse.cpp) add_sources(parse.cpp)
add_executable(parse parse.cpp) add_executable(parse parse.cpp)
set_target_properties(parse PROPERTIES
CXX_STANDARD 11
CXX_STANDARD_REQUIRED ON
)
target_link_libraries(parse yaml-cpp) target_link_libraries(parse yaml-cpp)
add_sources(sandbox.cpp) add_sources(sandbox.cpp)
add_executable(sandbox sandbox.cpp) add_executable(sandbox sandbox.cpp)
set_target_properties(sandbox PROPERTIES
CXX_STANDARD 11
CXX_STANDARD_REQUIRED ON
)
target_link_libraries(sandbox yaml-cpp) target_link_libraries(sandbox yaml-cpp)
add_sources(read.cpp) add_sources(read.cpp)
add_executable(read read.cpp) add_executable(read read.cpp)
set_target_properties(read PROPERTIES
CXX_STANDARD 11
CXX_STANDARD_REQUIRED ON
)
target_link_libraries(read yaml-cpp) target_link_libraries(read yaml-cpp)