Enable Build On Windows
Solve Issue #1
Changes Made
- Changed from dynamic linking (
liboqs.so/liboqs.dll) to static linking (liboqs.a) - Added liboqs as a git submodule in
./liboqs/ - Updated build instructions for all platforms
Key Benefits
- Simplified installation - no need to install liboqs in system directory
- More portable - all dependencies contained within project
- Consistent builds across platforms
Documentation Updates
- Preserved all existing API documentation
- Maintained all examples and usage instructions
- Kept original diagrams and status badges
- Updated only the build/installation sections
Sorry, just delete it accidentally, I would add it back
---Original--- From: "Michael @.> Date: Fri, Nov 1, 2024 18:29 PM To: @.>; Cc: "Huajie @.@.>; Subject: Re: [open-quantum-safe/liboqs-java] Enable Build On Windows (PR #28)
@baentsch requested changes on this pull request.
Thanks for this PR, @AdijeShen -- before going into review detail, I've asked the rest of the team as to whether they're OK with the submodule approach. The change I'd immediate question is the removal of RELEASE.md: If there's no good reason for this (?) please bring it back: As and if someone else starts to maintain this sub project again, there may be an interest to do new releases again...
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>
Hi @AdijeShen, do you plan to continue with this PR?
Hi @AdijeShen, do you plan to continue with this PR?
Hi @SWilson4 , I will turn back to working on this PR and plan to finish it within one week.
I've completed my revisions by removing the git submodule approach as requested. The current implementation uses static linking with liboqs.a instead of dynamic linking, which might require adjustments to the GitHub CI workflow.
Please let me know if any further changes are needed. I'm available to address additional feedback to get this PR ready for merging.
I've completed my revisions by removing the git submodule approach as requested. The current implementation uses static linking with liboqs.a instead of dynamic linking, which might require adjustments to the GitHub CI workflow.
Please let me know if any further changes are needed. I'm available to address additional feedback to get this PR ready for merging.
Thanks for the updates! I am not at all knowledgeable about Windows development and build processes (especially in Java), so please bear with me. Could you elaborate on why it's necessary to change from dynamic to static linking? It would also be great if you could add a CI workflow for Windows.
You will also need to add DCO signoff to your commits. Instructions for that are here: https://github.com/open-quantum-safe/liboqs-java/pull/28/checks?check_run_id=39103331593.
Hi @SWilson4, Thank you for the feedback!
Regarding the change from dynamic to static linking:
- Static linking resolves Windows-specific issues where loading dynamic libraries requires specific path configurations
- It simplifies cross-platform deployment since users don't need to manage separate .dll/.so files
- It improves portability by bundling all dependencies within the project
I've added a Windows CI workflow in my latest commits (42f62eb) to validate the build process on Windows environments. The workflow tests the compilation and basic functionality to ensure compatibility. All actions passed in my forked repo
Let me know if you'd like me to make any additional changes or provide more details about the implementation.
Hi @AdijeShen, it looks like the whole repo has been reformatted to use CRLF line endings (\r\n). Could you please reformat to use only LF (\n)?
@SWilson4 Thank you for pointing that out. I've fixed the line ending issue by converting all files back to LF format. The changes have been pushed in the latest commit.
Thanks very much. Can you add the DCO sign-off? See instructions at https://github.com/open-quantum-safe/liboqs-java/pull/28/checks?check_run_id=39813683997
@SWilson4 any further thoughts? Otherwise I think we can merge.
@johngray-dev As one of the primary users of the Java wrapper, could you please take a look at this PR? I'd like to understand the implications of moving from dynamic to static linking before we proceed.
In the absence of any objections, merging once re-triggered CI passes. Thanks for the contribution @AdijeShen!
Should we close https://github.com/open-quantum-safe/liboqs-java/issues/1?