aboutsummaryrefslogtreecommitdiff
path: root/ports/ebml
diff options
context:
space:
mode:
authorAlexander Saprykin <xelfium@gmail.com>2018-05-26 13:27:14 +0200
committerGitHub <noreply@github.com>2018-05-26 13:27:14 +0200
commit4ce5f064282c3a8d8d710aa82af7aa346b0c6dd5 (patch)
treed95c9490352eb73f078d34a33bc4bb44ac9fa48b /ports/ebml
parentfb689bd13dd6ba563a885d71fff1dd2b32a615db (diff)
parent2ac7527b40b1dbeb7856b9f763362c1e139e2ca9 (diff)
downloadvcpkg-4ce5f064282c3a8d8d710aa82af7aa346b0c6dd5.tar.gz
vcpkg-4ce5f064282c3a8d8d710aa82af7aa346b0c6dd5.zip
Merge pull request #1 from Microsoft/master
Update vcpkg from upstream
Diffstat (limited to 'ports/ebml')
-rw-r--r--ports/ebml/CMakeLists.txt132
-rw-r--r--ports/ebml/CONTROL3
-rw-r--r--ports/ebml/EbmlConfig.cmake1
-rw-r--r--ports/ebml/export-endofstreamx.patch25
-rw-r--r--ports/ebml/portfile.cmake52
5 files changed, 213 insertions, 0 deletions
diff --git a/ports/ebml/CMakeLists.txt b/ports/ebml/CMakeLists.txt
new file mode 100644
index 000000000..7d99a13a4
--- /dev/null
+++ b/ports/ebml/CMakeLists.txt
@@ -0,0 +1,132 @@
+cmake_minimum_required(VERSION 3.1.2)
+
+project(ebml VERSION 1.3.5)
+
+option(DISABLE_PKGCONFIG "Disable PkgConfig module generation" OFF)
+option(DISABLE_CMAKE_CONFIG "Disable CMake package config module generation" OFF)
+
+include(GNUInstallDirs)
+
+set(libebml_SOURCES
+ src/Debug.cpp
+ src/EbmlBinary.cpp
+ src/EbmlContexts.cpp
+ src/EbmlCrc32.cpp
+ src/EbmlDate.cpp
+ src/EbmlDummy.cpp
+ src/EbmlElement.cpp
+ src/EbmlFloat.cpp
+ src/EbmlHead.cpp
+ src/EbmlMaster.cpp
+ src/EbmlSInteger.cpp
+ src/EbmlStream.cpp
+ src/EbmlString.cpp
+ src/EbmlSubHead.cpp
+ src/EbmlUInteger.cpp
+ src/EbmlUnicodeString.cpp
+ src/EbmlVersion.cpp
+ src/EbmlVoid.cpp
+ src/IOCallback.cpp
+ src/MemIOCallback.cpp
+ src/MemReadIOCallback.cpp
+ src/SafeReadIOCallback.cpp
+ src/StdIOCallback.cpp)
+
+set(libebml_PUBLIC_HEADERS
+ ebml/Debug.h
+ ebml/EbmlBinary.h
+ ebml/EbmlConfig.h
+ ebml/EbmlContexts.h
+ ebml/EbmlCrc32.h
+ ebml/EbmlDate.h
+ ebml/EbmlDummy.h
+ ebml/EbmlElement.h
+ ebml/EbmlEndian.h
+ ebml/EbmlFloat.h
+ ebml/EbmlHead.h
+ ebml/EbmlId.h
+ ebml/EbmlMaster.h
+ ebml/EbmlSInteger.h
+ ebml/EbmlStream.h
+ ebml/EbmlString.h
+ ebml/EbmlSubHead.h
+ ebml/EbmlTypes.h
+ ebml/EbmlUInteger.h
+ ebml/EbmlUnicodeString.h
+ ebml/EbmlVersion.h
+ ebml/EbmlVoid.h
+ ebml/IOCallback.h
+ ebml/MemIOCallback.h
+ ebml/MemReadIOCallback.h
+ ebml/SafeReadIOCallback.h
+ ebml/StdIOCallback.h)
+if(WIN32)
+ list(APPEND libebml_SOURCES
+ src/platform/win32/WinIOCallback.cpp)
+ list(APPEND libebml_PUBLIC_HEADERS
+ src/platform/win32/WinIOCallback.h)
+endif()
+
+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 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
+ PROPERTIES
+ DEFINE_SYMBOL "EBML_DLL_EXPORT"
+ C_VISIBILITY_PRESET hidden
+ VISIBILITY_INLINES_HIDDEN 1)
+ target_compile_definitions(ebml
+ PUBLIC EBML_DLL
+ PRIVATE EBML_DLL_EXPORT)
+endif()
+
+install(TARGETS ebml
+ EXPORT EbmlTargets
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+
+install(FILES ${libebml_PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ebml)
+install(FILES ${libebml_C_PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ebml/c)
+
+if(NOT DISABLE_PKGCONFIG)
+ set(prefix ${CMAKE_INSTALL_PREFIX})
+ set(exec_prefix "\$\{prefix\}")
+ set(libdir "\$\{prefix\}/${CMAKE_INSTALL_LIBDIR}")
+ set(includedir "\$\{prefix\}/${CMAKE_INSTALL_INCLUDEDIR}")
+ set(PACKAGE_VERSION ${PROJECT_VERSION})
+ configure_file(libebml.pc.in libebml.pc @ONLY)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libebml.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+endif()
+
+if(NOT DISABLE_CMAKE_CONFIG)
+ if(WIN32)
+ set(CMAKE_INSTALL_PACKAGEDIR cmake)
+ else()
+ set(CMAKE_INSTALL_PACKAGEDIR ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
+ endif()
+ include(CMakePackageConfigHelpers)
+ write_basic_package_version_file(EbmlConfigVersion.cmake COMPATIBILITY SameMajorVersion)
+ install(EXPORT EbmlTargets DESTINATION ${CMAKE_INSTALL_PACKAGEDIR})
+ install(FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/EbmlConfig.cmake
+ ${CMAKE_CURRENT_BINARY_DIR}/EbmlConfigVersion.cmake
+ DESTINATION ${CMAKE_INSTALL_PACKAGEDIR})
+endif()
diff --git a/ports/ebml/CONTROL b/ports/ebml/CONTROL
new file mode 100644
index 000000000..e4872dd6a
--- /dev/null
+++ b/ports/ebml/CONTROL
@@ -0,0 +1,3 @@
+Source: ebml
+Version: 1.3.5-1
+Description: a C++ libary to parse EBML files
diff --git a/ports/ebml/EbmlConfig.cmake b/ports/ebml/EbmlConfig.cmake
new file mode 100644
index 000000000..5752fa632
--- /dev/null
+++ b/ports/ebml/EbmlConfig.cmake
@@ -0,0 +1 @@
+include(${CMAKE_CURRENT_LIST_DIR}/EbmlTargets.cmake)
diff --git a/ports/ebml/export-endofstreamx.patch b/ports/ebml/export-endofstreamx.patch
new file mode 100644
index 000000000..f89035230
--- /dev/null
+++ b/ports/ebml/export-endofstreamx.patch
@@ -0,0 +1,25 @@
+From d880a71996ba50c18d2e2d33ce4018b22566d9f4 Mon Sep 17 00:00:00 2001
+From: evpobr <evpobr@gmail.com>
+Date: Sat, 17 Feb 2018 12:39:27 +0500
+Subject: [PATCH] Export SafeReadIOCallback::EndOfStreamX class from DLL
+
+---
+ ebml/SafeReadIOCallback.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/ebml/SafeReadIOCallback.h b/ebml/SafeReadIOCallback.h
+index ea96727..3d9de07 100644
+--- a/ebml/SafeReadIOCallback.h
++++ b/ebml/SafeReadIOCallback.h
+@@ -45,7 +45,7 @@ class EBML_DLL_API EbmlBinary;
+
+ class EBML_DLL_API SafeReadIOCallback {
+ public:
+- class EndOfStreamX {
++ class EBML_DLL_API EndOfStreamX {
+ public:
+ size_t mMissingBytes;
+ EndOfStreamX(std::size_t MissingBytes);
+--
+2.15.1.windows.2
+
diff --git a/ports/ebml/portfile.cmake b/ports/ebml/portfile.cmake
new file mode 100644
index 000000000..4b92f37bb
--- /dev/null
+++ b/ports/ebml/portfile.cmake
@@ -0,0 +1,52 @@
+# Common Ambient Variables:
+# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT}
+# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET}
+# CURRENT_PORT_DIR = ${VCPKG_ROOT_DIR}\ports\${PORT}
+# PORT = current port name (zlib, etc)
+# TARGET_TRIPLET = current triplet (x86-windows, x64-windows-static, etc)
+# VCPKG_CRT_LINKAGE = C runtime linkage type (static, dynamic)
+# VCPKG_LIBRARY_LINKAGE = target library linkage type (static, dynamic)
+# VCPKG_ROOT_DIR = <C:\path\to\current\vcpkg>
+# VCPKG_TARGET_ARCHITECTURE = target architecture (x64, x86, arm)
+#
+
+include(vcpkg_common_functions)
+
+if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
+ message(FATAL_ERROR "${PORT} does not currently support UWP")
+endif()
+
+
+vcpkg_from_github(
+ OUT_SOURCE_PATH SOURCE_PATH
+ REPO Matroska-Org/libebml
+ REF release-1.3.5
+ SHA512 ccfa58aebb8685b2dbbab7038ab7f7e0788dba2fc391abafad5a0e05c71c8f02c7e1e3521e1c59076057f9643737c2d96a4fffdeb7991214234f2db80c78254b
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/EbmlConfig.cmake DESTINATION ${SOURCE_PATH})
+
+vcpkg_apply_patches(
+ SOURCE_PATH ${SOURCE_PATH}
+ PATCHES
+ ${CMAKE_CURRENT_LIST_DIR}/export-endofstreamx.patch
+)
+
+vcpkg_configure_cmake(
+ SOURCE_PATH ${SOURCE_PATH}
+ PREFER_NINJA # Disable this option if project cannot be built with Ninja
+ OPTIONS -DDISABLE_PKGCONFIG=1
+ # OPTIONS_RELEASE -DOPTIMIZE=1
+ # OPTIONS_DEBUG -DDEBUGGABLE=1
+)
+
+vcpkg_install_cmake()
+
+vcpkg_fixup_cmake_targets(CONFIG_PATH cmake)
+
+file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include)
+
+# Handle copyright
+file(INSTALL ${SOURCE_PATH}/LICENSE.LGPL DESTINATION ${CURRENT_PACKAGES_DIR}/share/ebml RENAME copyright)