<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
</head>
<body><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">On Sonntag, 28. April 2024 12:50:06 CEST Albert Astals Cid wrote:</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> El divendres, 19 d’abril del 2024, a les 11:17:09 (CEST), Anna (cybertailor)</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> Vyalkova va escriure:</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > Hi,</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > I'd like to develop Nim applications (with possible GUI support via</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > nimqt) but this language lacks support for any standard build system.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > So that's the thing I'm focused on right now (just happened to also be</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > my favorite thing).</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > Alternatives I considered:</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > 1. Procedure described in "CMakeAddNewLanguage.txt". First of all,</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > that's scary and second it doesn't cover my use case: Nim is not a</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > compiler but rather a transpiler. It compiles Nim code into C/C++/JS</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > code and then calls system compiler to get native binaries. These steps</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > could be separated.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > 2. Going with my own "nim-for-cmake" module library. That's possible but</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > requires lots of boilerplate code that can be avoided if these modules</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > become part of ECM.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > I've implemented an alternative build system for Nim's "nimble" packages</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > before so I know the necessary steps: 1) find the compiler, 2) find the</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > deps, 3) generate a json-script, 4) extract the depfiles, 5) execute the</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > script.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > Can I start making such ECM module or should it be a separate CMake</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> > module library?</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> You will probably find more people that know about ECM in kde frameworks</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> devel mailing list than here, this list is nowadays pretty dormant.</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> </p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> My suggetsion would be, talk to the cmake folks, they are a relatively open</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> bunch of people that like their build system to support as many things</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> possible and what you really want is to have support in cmake itself, not</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">> having to include some extra stuff to make it work.</p>
<br /><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">yes, right here, probably the "Development" channel:</p>
<p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;"><a href="https://discourse.cmake.org/">https://discourse.cmake.org/</a></p>
<br /><p style="margin-top:0;margin-bottom:0;margin-left:0;margin-right:0;">Alex</p>
<br /><br /><br /></body>
</html>