e569ab0f7c
Fix the build and tidy up a couple things along the way. - Add -std=c++11 to CMakeLists.txt CXX flags. - Add missing include to libwebm_utils.h (<memory>). - Setup CMAKE_CXX_FLAGS properly (allow user override). - Add missing URL for gtest repo to README.libwebm. BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1136 Change-Id: I894729216737ff92f58a7b7601484ba8fba73b25 |
||
---|---|---|
build | ||
common | ||
testing | ||
.clang-format | ||
.gitattributes | ||
.gitignore | ||
Android.mk | ||
AUTHORS.TXT | ||
CMakeLists.txt | ||
dumpvtt.cc | ||
iosbuild.sh | ||
LICENSE.TXT | ||
Makefile.unix | ||
mkvmuxer.cpp | ||
mkvmuxer.hpp | ||
mkvmuxertypes.hpp | ||
mkvmuxerutil.cpp | ||
mkvmuxerutil.hpp | ||
mkvparser.cpp | ||
mkvparser.hpp | ||
mkvreader.cpp | ||
mkvreader.hpp | ||
mkvwriter.cpp | ||
mkvwriter.hpp | ||
PATENTS.TXT | ||
README.libwebm | ||
sample_muxer_metadata.cc | ||
sample_muxer_metadata.h | ||
sample_muxer.cpp | ||
sample.cpp | ||
vpxpes2ts_main.cc | ||
vpxpes2ts.cc | ||
vpxpes2ts.h | ||
vttdemux.cc | ||
vttreader.cc | ||
vttreader.h | ||
webm2pes_main.cc | ||
webm2pes.cc | ||
webm2pes.h | ||
webmids.hpp | ||
webvttparser.cc | ||
webvttparser.h |
Building Libwebm To build libwebm you must first create project files. To do this run cmake and pass it the path to your libwebm repo. Makefile.unix can be used as a fallback on systems that cmake does not support. CMake Basics To generate project/make files for the default toolchain on your system simply run cmake with the path to the libwebm repo: $ cmake path/to/libwebm On Windows the above command will produce Visual Studio project files for the newest Visual Studio detected on the system. On Mac OS X and Linux systems, the above command will produce a makefile. To control what types of projects are generated the -G parameter is added to the cmake command line. This argument must be followed by the name of a generator. Running cmake with the --help argument will list the available generators for your system. On Mac OS X you would run the following command to generate Xcode projects: $ cmake path/to/libwebm -G Xcode On a Windows box you would run the following command to generate Visual Studio 2013 projects: $ cmake path/to/libwebm -G "Visual Studio 12" To generate 64-bit Windows Visual Studio 2013 projects: $ cmake path/to/libwebm "Visual Studio 12 Win64" CMake Makefiles: Debugging and Optimization Unlike Visual Studio and Xcode projects, the build configuration for make builds is controlled when you run cmake. The following examples demonstrate various build configurations. Omitting the build type produces makefiles that use build flags containing neither optimization nor debug flags: $ cmake path/to/libwebm A makefile using release (optimized) flags is produced like this: $ cmake path/to/libwebm -DCMAKE_BUILD_TYPE=release A release build with debug info can be produced as well: $ cmake path/to/libwebm -DCMAKE_BUILD_TYPE=relwithdebinfo And your standard debug build will be produced using: $ cmake path/to/libwebm -DCMAKE_BUILD_TYPE=debug Tests To enable libwebm tests add -DENABLE_TESTS=ON CMake generation command line. For example: $ cmake path/to/libwebm -G Xcode -DENABLE_TESTS=ON Libwebm tests depend on googletest. By default googletest is expected to be a sibling directory of the Libwebm repository. To change that, update your CMake command to be similar to the following: $ cmake path/to/libwebm -G Xcode -DENABLE_TESTS=ON \ -DGTEST_SRC_DIR=/path/to/googletest The tests rely upon the LIBWEBM_TEST_DATA_PATH environment variable to locate test input. The following example demonstrates running the muxer tests from the build directory: $ LIBWEBM_TEST_DATA_PATH=path/to/libwebm/testing/testdata ./muxer_tests Note: Libwebm Googletest integration was built with googletest from https://github.com/google/googletest.git at git revision ddb8012eb48bc203aa93dcc2b22c1db516302b29.