mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-29 20:23:41 +08:00
109 lines
4.4 KiB
Diff
109 lines
4.4 KiB
Diff
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
index e4f3119..5cfa601 100644
|
|
--- a/CMakeLists.txt
|
|
+++ b/CMakeLists.txt
|
|
@@ -244,34 +244,49 @@ else(USE_EXTERNAL_TINYXML)
|
|
endif()
|
|
set_target_properties(TINYXML_LIB PROPERTIES FOLDER External)
|
|
endif(USE_EXTERNAL_TINYXML)
|
|
-
|
|
+
|
|
###############################################################################
|
|
### YAML ###
|
|
|
|
if(USE_EXTERNAL_YAML)
|
|
- # Set minimum yaml version for non-patched sources.
|
|
- set(YAML_VERSION_MIN "0.3.0")
|
|
- include(FindPkgConfig)
|
|
- pkg_check_modules(PC_YAML_CPP REQUIRED QUIET yaml-cpp)
|
|
- find_path(YAML_CPP_INCLUDE_DIR yaml-cpp/yaml.h
|
|
- HINTS ${PC_YAML_CPP_INCLUDEDIR} ${PC_YAML_CPP_INCLUDE_DIRS} )
|
|
- find_library(YAML_CPP_LIBRARY LIBRARY_NAMES yaml-cpp libyaml-cpp
|
|
- HINTS ${PC_YAML_CPP_LIBRARY_DIRS} )
|
|
- set(YAML_CPP_LIBRARIES ${YAML_CPP_LIBRARY})
|
|
- set(YAML_CPP_INCLUDE_DIRS ${YAML_CPP_INCLUDE_DIR})
|
|
- set(YAML_CPP_VERSION ${PC_YAML_CPP_VERSION})
|
|
-
|
|
- if(YAML_CPP_VERSION VERSION_LESS ${YAML_VERSION_MIN})
|
|
- message(FATAL_ERROR "ERROR: yaml-cpp ${YAML_VERSION_MIN} or greater is required.")
|
|
- endif()
|
|
+ find_package(yaml-cpp 0.3.0)
|
|
+ if(yaml-cpp_FOUND)
|
|
+ include(FindPackageMessage)
|
|
+
|
|
+ set(YAML_CPP_FOUND ${yaml-cpp_FOUND})
|
|
+ set(YAML_CPP_INCLUDE_DIRS ${YAML_CPP_INCLUDE_DIR})
|
|
+ set(YAML_CPP_VERSION ${yaml-cpp_VERSION})
|
|
+ set(YAML_CPP_LIBRARIES yaml-cpp)
|
|
+
|
|
+ find_package_message(yaml-cpp
|
|
+ "Found yaml ${YAML_CPP_VERSION}: ${YAML_CPP_INCLUDE_DIRS}"
|
|
+ "${YAML_CPP_INCLUDE_DIRS}:${YAML_CPP_LIBRARIES}"
|
|
+ )
|
|
+ else()
|
|
+ # Set minimum yaml version for non-patched sources.
|
|
+ set(YAML_VERSION_MIN "0.3.0")
|
|
+ include(FindPkgConfig)
|
|
+ pkg_check_modules(PC_YAML_CPP REQUIRED QUIET yaml-cpp)
|
|
+ find_path(YAML_CPP_INCLUDE_DIR yaml-cpp/yaml.h
|
|
+ HINTS ${PC_YAML_CPP_INCLUDEDIR} ${PC_YAML_CPP_INCLUDE_DIRS} )
|
|
+ find_library(YAML_CPP_LIBRARY LIBRARY_NAMES yaml-cpp libyaml-cpp
|
|
+ HINTS ${PC_YAML_CPP_LIBRARY_DIRS} )
|
|
+ set(YAML_CPP_LIBRARIES ${YAML_CPP_LIBRARY})
|
|
+ set(YAML_CPP_INCLUDE_DIRS ${YAML_CPP_INCLUDE_DIR})
|
|
+ set(YAML_CPP_VERSION ${PC_YAML_CPP_VERSION})
|
|
+
|
|
+ if(YAML_CPP_VERSION VERSION_LESS ${YAML_VERSION_MIN})
|
|
+ message(FATAL_ERROR "ERROR: yaml-cpp ${YAML_VERSION_MIN} or greater is required.")
|
|
+ endif()
|
|
|
|
- find_package_handle_standard_args(yaml-cpp
|
|
- REQUIRED_VARS YAML_CPP_LIBRARIES YAML_CPP_INCLUDE_DIRS )
|
|
- set(YAML_CPP_FOUND ${YAML-CPP_FOUND})
|
|
- mark_as_advanced(YAML_CPP_INCLUDE_DIR YAML_CPP_LIBRARY YAML-CPP_FOUND)
|
|
+ find_package_handle_standard_args(yaml-cpp
|
|
+ REQUIRED_VARS YAML_CPP_LIBRARIES YAML_CPP_INCLUDE_DIRS )
|
|
+ set(YAML_CPP_FOUND ${YAML-CPP_FOUND})
|
|
+ mark_as_advanced(YAML_CPP_INCLUDE_DIR YAML_CPP_LIBRARY YAML-CPP_FOUND)
|
|
+ endif()
|
|
|
|
if(YAML_CPP_FOUND)
|
|
- if(YAML_CPP_VERSION VERSION_GREATER "0.5.0")
|
|
+ if(YAML_CPP_VERSION VERSION_GREATER "0.5.0" AND YAML_CPP_VERSION VERSION_LESS "0.6.0")
|
|
# Need to also get the boost headers here, as yaml-cpp 0.5.0+ requires them.
|
|
# Don't bother doing this step if we are already including the boost headers for shared_ptr
|
|
if(NOT OCIO_USE_BOOST_PTR)
|
|
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
|
|
index 4b931ef..12a1dbf 100644
|
|
--- a/src/core/CMakeLists.txt
|
|
+++ b/src/core/CMakeLists.txt
|
|
@@ -77,7 +77,14 @@ endif()
|
|
if(OCIO_BUILD_STATIC)
|
|
list(REMOVE_ITEM core_src_files ${CMAKE_SOURCE_DIR}/src/core/UnitTest.cpp)
|
|
add_library(OpenColorIO_STATIC STATIC ${EXTERNAL_OBJECTS} ${core_src_files})
|
|
- add_dependencies(OpenColorIO_STATIC TINYXML_LIB YAML_CPP_LIB)
|
|
+ add_dependencies(OpenColorIO_STATIC TINYXML_LIB)
|
|
+
|
|
+ if(USE_EXTERNAL_YAML)
|
|
+ target_link_libraries(OpenColorIO_STATIC ${YAML_CPP_LIBRARIES})
|
|
+ else(USE_EXTERNAL_YAML)
|
|
+ add_dependencies(OpenColorIO_STATIC YAML_CPP_LIB)
|
|
+ endif()
|
|
+
|
|
if(EXTERNAL_LIBRARIES)
|
|
target_link_libraries(OpenColorIO_STATIC ${EXTERNAL_LIBRARIES})
|
|
endif()
|
|
diff --git a/src/core/OCIOYaml.cpp b/src/core/OCIOYaml.cpp
|
|
index aeee4d1..f1c662d 100644
|
|
--- a/src/core/OCIOYaml.cpp
|
|
+++ b/src/core/OCIOYaml.cpp
|
|
@@ -69,7 +69,7 @@ namespace YAML {
|
|
|
|
#ifdef WIN32
|
|
#pragma warning( push )
|
|
-#pragma warning( disable: 4146 )
|
|
+#pragma warning( disable: 4146 4251 )
|
|
#endif
|
|
|
|
#include <yaml-cpp/yaml.h>
|