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

[libvhdi] Use official build system #36809

Draft
wants to merge 6 commits into
base: master
Choose a base branch
from
Draft

Conversation

dg0yt
Copy link
Contributor

@dg0yt dg0yt commented Feb 17, 2024

No description provided.

@dg0yt dg0yt force-pushed the libvhdi branch 4 times, most recently from c45ff3c to 46422a5 Compare February 17, 2024 18:17
@MonicaLiu0311 MonicaLiu0311 added the category:code-cleanup This PR cleans up code, without fixing any existing bugs nor adding any features. label Feb 18, 2024
@dg0yt dg0yt force-pushed the libvhdi branch 2 times, most recently from 3dfdad6 to 74bed36 Compare February 18, 2024 10:53
@dg0yt dg0yt force-pushed the libvhdi branch 2 times, most recently from 66b57ea to de7100f Compare February 18, 2024 19:16
@TomKatom
Copy link
Contributor

What work is left before this is ready to merge? I'd like to help get this merged.

@dg0yt
Copy link
Contributor Author

dg0yt commented Apr 29, 2024

IIRC now there are several related ports which share the same pattern of carrying a set of common private libs. This is a problem for the static triplets. Packaging them all separately is a lot of work.

@TomKatom
Copy link
Contributor

TomKatom commented Apr 29, 2024

IIRC now there are several related ports which share the same pattern of carrying a set of common private libs. This is a problem for the static triplets. Packaging them all separately is a lot of work.

I've tried to map out what private libraries need to be packaged taking account for recursive dependencies and I've come up with 18 of those libraries. (To support all currently existing libyal ports)

  • 1. libbfio
  • 2. libcdata
  • 3. libcerror
  • 4. libcfile
  • 5. libclocale
  • 6. libcnotify
  • 7. libcpath
  • 8. libcsplit
  • 9. libcthreads
  • 10. libfcache
  • 11. libfdata
  • 12. libuna
  • 13. libfguid
  • 14. libcaes
  • 15. libfdatetime
  • 16. libfmapi
  • 17. libfvalue
  • 18. libfwnt

This PR has gotten quite large already, I think I'll create a new branch and cherry-pick the vcpkg-libyal-vstools and add a new port of a simple libyal library with no private dependencies like libcerror.
From there adding these new ports should be simple and then finally convert the existing non-official build system ports to use vcpkg-libyal-vstools.

@dg0yt
Copy link
Contributor Author

dg0yt commented Apr 29, 2024

The PR is large due to msbuild patching. It might make sense to rewrite the msbuild files with another mechanism.

@TomKatom
Copy link
Contributor

The PR is large due to msbuild patching. It might make sense to rewrite the msbuild files with another mechanism.

Can I ask why you disabled building with static CRT?

@dg0yt
Copy link
Contributor Author

dg0yt commented Apr 30, 2024

Can I ask why you disabled building with static CRT?

IIRC the MSVC build only allows a DLL. This doesn't combine well with a static CRT.
And then the canonical pattern is vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY) in portfile.cmake in combination with skip in ci.baseline so that user may still use per-port customization in triplet files to force a DLL with static CRT if they know what they are doing.

@MonicaLiu0311
Copy link
Contributor

Is there any new progress?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:code-cleanup This PR cleans up code, without fixing any existing bugs nor adding any features.
3 participants