fix(cmake): prioritize discovered zlib headers for brpc sources - #23
Merged
zchuango merged 1 commit intoAug 22, 2026
Conversation
Explicitly discover zlib and use the ZLIB::ZLIB target instead of the bare z library name. Place the discovered zlib include directories before include paths inherited from parent projects when compiling SOURCES_LIB. This prevents protobuf's gzip_stream.h from resolving an unrelated zlib.h, such as the header provided by Crypto++. This keeps standalone builds working while fixing add_subdirectory integration with dependency prefixes such as vcpkg.
zchuango
merged commit Aug 22, 2026
f8eeb3e
into
LinQuickDev:fix/cmake-zlib-include-order
1 check passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What problem does this PR solve?
Issue Number: resolve 2593
Problem Summary:
When brpc is integrated into a parent CMake project with
add_subdirectory, include directories from the parent project may be inherited by brpc targets. If the parent project adds an include directory that contains an unrelatedzlib.h, such as Crypto++'szlib.h, protobuf'sgzip_stream.hmay resolve that header instead of the actual zlib header.This can cause compilation errors like:
What is changed and the side effects?
Changed:
find_package(ZLIB REQUIRED).ZLIB::ZLIBtarget instead of the barezlibrary name.SOURCES_LIB, so protobuf'sgzip_stream.hresolves the intended zlib header before inherited parent include directories.Side effects:
Performance effects:
Breaking backward compatibility:
Check List: