Skip to content

Instantly share code, notes, and snippets.

@dpogue
Created December 26, 2021 22:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dpogue/d3b65cc58dc8ea7869892f61a98eee9a to your computer and use it in GitHub Desktop.
Save dpogue/d3b65cc58dc8ea7869892f61a98eee9a to your computer and use it in GitHub Desktop.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a83d23b..0f5ede3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -8,6 +8,8 @@
cmake_minimum_required(VERSION 3.2)
project(LIBWEBM CXX)
+set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+
include(GNUInstallDirs)
include("${CMAKE_CURRENT_SOURCE_DIR}/build/cxx_flags.cmake")
@@ -330,6 +332,50 @@ add_library(webm ${libwebm_common_sources}
$<TARGET_OBJECTS:mkvmuxer>
$<TARGET_OBJECTS:mkvparser>)
+install(
+ TARGETS webm
+ RUNTIME DESTINATION bin
+ ARCHIVE DESTINATION lib
+ LIBRARY DESTINATION lib
+)
+
+install(
+ FILES
+ mkvmuxer.hpp
+ mkvmuxertypes.hpp
+ mkvmuxerutil.hpp
+ mkvparser.hpp
+ mkvreader.hpp
+ mkvwriter.hpp
+ webmids.hpp
+ DESTINATION
+ ${CMAKE_INSTALL_INCLUDEDIR}
+)
+
+install(
+ DIRECTORY mkvmuxer/
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/mkvmuxer
+ FILES_MATCHING PATTERN "*.h"
+)
+
+install(
+ DIRECTORY mkvparser/
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/mkvparser
+ FILES_MATCHING PATTERN "*.h"
+)
+
+install(
+ DIRECTORY webvtt/
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/webvtt
+ FILES_MATCHING PATTERN "*.h"
+)
+
+install(
+ DIRECTORY common/
+ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/common
+ FILES_MATCHING PATTERN "*.h"
+)
+
if (WIN32)
# Use libwebm and libwebm.lib for project and library name on Windows (instead
# webm and webm.lib).
@@ -337,18 +363,22 @@ if (WIN32)
set_target_properties(webm PROPERTIES PREFIX lib)
endif ()
-add_executable(mkvparser_sample ${mkvparser_sample_sources})
-target_link_libraries(mkvparser_sample LINK_PUBLIC webm)
+if (ENABLE_SAMPLES)
+ add_executable(mkvparser_sample ${mkvparser_sample_sources})
+ target_link_libraries(mkvparser_sample LINK_PUBLIC webm)
-add_executable(mkvmuxer_sample ${mkvmuxer_sample_sources}
- $<TARGET_OBJECTS:webvtt_common>)
-target_link_libraries(mkvmuxer_sample LINK_PUBLIC webm)
+ add_executable(mkvmuxer_sample ${mkvmuxer_sample_sources}
+ $<TARGET_OBJECTS:webvtt_common>)
+ target_link_libraries(mkvmuxer_sample LINK_PUBLIC webm)
+endif()
-add_executable(dumpvtt ${dumpvtt_sources} $<TARGET_OBJECTS:webvtt_common>)
-target_link_libraries(dumpvtt LINK_PUBLIC webm)
+if (ENABLE_TOOLS)
+ add_executable(dumpvtt ${dumpvtt_sources} $<TARGET_OBJECTS:webvtt_common>)
+ target_link_libraries(dumpvtt LINK_PUBLIC webm)
-add_executable(vttdemux ${vttdemux_sources})
-target_link_libraries(vttdemux LINK_PUBLIC webm)
+ add_executable(vttdemux ${vttdemux_sources})
+ target_link_libraries(vttdemux LINK_PUBLIC webm)
+endif()
if (ENABLE_WEBMINFO)
add_executable(webm_info ${webm_info_sources})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment