Draft for mail about ci
L. E. Segovia
amy at amyspark.me
Fri Mar 10 11:23:24 GMT 2023
Hi again Ingo,
On 09/03/2023 19:12, Ingo Klöcker wrote:
> On Donnerstag, 9. März 2023 22:21:19 CET L. E. Segovia wrote:
>> Based on the previous emails, it seems a key item wasn't covered:
>>
>> 6) Local builds with 3rdparty deps (replica CI environment)
>>
>> * uses our custom deps built from 3rdparty folder
>> * can be rebuilt locally
>>
>> Now, I'm totally unfamiliar with Craft's rationale and how it works, so
>> I have three questions coming from my own experience tinkering with
>> 3rdparty.
>>
>> - Ben had told me, if I'm not mistaken, about make DESTDIR being the
>> workhorse of Craft. I know that CMake may disallow it it in Windows:
>> https://cmake.org/cmake/help/latest/envvar/DESTDIR.html. So, does Craft
>> work with Windows dependencies, whether MSVC or Clang?
>
> I'm not sure I understand the question. Craft was originally developed to
> build KDE application on Windows and it works very well with MSVC 2019. It
> works equally well with MinGW. I don't know anything about builds with Clang
> on Windows.
For an example, if I can get e.g. the <insert number here> ZIPs that
comprise our dependencies, unpack them all into
C:/Projects/krita/msvc/install, and once I point VS Code's CMake Tools
to that folder, it will configure and build Krita without further
intervention. (Our build.cmd script is able to set such an environment
up today.)
>
>> - Does KDE sysadmin allow external retrieval of the packages for a
>> developer environment? If so, what's the procedure to recreate it using
>> Craft?
>
> The Craft cache is available for everyone, i.e. in particular for locally
> running builds with Craft. Using Craft is really easy once it's set up.
> (Setting it up is also pretty easy.) https://community.kde.org/Craft
>
>> - Does Craft require a certain directory layout? In other words, does it
>> support relocatable dependencies outside of Unix-based operating systems?
>
> Again, I'm not sure I understand what you mean. Since Craft was developed for
> Windows builds originally, I assume that the answer to your second question is
> yes. Craft builds all dependencies individually. For the application and all
> dependencies so called blue prints (written in Python) describe where to find
> the sources, what the dependencies are, and how to build it.
Same as above, I'm concerned about hidden hardcoded path requirements
that'll only trigger once the modules are unpacked in a personalized
location. Those can be evaded with DLL lookup paths on Windows, but
given that CMake and pkgconfig modules sometimes hardcode them, it can
cause a configuration failure in the first place.
>
> By the way, the semi-automatic (via manual GitLab jobs) publication of the
> builds on app stores, e.g. Microsoft Store, is also part of the full GitLab
> CI/CD story. See
> https://blogs.kde.org/2023/01/16/neochat-published-microsoft-store.
>
> Regards,
> Ingo
--
amyspark 🌸 https://www.amyspark.me
More information about the kimageshop
mailing list