Use symlink for consistent path to unstable/
headers
#4826
Closed
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.
Issue:
External projects can always do:
#include <s2n.h>
But, for the unstable headers the path is either
#include <s2n/unstable/cleanup.h>
or
#include <unstable/cleanup.h>
...depending on whether
s2n
was installed before your project, or built at the same time as your project via CMake's add_subdirectory(s2n). CRT language bindings likeaws-crt-python
build s2n via add_subdirectory.Description of changes:
Add symlink, from
api/s2n
->api/unstable
.This way, external code can always do
#include <s2n/unstable/cleanup.h>
, and it works whether s2n was pre-installed, or is being built simultaneously.This symlink is not installed. It only affects builds that use s2n's source code directly.
Call-outs:
An alternate fix is here: #4825
This simply moves the files, instead of relying on symlinks, and fixes up all local code to use the new paths. It's a lot more changes, but feels to me like a simpler long term fix.
I'm not sure how 100% portable symlinks are. For example, zip requires a
--symlink
flag to handle them properly.Testing:
unstable/*.h
pathss2n/unstable/*.h
pathsBy submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.