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
84 lines
2.7 KiB
Plaintext
84 lines
2.7 KiB
Plaintext
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.
|
|
|