<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="elementToProof">
Hi,</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="elementToProof">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="elementToProof">
How about two seperate blueprints.</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="elementToProof">
A src one in libs/_linux and one in binary/_win</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="elementToProof">
Yes that requires also a if in all blueprints using r but I guess it would be the most clean?</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="elementToProof">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="elementToProof">
Cheers,</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="elementToProof">
<br>
</div>
<div style="font-family: Calibri, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0); background-color: rgb(255, 255, 255);" class="elementToProof">
Hannah</div>
<div>
<div class="elementToProof"><br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
<hr tabindex="-1" style="display:inline-block; width:98%;">
<b>From:</b> Kde-windows on behalf of Thomas Friedrichsmeier<br>
<b>Sent:</b> Thursday, June 16, 2022 11:30<br>
<b>To:</b> kde-windows@kde.org<br>
<b>Subject:</b> Crafft: source and binary variants for the "same" blueprint
<div><br>
</div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">Hi!<br>
<br>
I'm wondering how to deal best with a situation where a blueprint<br>
should be built from source on some platforms, but installed from<br>
upstream binaries on others.<br>
<br>
Sepcifically, I'm talking about RKWard. Our dependency R needs to use<br>
upstream binaries on Mac and Windows(*), but, obviously, can only be<br>
built from source on Linux (for AppImage).<br>
<br>
I can think of three different approaches:<br>
<br>
1) Provide a single blueprint that, however, will do quite different<br>
things on the different platforms.<br>
2) Provide a single blueprint "name", but in separate platform specific<br>
variants, each in a _windows, _mac, or _linux folder.<br>
3) Provide two separate blueprints "r-binary", and "r-source", which<br>
each may not be available for all platforms. The depending blueprint<br>
(i.e. rkward in this case) will have a platform-specific "if" to depend<br>
on the most appropriate variant.<br>
<br>
1) is probably going to make for a rather messy blueprint file. 2)<br>
seems cleaner, but may still be somewhat non-obvious. 3) looks like a<br>
clean an very flexible solution. However, it could create conflicts<br>
between "r-binary" and "r-source", in case both are available on a<br>
platform.<br>
<br>
So which one to use?<br>
<br>
This is also my question behind<br>
<a href="https://invent.kde.org/packaging/craft-blueprints-kde/-/merge_requests/405" target="_blank" rel="noopener noreferrer" data-auth="NotApplicable">https://invent.kde.org/packaging/craft-blueprints-kde/-/merge_requests/405</a><br>
(perhaps I should have asked, here, in the first place).<br>
<br>
Thanks!<br>
Thomas<br>
<br>
----<br>
<br>
(*) Quick summary of the background: For one thing building R is<br>
somewhat difficult, because a fortran compiler is needed. More<br>
importantly, however, we need to support (thousands of) upstream<br>
provided add-on packages, which, for Mac and Windows, are provided as<br>
binaries, again.<br>
<br>
This will not work, reliably, with a custom compiled R. On Windows it's<br>
ABI details that will break our neck. On Mac it's the assumption of<br>
fixed absolute paths under /Library/Frameworks.<br>
</div>
</span></font></div>
</div>
</body>
</html>