Skip to content

COMP: Give install_linking the source directory instead of guessing it - #85

Open
hjmjohnson wants to merge 1 commit into
masterfrom
ci/install-linking-srcdir
Open

hjmjohnson wants to merge 1 commit into
masterfrom
ci/install-linking-srcdir

Conversation

@hjmjohnson

Copy link
Copy Markdown
Member

Re-submission of #29, reverted from master on 2026-09-24 so it can be
reviewed before merging. Content is unchanged from the original.

Stack position 1 of 10. Base: master. This one is first; nothing
has to land before it.

Ordering for this stack

# PR branch base
1 #29 <- this PR ci/install-linking-srcdir master
2 #28 ci/test-output-on-failure ci/install-linking-srcdir
3 #30 ci/guard-cmp0169 ci/test-output-on-failure
4 #75 ci/build-all-codepaths ci/guard-cmp0169
5 #77 ci/widen-coverage ci/build-all-codepaths
6 #37 pr/fix-missing-prototypes ci/widen-coverage
7 #78 fix/buildyml-jobs pr/fix-missing-prototypes
8 #81 ci/missing-declarations fix/buildyml-jobs
9 #82 ci/windows ci/missing-declarations
10 #83 ci/workflow-trigger-lint ci/windows

The order is the order these changes sat on master before the revert, so
it is known to build and test at every step. Verified again after
rebuilding the stack: the tip configures, compiles with no errors, and
passes 344/344 tests.

Why this one is stacked rather than independent

Each PR in this chain edits the same few files as its predecessors, chiefly
.github/workflows/cmake-multi-platform.yml, cmake/exported_symbols_linux.txt
and cifti/afni_xml.h. Cherry-picked onto master alone, the later ones
conflict. Two members also carry a build-order dependency rather than a
textual one: without #30 the project does not configure at all on CMake
versions that do not know policy CMP0169, and #29 is needed for
install_linking to find its source directory.

Commits
  • COMP: Give install_linking the source directory instead of guessing it

See #84 for the ordering of all 49 re-submitted pull requests.

The test hard-codes the path to the downstream example project:

    cmake ... ../../nifti_clib/real_easy/minimal_example_of_downstream_usage

That only resolves when the build directory happens to be a sibling of a
source tree named exactly "nifti_clib".  It fails for an in-tree build,
for a build directory named anything else, and on CI, where the checkout
lives at <workspace>/nifti_clib and the path resolves to
<workspace>/nifti_clib/nifti_clib/real_easy/...

CMake now passes CMAKE_SOURCE_DIR to the script, the way the other test
scripts in that directory already receive their arguments.

(cherry picked from commit 6458714)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants