Update libebml 1.4.0. I reworked the whole CMake shared,static lib handling. This will send this diff to upstream in a few days.
diff --git a/textproc/libebml/Makefile b/textproc/libebml/Makefile index 1cd6e0c5b33..87bd70c4a0a 100644 --- a/textproc/libebml/Makefile +++ b/textproc/libebml/Makefile @@ -2,12 +2,12 @@ COMMENT= Extensible Binary Meta Language library -DISTNAME= libebml-1.3.7 +DISTNAME= libebml-1.4.0 CATEGORIES= textproc MASTER_SITES= https://dl.matroska.org/downloads/libebml/ EXTRACT_SUFX= .tar.xz -SHARED_LIBS= ebml 3.2 +SHARED_LIBS= ebml 4.0 HOMEPAGE= http://www.matroska.org/ diff --git a/textproc/libebml/distinfo b/textproc/libebml/distinfo index c330edfee0d..1a236814c4c 100644 --- a/textproc/libebml/distinfo +++ b/textproc/libebml/distinfo @@ -1,2 +1,2 @@ -SHA256 (libebml-1.3.7.tar.xz) = 4yRMh/WE1/yMNxiBprewZYPMBB+I4uP66aIV2cpY6fQ= -SIZE (libebml-1.3.7.tar.xz) = 69460 +SHA256 (libebml-1.4.0.tar.xz) = gKvJqCVJYVAYeY7nBJlycKObQ96abn4NI7YvjOaCxLM= +SIZE (libebml-1.4.0.tar.xz) = 69944 diff --git a/textproc/libebml/patches/patch-CMakeLists_txt b/textproc/libebml/patches/patch-CMakeLists_txt index 89be14ded7f..a51c19e8f2e 100644 --- a/textproc/libebml/patches/patch-CMakeLists_txt +++ b/textproc/libebml/patches/patch-CMakeLists_txt @@ -5,16 +5,16 @@ Add options for building and installing shared, static libraries Index: CMakeLists.txt --- CMakeLists.txt.orig +++ CMakeLists.txt -@@ -4,6 +4,8 @@ project(ebml VERSION 1.3.7) - +@@ -5,6 +5,8 @@ project(ebml VERSION 1.4.0) option(DISABLE_PKGCONFIG "Disable PkgConfig module generation" OFF) option(DISABLE_CMAKE_CONFIG "Disable CMake package config module generation" OFF) + option(ENABLE_WIN32_IO "Build the Windows I/O helper class" OFF) +option(DISABLE_SHARED_LIBS "Disable build and install shared libraries" OFF) +option(DISABLE_STATIC_LIBS "Disable build and install static libraries" OFF) include(GNUInstallDirs) -@@ -63,40 +65,54 @@ set(libebml_PUBLIC_HEADERS +@@ -72,50 +74,82 @@ set(libebml_PUBLIC_HEADERS set(libebml_C_PUBLIC_HEADERS ebml/c/libebml_t.h) @@ -25,82 +25,130 @@ Index: CMakeLists.txt - if(HAVE_WINAPIFAMILY_H) - target_compile_definitions(ebml PUBLIC HAVE_WINAPIFAMILY_H) - endif() +-endif() +-set_target_properties(ebml PROPERTIES +- VERSION 5.0.0 +- SOVERSION 5 +- CXX_VISIBILITY_PRESET hidden +- VISIBILITY_INLINES_HIDDEN ON +-) +-target_include_directories(ebml +- PRIVATE +- $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}> +- PUBLIC +- $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> +- $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>) +-if(MSVC) +- target_compile_definitions(ebml PRIVATE _CRT_SECURE_NO_WARNINGS) +-endif() + + include(GenerateExportHeader) +-generate_export_header(ebml EXPORT_MACRO_NAME EBML_DLL_API) +-target_sources(ebml +- PRIVATE +- ${CMAKE_CURRENT_BINARY_DIR}/ebml_export.h +-) +foreach (TYPE IN ITEMS STATIC SHARED) + if (NOT DISABLE_${TYPE}_LIBS) -+ string (TOLOWER "${TYPE}" type) -+ add_library(ebml-${type} ${TYPE} ${libebml_SOURCES} ${libebml_PUBLIC_HEADERS} ${libebml_C_PUBLIC_HEADERS}) -+ set_target_properties(ebml-${type} PROPERTIES -+ VERSION 4.0.0 -+ SOVERSION 4) -+ target_include_directories(ebml-${type} PUBLIC -+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> -+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>) -+ if(MSVC) -+ target_compile_definitions(ebml-${type} PRIVATE _CRT_SECURE_NO_WARNINGS) + +-if(NOT BUILD_SHARED_LIBS) +- target_compile_definitions(ebml PUBLIC EBML_STATIC_DEFINE) ++ set(type_suffix "") ++ if ("${TYPE}" STREQUAL "STATIC") ++ string(TOLOWER "${TYPE}" type) ++ set(type_suffix "-${type}") + endif() ++ ++ add_library(ebml${type_suffix} ${TYPE} ++ ${libebml_SOURCES} ++ ${libebml_PUBLIC_HEADERS} ++ ${libebml_C_PUBLIC_HEADERS}) ++ + if(WIN32) + include(CheckIncludeFile) + check_include_file(winapifamily.h HAVE_WINAPIFAMILY_H) + if(HAVE_WINAPIFAMILY_H) -+ target_compile_definitions(ebml-${type} PUBLIC HAVE_WINAPIFAMILY_H) ++ target_compile_definitions(ebml${type_suffix} PUBLIC HAVE_WINAPIFAMILY_H) + endif() - endif() --set_target_properties(ebml PROPERTIES -- VERSION 4.0.0 -- SOVERSION 4) --target_include_directories(ebml PUBLIC -- $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> -- $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>) --if(MSVC) -- target_compile_definitions(ebml PRIVATE _CRT_SECURE_NO_WARNINGS) --endif() --if(BUILD_SHARED_LIBS) -- set_target_properties(ebml ++ endif() ++ ++ target_include_directories(ebml${type_suffix} ++ PRIVATE ++ $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}> ++ PUBLIC ++ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}> ++ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>) ++ ++ generate_export_header(ebml${type_suffix} EXPORT_MACRO_NAME EBML_DLL_API BASE_NAME ebml) ++ target_sources(ebml${type_suffix} ++ PRIVATE ++ ${CMAKE_CURRENT_BINARY_DIR}/ebml_export.h) ++ ++ if(MSVC) ++ target_compile_definitions(ebml${type_suffix} PRIVATE _CRT_SECURE_NO_WARNINGS) ++ endif() + endif() +endforeach() + +if(NOT DISABLE_SHARED_LIBS) -+ set_target_properties(ebml-shared - PROPERTIES - DEFINE_SYMBOL "EBML_DLL_EXPORT" - C_VISIBILITY_PRESET hidden -- VISIBILITY_INLINES_HIDDEN 1) -- target_compile_definitions(ebml -+ VISIBILITY_INLINES_HIDDEN 1 -+ OUTPUT_NAME ebml) -+ target_compile_definitions(ebml-shared - PUBLIC EBML_DLL - PRIVATE EBML_DLL_EXPORT) -+ install(TARGETS ebml-shared -+ EXPORT EbmlTargets ++ set_target_properties(ebml PROPERTIES ++ VERSION 5.0.0 ++ SOVERSION 5 ++ OUTPUT_NAME ebml ++ DEFINE_SYMBOL "EBML_DLL_EXPORT" ++ VISIBILITY_INLINES_HIDDEN ON ++ C_VISIBILITY_PRESET hidden ++ CXX_VISIBILITY_PRESET hidden) ++ ++ target_compile_definitions(ebml ++ PUBLIC EBML_DLL ++ PRIVATE EBML_DLL_EXPORT) ++ ++ install(TARGETS ebml ++ EXPORT EBMLTargets + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() -install(TARGETS ebml -- EXPORT EbmlTargets +- EXPORT EBMLTargets - RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) +if(NOT DISABLE_STATIC_LIBS) + set_target_properties(ebml-static PROPERTIES OUTPUT_NAME ebml) ++ target_compile_definitions(ebml-static PUBLIC EBML_STATIC_DEFINE) + install(TARGETS ebml-static + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif() -+ install(FILES ${libebml_PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ebml) install(FILES ${libebml_C_PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ebml/c) +-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ebml_export.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ebml) ++if(NOT DISABLE_SHARED_LIBS) ++ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/ebml_export.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ebml) ++endif() -@@ -118,7 +134,9 @@ if(NOT DISABLE_CMAKE_CONFIG) + if(NOT DISABLE_PKGCONFIG) + set(prefix ${CMAKE_INSTALL_PREFIX}) +@@ -126,7 +160,7 @@ if(NOT DISABLE_PKGCONFIG) + if (HAVE_WINAPIFAMILY_H) + set(WINAPIFAMILY_PC -DHAVE_WINAPIFAMILY_H) + endif() +- if(NOT BUILD_SHARED_LIBS) ++ if(NOT DISABLE_STATIC_LIBS) + set(STATIC_DEFINE_CFLAGS -DEBML_STATIC_DEFINE) endif() - include(CMakePackageConfigHelpers) - write_basic_package_version_file(EbmlConfigVersion.cmake COMPATIBILITY SameMajorVersion) + configure_file(libebml.pc.in libebml.pc @ONLY) +@@ -139,7 +173,9 @@ if(NOT DISABLE_CMAKE_CONFIG) + configure_package_config_file(EBMLConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/EBMLConfig.cmake + INSTALL_DESTINATION ${CMAKE_INSTALL_PACKAGEDIR}) + write_basic_package_version_file(EBMLConfigVersion.cmake COMPATIBILITY SameMajorVersion) +if(NOT DISABLE_SHARED_LIBS) - install(EXPORT EbmlTargets DESTINATION ${CMAKE_INSTALL_PACKAGEDIR}) + install(EXPORT EBMLTargets NAMESPACE EBML:: DESTINATION ${CMAKE_INSTALL_PACKAGEDIR}) +endif() install(FILES - ${CMAKE_CURRENT_SOURCE_DIR}/EbmlConfig.cmake - ${CMAKE_CURRENT_BINARY_DIR}/EbmlConfigVersion.cmake + ${CMAKE_CURRENT_BINARY_DIR}/EBMLConfig.cmake + ${CMAKE_CURRENT_BINARY_DIR}/EBMLConfigVersion.cmake diff --git a/textproc/libebml/pkg/PLIST b/textproc/libebml/pkg/PLIST index 621ceb53c5e..c230dc8f8fa 100644 --- a/textproc/libebml/pkg/PLIST +++ b/textproc/libebml/pkg/PLIST @@ -29,12 +29,13 @@ include/ebml/SafeReadIOCallback.h include/ebml/StdIOCallback.h include/ebml/c/ include/ebml/c/libebml_t.h +include/ebml/ebml_export.h lib/cmake/ -lib/cmake/ebml/ -lib/cmake/ebml/EbmlConfig.cmake -lib/cmake/ebml/EbmlConfigVersion.cmake -lib/cmake/ebml/EbmlTargets${MODCMAKE_BUILD_SUFFIX} -lib/cmake/ebml/EbmlTargets.cmake -lib/libebml.a +lib/cmake/EBML/ +lib/cmake/EBML/EBMLConfig.cmake +lib/cmake/EBML/EBMLConfigVersion.cmake +lib/cmake/EBML/EBMLTargets${MODCMAKE_BUILD_SUFFIX} +lib/cmake/EBML/EBMLTargets.cmake +@static-lib lib/libebml.a @lib lib/libebml.so.${LIBebml_VERSION} lib/pkgconfig/libebml.pc