-
Notifications
You must be signed in to change notification settings - Fork 22
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Consolidate Au CMake targets #300
Conversation
This breaks the 1:1 correspondence between target and test, so we split up our helper accordingly into two. We make `au` the single mega-target that holds everything that doesn't depend on GTest. It turns out that there are two targets that do. `testing` is for external users, and contains custom GMock matchers. `chrono_policy_validation` is an internal-only library that makes it easy to test that Au is like chrono where we want to be, and unlike chrono otherwise. Each of these targets also depends on the `au` mega-target.
All the tests still passed locally from the previous build! CMake is so sloppy... I really miss bazel.
Tested locally with `au-docs-serve`
Note to the reviewer: This PR uses "checkpoint commits" to make it easier to verify correctness. Currently, there are 4. Start at the first commit, and use
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good. I can see that the dependency on gmock has moved.
The following test still looks good.
docker run --rm \
ubuntu@sha256:2e863c44b718727c860746568e1d54afd13b2fa71b160f5cd9058fc436217b30 \
/bin/bash -c \
'apt update && apt install -y clang cmake git && git clone -b chiphogg/consolidate-cmake-libs#257 https://github.com/aurora-opensource/au.git && cd au && cmake -S . -B cmake/build -DCMAKE_VERIFY_INTERFACE_HEADER_SETS=TRUE && cmake --build cmake/build -j $(proc) --target all all_verify_interface_header_sets && ctest -j $(nproc) --test-dir cmake/build'
This breaks the 1:1 correspondence between target and test, so we split
up our helper accordingly into two.
We make
au
the single mega-target that holds everything that doesn'tdepend on GTest. It turns out that there are two targets that do.
testing
is for external users, and contains custom GMock matchers.chrono_policy_validation
is an internal-only library that makes iteasy to test that Au is like chrono where we want to be, and unlike
chrono otherwise. Each of these targets also depends on the
au
mega-target.
Helps #257.