aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Karatarakis <alex@karatarakis.com>2018-02-20 16:11:10 -0800
committerGitHub <noreply@github.com>2018-02-20 16:11:10 -0800
commit3daa3e8f303eaa89ff3bce90a1faa4752c3474fe (patch)
treedbe59684ba68fa1f4730418111cecfc1a16a13ad
parent4bf37bb3b3a190451370ec2610de8c36ecf5a874 (diff)
parent773622e8c2716c4a89cbfbf392ce72ff87e88e92 (diff)
downloadvcpkg-3daa3e8f303eaa89ff3bce90a1faa4752c3474fe.tar.gz
vcpkg-3daa3e8f303eaa89ff3bce90a1faa4752c3474fe.zip
Merge pull request #2832 from evpobr/port/matroska
[matroska] Initial port
-rw-r--r--ports/matroska/CMakeLists.txt110
-rw-r--r--ports/matroska/CONTROL4
-rw-r--r--ports/matroska/MatroskaConfig.cmake1
-rw-r--r--ports/matroska/portfile.cmake45
4 files changed, 160 insertions, 0 deletions
diff --git a/ports/matroska/CMakeLists.txt b/ports/matroska/CMakeLists.txt
new file mode 100644
index 000000000..58308866c
--- /dev/null
+++ b/ports/matroska/CMakeLists.txt
@@ -0,0 +1,110 @@
+cmake_minimum_required(VERSION 3.1.2)
+
+project(matroska VERSION 1.4.8)
+
+option(DISABLE_PKGCONFIG "Disable PkgConfig module generation" OFF)
+option(DISABLE_CMAKE_CONFIG "Disable CMake package config module generation" OFF)
+
+find_package(ebml 1.3.5 REQUIRED)
+
+include(GNUInstallDirs)
+
+set(libmatroska_SOURCES
+ src/FileKax.cpp
+ src/KaxAttached.cpp
+ src/KaxAttachments.cpp
+ src/KaxBlock.cpp
+ src/KaxBlockData.cpp
+ src/KaxCluster.cpp
+ src/KaxContexts.cpp
+ src/KaxCues.cpp
+ src/KaxCuesData.cpp
+ src/KaxInfoData.cpp
+ src/KaxSeekHead.cpp
+ src/KaxSegment.cpp
+ src/KaxSemantic.cpp
+ src/KaxTracks.cpp
+ src/KaxVersion.cpp)
+
+set(libmatroska_PUBLIC_HEADERS
+ matroska/FileKax.h
+ matroska/KaxAttached.h
+ matroska/KaxAttachments.h
+ matroska/KaxBlockData.h
+ matroska/KaxBlock.h
+ matroska/KaxChapters.h
+ matroska/KaxClusterData.h
+ matroska/KaxCluster.h
+ matroska/KaxConfig.h
+ matroska/KaxContentEncoding.h
+ matroska/KaxContexts.h
+ matroska/KaxCuesData.h
+ matroska/KaxCues.h
+ matroska/KaxDefines.h
+ matroska/KaxInfoData.h
+ matroska/KaxInfo.h
+ matroska/KaxSeekHead.h
+ matroska/KaxSegment.h
+ matroska/KaxSemantic.h
+ matroska/KaxTag.h
+ matroska/KaxTags.h
+ matroska/KaxTrackAudio.h
+ matroska/KaxTrackEntryData.h
+ matroska/KaxTracks.h
+ matroska/KaxTrackVideo.h
+ matroska/KaxTypes.h
+ matroska/KaxVersion.h)
+
+set (libmatroska_C_PUBLIC_HEADERS
+ matroska/c/libmatroska.h
+ matroska/c/libmatroska_t.h)
+
+add_library(matroska ${libmatroska_SOURCES} ${limatroska_PUBLIC_HEADERS} ${libmatroska_C_PUBLIC_HEADERS})
+target_link_libraries(matroska PUBLIC ebml)
+set_target_properties(matroska PROPERTIES
+ VERSION 6.0.0
+ SOVERSION 6)
+target_include_directories(matroska PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
+ $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
+if(MSVC)
+ target_compile_definitions(matroska PRIVATE _CRT_SECURE_NO_WARNINGS)
+endif()
+if(BUILD_SHARED_LIBS)
+ target_compile_definitions(matroska PUBLIC MATROSKA_DLL)
+ set_target_properties(matroska PROPERTIES DEFINE_SYMBOL "MATROSKA_DLL_EXPORT")
+endif()
+
+install(TARGETS matroska
+ EXPORT MatroskaTargets
+ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
+
+install(FILES ${libmatroska_PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/matroska)
+install(FILES ${libmatroska_C_PUBLIC_HEADERS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/matroska/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(libmatroska.pc.in libmatroska.pc @ONLY)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libmatroska.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
+endif()
+
+if(NOT DISABLE_CMAKE_CONFIG)
+ if(WIN32)
+ set(CMAKE_INSTALL_PACKAGEDIR cmake)
+ elseif(WIN32)
+ set(CMAKE_INSTALL_PACKAGEDIR ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
+ endif()
+ include(CMakePackageConfigHelpers)
+ write_basic_package_version_file(MatroskaConfigVersion.cmake COMPATIBILITY SameMajorVersion)
+ install(EXPORT MatroskaTargets DESTINATION ${CMAKE_INSTALL_PACKAGEDIR})
+ install(FILES
+ ${CMAKE_CURRENT_SOURCE_DIR}/MatroskaConfig.cmake
+ ${CMAKE_CURRENT_BINARY_DIR}/MatroskaConfigVersion.cmake
+ DESTINATION ${CMAKE_INSTALL_PACKAGEDIR})
+endif()
diff --git a/ports/matroska/CONTROL b/ports/matroska/CONTROL
new file mode 100644
index 000000000..cd688d697
--- /dev/null
+++ b/ports/matroska/CONTROL
@@ -0,0 +1,4 @@
+Source: matroska
+Version: 1.4.8
+Description: a C++ libary to parse Matroska files (.mkv and .mka)
+Build-Depends: ebml
diff --git a/ports/matroska/MatroskaConfig.cmake b/ports/matroska/MatroskaConfig.cmake
new file mode 100644
index 000000000..e9a88bd49
--- /dev/null
+++ b/ports/matroska/MatroskaConfig.cmake
@@ -0,0 +1 @@
+include(${CMAKE_CURRENT_LIST_DIR}/MatroskaTargets.cmake)
diff --git a/ports/matroska/portfile.cmake b/ports/matroska/portfile.cmake
new file mode 100644
index 000000000..fd3624584
--- /dev/null
+++ b/ports/matroska/portfile.cmake
@@ -0,0 +1,45 @@
+# 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/libmatroska
+ REF release-1.4.8
+ SHA512 3591508674ff69a185d143b4ce5c34a4c9913ad806ad94c6a96b694752f3e67b029037573564ab3bf5d9303a4b6c5fdd55865f140ab0d26df53b051b71957d0a
+ HEAD_REF master
+)
+
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/CMakeLists.txt DESTINATION ${SOURCE_PATH})
+file(COPY ${CMAKE_CURRENT_LIST_DIR}/MatroskaConfig.cmake DESTINATION ${SOURCE_PATH})
+
+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/matroska RENAME copyright)