add macOS build support for unit tests#225
Open
m-mcgowan wants to merge 1 commit intoblues:masterfrom
Open
Conversation
Add conditional CMake configuration for macOS (APPLE): - Skip -m32 and Linux-specific linker flags - Define HAVE_STRLCPY/HAVE_STRLCAT (macOS provides these natively) - Exclude n_str.c (strlcpy/strlcat bundled implementations) - Suppress AppleClang-specific warnings in upstream code - Use -flat_namespace for dylib and test executables to enable FFF test fake symbol interposition All changes are guarded by if(APPLE)/if(NOT APPLE) so Linux CI behavior is completely unchanged.
cd3c7a1 to
49afe4c
Compare
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.
Summary
if(APPLE)/if(NOT APPLE)to preserve existing Linux CI behaviorChanges
CMakeLists.txt:-m32,-mfpmath=sse,-msse2on macOS (not available on Apple toolchain)-Wl,-melf_i386linker flag on macOSHAVE_STRLCPYandHAVE_STRLCATon macOS (system provides these as macros, avoiding conflict with note-c bundled implementations)n_str.con macOS (bundledstrlcpy/strlcatnot needed)-Wno-deprecated-non-prototype,-Wno-unused-but-set-variable,-Wno-strict-prototypes-Wl,-flat_namespaceon macOS for FFF symbol interpositiontest/CMakeLists.txt:-m32for Catch2 on macOS-Wl,-flat_namespaceto test executables on macOS (required for FFF fakes to interpose dylib symbols)Test plan