diff --git a/README.md b/README.md index 6714dfe..20c9b59 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ Home: https://github.com/jbeder/yaml-cpp Package license: MIT -Feedstock license: [BSD-3-Clause](https://github.com/conda-forge/yaml-cpp-feedstock/blob/master/LICENSE.txt) +Feedstock license: [BSD-3-Clause](https://github.com/conda-forge/yaml-cpp-feedstock/blob/main/LICENSE.txt) Summary: yaml-cpp is a YAML parser and emitter in C++ matching the YAML 1.2 spec. @@ -21,7 +21,7 @@ Current build status Travis - linux + linux @@ -31,8 +31,8 @@ Current build status
- - + + @@ -40,43 +40,43 @@ Current build status diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 096f549..77660a2 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -7,9 +7,11 @@ package: source: url: https://github.com/jbeder/yaml-cpp/archive/yaml-cpp-{{ version }}.tar.gz sha256: 43e6a9fcb146ad871515f0d0873947e5d497a1c9c60c58cb102a97b47208b7c3 + patches: + - pr_1064.patch build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('yaml-cpp', max_pin='x.x') }} diff --git a/recipe/pr_1064.patch b/recipe/pr_1064.patch new file mode 100644 index 0000000..f86d187 --- /dev/null +++ b/recipe/pr_1064.patch @@ -0,0 +1,112 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b230b9e..f65efef 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -31,11 +31,13 @@ cmake_dependent_option(YAML_MSVC_SHARED_RT + "MSVC: Build yaml-cpp with shared runtime libs (/MD)" ON + "MSVC" OFF) + +-set(yaml-cpp-type STATIC) +-set(yaml-cpp-label-postfix "static") + if (YAML_BUILD_SHARED_LIBS) + set(yaml-cpp-type SHARED) + set(yaml-cpp-label-postfix "shared") ++else() ++ set(yaml-cpp-type STATIC) ++ set(yaml-cpp-label-postfix "static") ++ add_definitions(-DYAML_CPP_STATIC_DEFINE) + endif() + + set(build-shared $) +diff --git a/include/yaml-cpp/dll.h b/include/yaml-cpp/dll.h +index a32c06b..eabdda1 100644 +--- a/include/yaml-cpp/dll.h ++++ b/include/yaml-cpp/dll.h +@@ -1,33 +1,61 @@ + #ifndef DLL_H_62B23520_7C8E_11DE_8A39_0800200C9A66 + #define DLL_H_62B23520_7C8E_11DE_8A39_0800200C9A66 + +-#if defined(_MSC_VER) || \ +- (defined(__GNUC__) && (__GNUC__ == 3 && __GNUC_MINOR__ >= 4) || \ +- (__GNUC__ >= 4)) // GCC supports "pragma once" correctly since 3.4 +-#pragma once ++// Definition YAML_CPP_STATIC_DEFINE using to building YAML-CPP as static ++// library (definition created by CMake or defined manually) ++ ++// Definition yaml_cpp_EXPORTS using to building YAML-CPP as dll/so library ++// (definition created by CMake or defined manually) ++ ++#ifdef YAML_CPP_STATIC_DEFINE ++# define YAML_CPP_API ++# define YAML_CPP_NO_EXPORT ++#else ++# if defined(_MSC_VER) || defined(__MINGW32__) || defined(__MINGW64__) ++# ifndef YAML_CPP_API ++# ifdef yaml_cpp_EXPORTS ++ /* We are building this library */ ++# pragma message( "Defining YAML_CPP_API for DLL export" ) ++# define YAML_CPP_API __declspec(dllexport) ++# else ++ /* We are using this library */ ++# pragma message( "Defining YAML_CPP_API for DLL import" ) ++# define YAML_CPP_API __declspec(dllimport) ++# endif ++# endif ++# ifndef YAML_CPP_NO_EXPORT ++# define YAML_CPP_NO_EXPORT ++# endif ++# else /* No _MSC_VER */ ++# ifndef YAML_CPP_API ++# ifdef yaml_cpp_EXPORTS ++ /* We are building this library */ ++# define YAML_CPP_API __attribute__((visibility("default"))) ++# else ++ /* We are using this library */ ++# define YAML_CPP_API __attribute__((visibility("default"))) ++# endif ++# endif ++# ifndef YAML_CPP_NO_EXPORT ++# define YAML_CPP_NO_EXPORT __attribute__((visibility("hidden"))) ++# endif ++# endif /* _MSC_VER */ ++#endif /* YAML_CPP_STATIC_DEFINE */ ++ ++#ifndef YAML_CPP_DEPRECATED ++# ifdef _MSC_VER ++# define YAML_CPP_DEPRECATED __declspec(deprecated) ++# else ++# define YAML_CPP_DEPRECATED __attribute__ ((__deprecated__)) ++# endif + #endif + +-// The following ifdef block is the standard way of creating macros which make +-// exporting from a DLL simpler. All files within this DLL are compiled with the +-// yaml_cpp_EXPORTS symbol defined on the command line. This symbol should not +-// be defined on any project that uses this DLL. This way any other project +-// whose source files include this file see YAML_CPP_API functions as being +-// imported from a DLL, whereas this DLL sees symbols defined with this macro as +-// being exported. +-#undef YAML_CPP_API ++#ifndef YAML_CPP_DEPRECATED_EXPORT ++# define YAML_CPP_DEPRECATED_EXPORT YAML_CPP_API YAML_CPP_DEPRECATED ++#endif + +-#ifdef YAML_CPP_DLL // Using or Building YAML-CPP DLL (definition defined +- // manually) +-#ifdef yaml_cpp_EXPORTS // Building YAML-CPP DLL (definition created by CMake +- // or defined manually) +-// #pragma message( "Defining YAML_CPP_API for DLL export" ) +-#define YAML_CPP_API __declspec(dllexport) +-#else // yaml_cpp_EXPORTS +-// #pragma message( "Defining YAML_CPP_API for DLL import" ) +-#define YAML_CPP_API __declspec(dllimport) +-#endif // yaml_cpp_EXPORTS +-#else // YAML_CPP_DLL +-#define YAML_CPP_API +-#endif // YAML_CPP_DLL ++#ifndef YAML_CPP_DEPRECATED_NO_EXPORT ++# define YAML_CPP_DEPRECATED_NO_EXPORT YAML_CPP_NO_EXPORT YAML_CPP_DEPRECATED ++#endif + +-#endif // DLL_H_62B23520_7C8E_11DE_8A39_0800200C9A66 ++#endif /* DLL_H_62B23520_7C8E_11DE_8A39_0800200C9A66 */
linux_64 - - variant + + variant
linux_aarch64 - - variant + + variant
linux_ppc64le - - variant + + variant
osx_64 - - variant + + variant
osx_arm64 - - variant + + variant
win_64 - - variant + + variant