1
0
mirror of https://github.com/facebook/proxygen.git synced 2026-10-24 01:33:54 +03:00
Files
proxygen/cmake/TARGETS.txt
Alan Frindell 82e2ac1645 Add granular CMake targets with generate_cmake.py (#590)
Summary:
Pull Request resolved: https://github.com/facebook/proxygen/pull/590

Add granular CMake targets for proxygen following the same pattern as mvfst,
fizz, and wangle. This introduces:

- generate_cmake.py: Generates CMakeLists.txt files from BUCK/TARGETS files
- ProxygenFunctions.cmake: Infrastructure for proxygen_add_library() macro
- ProxygenCompatAliases.cmake: Backward compatibility aliases for moxygen
- Granular libraries under lib/ with proper dependency tracking
- Lint integration for keeping CMake in sync with BUCK

The monolithic proxygen::proxygen target is preserved for backward compatibility.
Dependencies now come naturally from BUCK files rather than blanket variables.

Manual CMakeLists.txt files (httpserver, httpclient/samples) have been updated
to use proxygen_add_library where appropriate.

Reviewed By: hanidamlaj

Differential Revision: D91009064

fbshipit-source-id: da7234bb29b9f372e989d35540d035ef11c0a2c6
2026-02-14 09:39:35 -08:00

71 lines
2.0 KiB
Plaintext

Proxygen CMake Target Compatibility Aliases
============================================
This file explains the rationale behind the compatibility aliases defined in
ProxygenCompatAliases.cmake.
Background
----------
Proxygen's CMake build now uses granular library targets generated from BUCK
files (via generate_cmake.py). Each BUCK target maps to a CMake target with
a name like proxygen_<path>_<name>.
However, downstream projects (like moxygen) depend on higher-level groupings
rather than individual fine-grained targets. The compat aliases provide stable,
semantic names that bundle related granular targets together.
Alias Categories
----------------
http_core
Core HTTP types: error codes, status types, utilities, and common types.
Groups: proxygen_error, proxygen_http_status_type, proxygen_http_http_utils,
proxygen_http_types
codec
HTTP/1.1 and HTTP/2 codec infrastructure.
Groups: proxygen_http_codec, proxygen_http_codec_direction,
proxygen_http_codec_error_code, proxygen_http_codec_util
hq_core
HTTP/3 (HQ) codec and error types.
Groups: proxygen_http_codec_hq_codec, proxygen_http_h3_errors
hpack / qpack
Header compression libraries for HTTP/2 and HTTP/3 respectively.
session / hq_session
HTTP session management for HTTP/1-2 and HTTP/3.
webtransport / quicwebtransport
WebTransport protocol support over HTTP/2 and QUIC.
coro / coro_client / coro_server / coro_filters
C++20 coroutine-based HTTP client and server APIs.
connpool
Connection pooling infrastructure.
dns
DNS resolution using c-ares.
services
Acceptor and service configuration.
utils
Common utilities (time, URL parsing, etc.).
httpserver
HTTP server framework including ScopedHTTPServer for testing.
hq_server
HQ (HTTP/3) server implementation.
Adding New Aliases
------------------
When adding new aliases:
1. Choose a semantic name that describes the functionality, not the path
2. Group related granular targets that are typically used together
3. Document the grouping in this file
4. Avoid breaking existing downstream consumers