CMakeLists.txt


Log

Author Commit Date CI Message
Evgenii Kliuchnikov adbc354d 2024-01-16T04:01:35 simplify log2 check; currently we rely more on compiler than build system PiperOrigin-RevId: 598794971
Eugene Kliuchnikov adac2b0e 2023-12-08T15:39:58 Merge branch 'master' into brotli-cmake-tweaks
Evgenii Kliuchnikov 2b6d8654 2023-11-27T03:12:40 add an option to disable brotli tools PiperOrigin-RevId: 585593185
Sergei Trofimovich cff58032 2023-09-17T20:27:32 CMakeLists.txt: use `CMAKE_INSTALL_FULL_MANDIR` for mans install Without the change install just fails for me as `SHARE_INSTALL_PREFIX` is unset for me. Following https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html I'm using absolute path expansion to install mans.
Sergei Trofimovich 3ad47114 2023-09-17T20:25:01 CMakeLists.txt: use CMAKE_INSTALL_FULL_LIBDIR for runpath on darwin Without the change on systems where `CMAKE_INSTALL_LIBDIR` is an absolute path outside `CMAKE_INSTALL_PREFIX` (like `nixpkgs`) libraries ended up embedding wrong RPATH and libraries failed to load. The change uses suggestion from https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html to use `CMAKE_INSTALL_FULL_LIBDIR` (similar to library install code) to enbed it as an RPATH.
Evgenii Kliuchnikov ce9c16e8 2023-09-13T05:13:11 upload full testdata archive PiperOrigin-RevId: 565017690
Evgenii Kliuchnikov cf95fbb9 2023-09-11T07:08:16 reword cmake test generator warning PiperOrigin-RevId: 564371898
Tomasz Kłoczko 741610ef 2023-08-31T08:47:47 install man pages cmake modyfication to install man pages. Signed-off-by: Tomasz Kłoczko <kloczek@github.com>
Evgenii Kliuchnikov 257884a3 2023-07-31T09:36:54 restore BROTLI_VERSION var in CMake build PiperOrigin-RevId: 552507047
Evgenii Kliuchnikov d639a81d 2023-07-31T07:18:48 add option to delete files that are not "compressed" PiperOrigin-RevId: 552472135
zhongfly 802475e7 2023-07-31T17:04:46 fix missing version in CMake build (#1048)
Evgenii Kliuchnikov 27a9a809 2023-07-30T03:44:38 simplify CMake build PiperOrigin-RevId: 552238545
Evgenii Kliuchnikov 6ee96e29 2023-07-03T19:13:24 Internal changes PiperOrigin-RevId: 545262005
Evgenii Kliuchnikov 6db17c87 2023-03-01T16:51:03 0.4-1.5% decoder speedup PiperOrigin-RevId: 513248503
Eugene Kliuchnikov 50ebce10 2023-06-22T11:29:08 Fix Bazel build (#1024)
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.