CMakeLists.txt


Log

Author Commit Date CI Message
Eugene Kliuchnikov 81dc1c86 2022-12-22T12:15:55 Ramp up CMake to v3 (#991) Drive-by: drop premake5 support
Kleis Auke Wolthuizen 9b537032 2022-12-20T11:03:21 CMake: ensure static libraries are still installed on Emscripten (#988) Similar to commit ce222e317e36aa362e83fc50c7a6226d238e03fd.
Adrian Perez 641bec0e 2022-12-16T12:42:42 CMake: Allow using BUILD_SHARED_LIBS to choose static/shared libs (#655) By convention projects using CMake which can build either static or shared libraries use a BUILD_SHARED_LIBS flag to allow selecting between both: the add_library() command automatically switches between both using this variable when the library kind is not passed to add_library(). It is also usual to expose the BUILD_SHARED_LIBS as an user-facing setting with the option() command. This way, the following will both work as expected: % cmake -DBUILD_SHARED_LIBS=OFF ... % cmake -DBUILS_SHARED_LIBS=ON ... This is helpful for distributions which need (or want) to build only static libraries.
Lukas Oberhuber f842c1bc 2022-11-17T13:37:20 fix macos rpath (#976) Without this patch, the three libraries are not provided with valid rpaths, meaning they are not packaged correctly for macos. c.f. https://github.com/google/brotli/issues/934 (which is a similar issue) but should be fixed by this fix as well. Also https://gitlab.gnome.org/Infrastructure/gimp-macos-build/-/merge_requests/129
Evgenii Kliuchnikov a8f5813b 2022-11-17T13:03:09 Update Documentation: - add note that brotli is a "stream" format, not an archive-like - regenerate .1 with Pandoc Build: - drop legacy "BROTLI_BUILD_PORTABLE" option - drop "BROTLI_SANITIZED" definition Code: - c: comb includes - c/enc: extract encoder state into separate header - c/enc: drop designated q10 codepath - c/enc: dealing better with flushing of empty stream - fix MSVC compilation API: - py: use library version instead of one in version.h - c: add plugable API to report consumed input / produced output - c/java: support "lean" prepared dictionaries (without copy of source)
Anonymous Maarten 9801a2c5 2022-05-12T09:50:48 Wrap interface include directories with BUILD_INTERFACE generator expression (#966) * Wrap interface include directories with BUILD_INTERFACE generator expression When exporting a CMake target using install(TARGETS) + install(EXPORT), CMake requires all include directories to be clean of build system directories. https://cmake.org/cmake/help/latest/prop_tgt/INTERFACE_INCLUDE_DIRECTORIES.html This change also allows use of brotli as a CMake subproject and installing + exporting it. * Fix typo in generator expression
Mohammad Bahoosh e83c7b8e 2021-12-15T02:28:25 Supress cmake warning (#931) Not providing VERSION to "project" command will cause a warning. Since this project's version is loaded from other files, this policy will help suppress the warning generated by cmake. This policy is set because we can't provide "VERSION" in "project" command. Use `cmake --help-policy CMP0048` for more information
Dirk Lemstra ce222e31 2021-06-23T10:12:21 Enabled install when building with emscripten. (#906) * Enabled install when building with emscripten. * Also install the pkg-config files.
Eugene Kliuchnikov d0529182 2020-08-26T17:13:31 Fix build files (#829)
Eugene Kliuchnikov e8155d67 2020-07-09T15:35:57 CMake: change default ("") build type to Release (#818) Fix #817
Cristi Vîjdea f503cb70 2020-03-19T11:46:52 Add HAVE_LOG2 build macro (#783) * Add HAVE_LOG2 build macro Fixes #781 * Rename macro to BROTLI_HAVE_LOG2 and move comment for visibility
Eugene Kliuchnikov 35ef5c55 2019-08-13T15:23:04 Disable PIC in EMCC mode. (#768)
Eugene Kliuchnikov ca21dac8 2019-08-07T10:51:55 Add an option to avoid building shared libraries. (#766) Add an option to avoid building shared libraries (for building with EMCC) Drive-by: * maven: ramp up java level to minimal required * travis: replace deprecated clang-5.0 with clang-7 * maven: fallback to jdk10 to void javadoc bug
Stephen Kyle 67f059ea 2018-09-27T10:00:33 Cross compilation support (#709) * build: add cross-compilation support to make Set CROSS_COMPILE when running make to use the selected cross compilation toolchain, such as arm-linux-gnueabihf, or aarch64-linux-gnu. Testing requires the presence of qemu - 'qemu-$(ARCH)' will be executed, where ARCH is the first part of the toolchain triplet. * build: add cross-compilation support to cmake If C_COMPILER/CXX_COMPILER/CC/CXX are found to have cross-compilation triplets in front of the compiler, then qemu will be used to execute the tests. * CI: add arm-linux-gnueabihf-gcc builder to Travis The version of qemu available in Ubuntu trusty (as provided by Travis) appears to have a bug in qemu-aarch64, which leads to the compatibility tests failing on some inputs, erroneously rejecting the input as corrupt. Once Travis supports xenial, we could add an aarch64-gnu-linux-gcc builder as well. * CI: propagate cmake errors out of .travis.sh Seems like even if cmake fails, the error isn't picked up by Travis.
Jørgen Ibsen 6eba239a 2018-09-13T19:31:23 Fix auto detect of bundled mode (#704) Set bundled mode to ON when parent directory is not empty. Due to the peculiarities of CMake if, comparing an undefined variable to the empty string is false, so this likely never triggered.
Adrian Perez 515fc623 2018-03-26T16:41:18 Tell CMake to not check for a C++ compiler (#653) By default CMake checks both for C and C++ compilers, while the latter is not needed. Setting the list of languages to just "C" in the call to project() removes the unneeded check.
Jeremy Bicha 63e15bb3 2017-12-07T14:39:07 Don't set rpath (#629)
Eugene Kliuchnikov 0ad94eed 2017-11-28T15:37:28 Update (#620) * add autotools build * separate semantic and ABI version * extract sources.lst (used by CMake and Automake) * share pkgconfig templates (used by CMake and Automake) * decoder: always set `total_out` * encoder: fix `BROTLI_ENSURE_CAPACITY` macro (no-op after preprocessor) * decoder/encoder: refine `free_func` contract
Eugene Kliuchnikov b6a01749 2017-09-20T10:04:06 Install static libraries as well (#601)
Eugene Kliuchnikov 52f04833 2017-09-19T09:40:48 Build both static and shared libs with CMake (#599)
Eugene Kliuchnikov 03739d2b 2017-05-29T17:55:14 Update (#555) Update: * new CLI; bro -> brotli; + man page * JNI wrappers preparation (for bazel build) * add raw binary dictionary representation `dictionary.bin` * add ability to side-load brotli RFC dictionary * decoder persists last error now * fix `BrotliDecoderDecompress` documentation * go reader don't block until necessary * more consistent bazel target names * Java dictionary data compiled footprint reduced * Java tests refactoring
Eugene Kliuchnikov 2c001010 2017-05-24T17:19:34 Unify artifact installation (#544)
Eugene Kliuchnikov 6ece1d87 2017-04-23T14:07:08 Move files & update paths (#541) * Move files & update paths * Rename build to scripts. * Fix paths * Fix script.
Ian Duncan aaa4424d 2017-03-02T00:19:57 Fix CMakeLists.txt specifying a nonexistent pkgconfig package (#518)
Eugene Kliuchnikov 11df843c 2017-02-06T14:20:43 Update encoder (#504) * pull `BROTLI_MAX_BACKWARD_LIMIT` to constants * split generic and Zopfli backward references code * pull hashers init and stitch invocation to encoder * make `dictionary_hash` a compilation unit * add `size hint` parameter * add new hasher * use `size hint` to pick new hasher for q4 * modernize clz guard (fix #495) * move `hash to binary tree` to separate file * add `Initialize` and `Cleanup` to all hashers * do not raise OOM if malloc(0) == NULL (fix #500)
Eugene Kliuchnikov fe9f9a91 2016-12-22T08:57:44 Split brotli common/dec/enc .pc files (#490) Add URL, and use DEPENS_PRIVATE generator params
Evan Nemerson 6c470098 2016-11-01T02:03:29 FInishing touches for installing libbrotli with CMake (#464) * build: fix bundled mode + BUILD_SHARED_LIBS * cmake: add soversion information * cmake: generate pkg-config file
Eugene Kliuchnikov b93cb698 2016-10-18T17:14:49 * leave static compilation declaration intouch (e.g. Python build)
Eugene Kliuchnikov 69982c25 2016-10-18T16:45:32 Build shared libraries by default * Declare `BUILD_SHARED_LIBS` option for CMake * Define `${LIB}_SHARED_COMPILATION` when compiling shared library * Define and use BROTLI_xxx_API * Fix remaining unprefixed defines in port.h
Eugene Kliuchnikov d767ab9e 2016-10-17T14:29:38 Merge pull request #439 from fred-wang/remove-underscore Remove the underscore in the name of brotli libraries. #326
Frédéric Wang 1c777660 2016-10-12T21:17:23 CMake: Also add ARCHIVE DESTINATION for non-WIN32
Frédéric Wang ed2748ab 2016-10-12T18:23:34 Remove the underscore in the name of brotli libraries. #326
Frédéric Wang 9389876e 2016-10-12T16:58:03 Add ARCHIVE destination for Windows.
Frédéric Wang c41962f0 2016-10-12T16:11:51 Use install directories provided by GNUInstallDirs.
Frédéric Wang 82536d2b 2016-10-12T14:53:02 Also install the libraries and headers when building static libraries.
Frédéric Wang cd8153a1 2016-10-12T14:32:36 Do not install the public headers on WIN32. #326
Frédéric Wang 93933405 2016-10-07T22:50:47 Actually use BROTLI_INCLUDE_DIRS to get the path to headers.
Frédéric Wang 89a77a94 2016-10-07T22:24:34 Also install the brotli headers when building the shared libraries. #326
Eugene Kliuchnikov d7c4da8a 2016-08-27T17:45:57 Merge pull request #421 from fred-wang/cmake-shared-libraries Add support for CMake's BUILD_SHARED_LIBS option. #326
Frédéric Wang 5e1219a3 2016-08-27T12:14:13 Fix typo in CMakeFile: s/BROTLI_BUNDLE_MODE/BROTLI_BUNDLED_MODE/
Frédéric Wang 074e4acd 2016-08-27T12:04:48 Add support for CMake's BUILD_SHARED_LIBS option. #326
Eugene Kliuchnikov 532921b8 2016-08-23T15:35:54 Fix CMake includes.
Eugene Kliuchnikov 3dcc3c02 2016-08-23T14:49:37 Fix CMake includedirs
Eugene Kliuchnikov 2c2d5578 2016-08-22T15:44:12 Use version from common/version.h
Evan Nemerson fe0e153c 2016-08-04T18:51:20 cmake: use a different variable for testing with and without libm CMake seems to cache the result when using the same variable, at least with some versions, so previously systems requiring libm for log2 may not have worked as expected.
Evan Nemerson c1ec7ba2 2016-07-29T11:52:15 appveyor: add Visual Studio builds (based on CMake) This only goes back to VS 12 (2013) because MSVC didn't support log2 until then.
Evan Nemerson 03657e80 2016-07-28T13:31:09 Add mingw support.
Evan Nemerson 26a59359 2016-07-26T08:22:58 Add UBSan build, use clang for sanitizer builds.
Evan Nemerson 37be4e37 2016-06-28T20:35:16 travis: add many additional builds
Evan Nemerson 93ef13f8 2016-06-20T13:07:35 Add CMake build system.