Previously, Breakpad was built in its source tree instead of the
user-specified build directory, inconsistent with other external
projects and potentially causing source tree pollution.
Include path fix:
- Add ${INSTALL_DIR}/include/breakpad to include directories to fix
FTBFS on Jammy builders
Build system improvements:
- Replace dedicated LSS submodule symlink target with PATCH_COMMAND to
simplify the build process
- Use user-specified make command instead of hardcoded "make"
- Skip building unused process library and tools
- Link against breakpad with PRIVATE visibility unless required
Compiler flag cleanups:
- Remove -Wno-array-bounds from CFLAGS (Breakpad uses C++/CXXFLAGS)
- Remove compile-time flags incorrectly placed in LDFLAGS
- Remove '-fPIC' from CFLAGS, as it is already included by breakpad
when building on linux hosts.
- Replace the individual -Wno-* flags with -Wno-error to cancel
-Werror option specified by breakpad. This is more future-proof.
CMake target modernization:
- Rename libbreakpad_client to Breakpad::client following modern conventions
- Add Breakpad::breakpad header-only target to minimize dependencies
- Install library to enable proper include path prefixes
(breakpad/client/... vs client/...)
Header dependency optimization:
- Remove Breakpad includes from popular headers, use forward declarations
- Include Breakpad headers before internal headers for better readability