DegateCommunity / Degate

A modern and open-source cross-platform software for chips reverse engineering.
https://www.degate.org
GNU General Public License v3.0
251 stars 31 forks source link

Use vcpkg for providing dependencies. #37

Open DorianBDev opened 1 month ago

DorianBDev commented 1 month ago

Description

Use vcpkg for providing third party dependencies. This is the continuation of @agatti work on #36.

Affected area(s)

Changes type

DorianBDev commented 1 month ago

Some notes on vcpkg usage:

DorianBDev commented 1 month ago

vcpkg and github-actions have an issue with Qt and CI caching... Which force to rebuild Qt every time the CI is run. A PR is available here https://github.com/microsoft/vcpkg-tool/pull/1043 but not merged. This doubles the CI execution times.

DorianBDev commented 1 month ago

After further exploration of VCPKG and Windows :

About all this, I think I'll try to create a hybrid system in which CMakeLists.txt will try to use the local version of a library (for example, provided by the system's package manager), or, if nothing has been found, it will use VCPKG. The deploy CIs/system will then only work if Qt6, QInstallerFramework and mesa llvmpipe dll (Windows only) are available locally (not via VCPKG).

Edit: windeployqt.exe is also so broken when provided by VCPKG... It create a non-working deploy folder, and copy useless things, bloating everything.

Pospelove commented 1 month ago

Cache is huge (~18gb on my machine, mainly because of Qt).

There is an option for cleaning the buildtrees and downloads folder of vcpkg after build: See https://github.com/skyrim-multiplayer/skymp/blob/main/CMakeLists.txt#L25

Regards, Yet Another Person Who Suffers From GHA Cache Limits

DorianBDev commented 1 month ago

There is an option for cleaning the buildtrees and downloads folder of vcpkg after build: See https://github.com/skyrim-multiplayer/skymp/blob/main/CMakeLists.txt#L25

Thanks for the advice!

Regards, Yet Another Person Who Suffers From GHA Cache Limits

I feel this...