mxms a7002d2089 Add WEBP_ENABLE_FBOUNDS_SAFETY to CMakeLists.txt
Conditionally enable -fbounds-safety for webputils

This is the first step towards making -fbounds-safety
(https://clang.llvm.org/docs/BoundsSafety.html) available to folks with
a supported toolchain.

In the next CL, I'll provide a header file which wraps the annotations,
keeping the code portable. It will also address the build failures below
by marking the webputils files as "default unsafe", which shouldn't
change any behavior (build or runtime) when -fbounds-safety is disabled.

Example using a toolchain built from github.com/swiftlang/llvm-project/next

```
$ mkdir build && cd build
$ cmake .. -DCMAKE_C_COMPILER=$(pwd)/../llvm-build/bin/clang -DCMAKE_CXX_COMPILER=$(pwd)/../llvm-build/bin/clang++ -DWEBP_ENABLE_FBOUNDS_SAFETY=true
$ make
...
[ 74%] Building C object CMakeFiles/webputils.dir/src/utils/bit_reader_utils.c.o
In file included from libwebp/src/utils/bit_reader_utils.c:23:
In file included from libwebp/src/utils/bit_reader_inl_utils.h:30:
libwebp/src/utils/utils.h:72:14: error: passing 'const uint8_t *__single' (aka 'const unsigned char *__single') with pointee of size 1 to parameter '__src' of type
      'const void *__single __sized_by(__n)' (aka 'const void *__single') with size value of 4 always fails
   72 |   memcpy(&A, ptr, sizeof(A));
      |              ^    ~~~~~~~~~
...
```

Bug: webp:432511821
Change-Id: Ie3db8d29445f2cff06e2ee180f5dd454acedbae3
2025-07-17 23:07:54 +00:00
2025-03-28 11:44:03 +01:00
2025-06-30 12:26:15 -07:00
2021-01-02 15:51:55 -08:00
2013-12-29 11:56:21 -05:00
2025-04-16 18:53:36 -07:00
2025-06-30 12:26:15 -07:00
2025-07-09 16:26:07 -07:00
2025-05-16 12:43:52 -07:00
2023-05-30 13:54:06 -07:00
2021-01-02 15:51:55 -08:00
2024-06-01 10:21:54 -05:00
2025-06-30 12:26:05 -07:00
2025-06-30 12:26:05 -07:00
2025-07-07 17:20:00 -07:00
2018-11-07 19:12:35 -08:00
2025-06-30 12:26:15 -07:00
2010-09-30 09:55:07 -04:00
2016-05-24 15:35:20 +02:00
2021-01-02 15:51:55 -08:00
2021-01-02 15:51:55 -08:00
2025-03-28 11:44:03 +01:00
2025-06-30 12:26:15 -07:00
2015-04-18 08:46:53 -07:00
2025-06-30 12:26:15 -07:00

WebP Codec

      __   __  ____  ____  ____
     /  \\/  \/  _ \/  _ )/  _ \
     \       /   __/  _  \   __/
      \__\__/\____/\_____/__/ ____  ___
            / _/ /    \    \ /  _ \/ _/
           /  \_/   / /   \ \   __/  \__
           \____/____/\_____/_____/____/v1.6.0

WebP codec is a library to encode and decode images in WebP format. This package contains the library that can be used in other programs to add WebP support, as well as the command line tools 'cwebp' and 'dwebp' to compress and decompress images respectively.

See https://developers.google.com/speed/webp for details on the image format.

The latest source tree is available at https://chromium.googlesource.com/webm/libwebp

It is released under the same license as the WebM project. See https://www.webmproject.org/license/software/ or the "COPYING" file for details. An additional intellectual property rights grant can be found in the file PATENTS.

Building

See the building documentation.

Encoding and Decoding Tools

The examples/ directory contains tools to encode and decode images and animations, view information about WebP images, and more. See the tools documentation.

APIs

See the APIs documentation, and API usage examples in the examples/ directory.

Bugs

Please report all bugs to the issue tracker. For security reports, select 'Security report' from the Template dropdown.

Patches welcome! See how to contribute.

Discuss

Email: webp-discuss@webmproject.org

Web: https://groups.google.com/a/webmproject.org/group/webp-discuss

Description
Mirror only. Please do not send pull requests. See https://chromium.googlesource.com/webm/libwebp/+/HEAD/CONTRIBUTING.md.
Readme 17 MiB
Languages
C 94.3%
C++ 1.4%
CMake 1.1%
Shell 1.1%
M4 1%
Other 1.1%