-
Notifications
You must be signed in to change notification settings - Fork 77
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
BLD: Get ESMF compiling on Cygwin #202
base: develop
Are you sure you want to change the base?
Conversation
So far only tests whether ESMF actuall compiles on Cygwin. I don't actually run the tests yet. I will need to figure out how to add "-D_BSD_SOURCE" to C++ compile lines before it completes.
This should let the compilation start.
Hopefully this lets me figure out the unexpected end of file errors.
Forgot that Windows git would put \r\n line endings, which Cygwin doesn't like.
Many declarations are hidden behind visibility macros. _BSD_SOURCE un-hides most of them. _POSIX_C_SOURCE un-hides another couple.
Cygwin is more like Windows than Linux here: make sure the import library gets generated in addition to the DLL and that both have the right names. Import library: lib${name}.dll.a Shared library: cyg${name}-${abi}.dll or cyg${name}.dll
I forgot the semicolons, so bash didn't recognize the control structures.
Not sure if this will fix the failure, the error wasn't very clear.
Get ESMF Compiling on Cygwin, and set up a CI run
@oehmke, @billsacks, @danrosen25, @uturuncoglu, I am not sure what's the best move forward here. The branch builds again for me under Linux after fixing some syntax issue in the logic change. However, I have not looked at the action part of the PR, and will not have time for it either. @oehmke I assigned the PR to you just to have a person responsible for it, and made the rest of the core team reviewers. Hope this works for now. |
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.
@theurich if you're happy with the changes to common.mk and the Cygwin build_rules.mk then I am, too. I'll defer to others who have more experience with github workflows to review the workflow piece.
Drop push, add workflow_dispatch and release.
I don't think those were actually working anyway, and I don't feel like debugging those.
Presumably the doc build is tested other places, so I skipped that to lower the compilation time and avoid the failure. The ESMPy tests are also skipped now: I think those were failing and I couldn't figure out why. At the moment, the action is checking that ESMF and ESMPy build on Cygwin and the ESMF checks pass on Cygwin, and will do that anytime someone opens a PR, pushes commits to a PR, pushes a button to run the action, or hits the "Release" button on GitHub. If you'd prefer not to spend three hours waiting for all that to run on every PR, I can drop the action now that it's demonstrated the rest of the changes allow Cygwin builds, and leave just the Cygwin changes. |
I updated my ESMF build on Cygwin, and tried to generalize my changes from the last time I did this so ESMF would still compile on Linux.
I also added a CI run to ensure ESMF compilation gets checked. I think I set up the tests to run as well, but I'm less sure of that.
Might close #136; I'm not sure if they're after a Cygwin build of ESMF or a 64-bit MinGW/Windows build of ESMF. PR #149 suggests they're after a MinGW-w64 build but are trying to do it in Cygwin without cross-compilers for whatever reason.
Follow-on to #201.