mirror of
https://github.com/facebook/proxygen.git
synced 2026-10-24 01:33:54 +03:00
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
71 lines
2.0 KiB
Plaintext
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
|