Edit

IABSD.fr/ports/textproc/libebml/patches

Branch :

  • Show log

    Commit

  • Author : rsadowski
    Date : 2022-10-14 06:40:24
    Hash : 06ffab7b
    Message : Update libebml to 1.4.4 From Brad

  • patch-CMakeLists_txt
  • Add options for building and installing shared, static libraries
    
    Index: CMakeLists.txt
    --- CMakeLists.txt.orig
    +++ CMakeLists.txt
    @@ -5,6 +5,8 @@ project(ebml VERSION 1.4.3)
     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)
     
    @@ -72,50 +74,82 @@ set(libebml_PUBLIC_HEADERS
     
     set(libebml_C_PUBLIC_HEADERS ebml/c/libebml_t.h)
     
    -add_library(ebml ${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 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)
     
    -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_suffix} PUBLIC HAVE_WINAPIFAMILY_H)
    +      endif()
    +    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 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
    -  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()
     
     if(NOT DISABLE_PKGCONFIG)
       set(prefix ${CMAKE_INSTALL_PREFIX})
    @@ -134,7 +168,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()
       configure_file(libebml.pc.in libebml.pc @ONLY)
    @@ -147,7 +181,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 NAMESPACE EBML:: DESTINATION ${CMAKE_INSTALL_PACKAGEDIR})
    +endif()
       install(FILES
         ${CMAKE_CURRENT_BINARY_DIR}/EBMLConfig.cmake
         ${CMAKE_CURRENT_BINARY_DIR}/EBMLConfigVersion.cmake