vcpkg/ports/opencolorio/0004-yaml-dependency-search.patch
2019-09-16 09:08:41 -07:00

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>