Skip to content
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

MinGW cross compilation support #663

Closed
2 of 4 tasks
D4N opened this issue Jan 23, 2019 · 2 comments
Closed
2 of 4 tasks

MinGW cross compilation support #663

D4N opened this issue Jan 23, 2019 · 2 comments
Assignees

Comments

@D4N
Copy link
Member

D4N commented Jan 23, 2019

Required steps for MinGW cross compilation support:

  • Fix the windows build in Mingw cross master #645 and remove the binary files from that PR
  • Add a MinGW build to the GitLab CI pipeline. Fedora's MinGW can already build exiv2 as a static library, dynamic linking is still broken though. Todo @D4N
  • Remove the templating of BasicError and drop WError, instead convert the wchar_t string to a char_t string in the few cases where this class is actually used. Then we can drop the awkward function BasicError<charT>::setMsg() which is exported from a template function. This hopefully fixes dynamic linking on MinGW. See: [WIP] Fix the Error type #685.
  • Run the test suite for MinGW with wine on Linux. Notes:
  • Wine requires X to be running, so we'll probably have to use something like Xvfb.
  • set export WINEDEBUG=-all otherwise wine logs to stderr
  • The MinGW dlls are by default not known by wine, they have to be added to WINEPATH. On Fedora this results in: export WINEPATH=/usr/x86_64-w64-mingw32/sys-root/mingw/bin/
  • Wine seems to change the line ending, at least the python test complain about whitespace changes at the end of all lines. This can be probably fixed by a simple search & replace when running under wine.
@clanmills
Copy link
Collaborator

Thanks for getting involved in this, Dan. I thought I had already removed the binary DLLs. Perhaps not.

I would be really great to see the end of that BasicError::setMsg() puzzle.

@clanmills
Copy link
Collaborator

I think this has been dealt with elsewhere and can be closed. The CI performs a cross platform build.

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

No branches or pull requests

2 participants