On 12/08/2024 2:04 AM, kinke wrote:
Wrt. available options for linking D parts /statically/ into a project in another language, I'd go in this order:

 1. Use the D compiler as linker driver.
 2. With a non-D compiler as linker driver, inject the required linker
    flags for the D parts, something like |-L<path to libs dir>
    -lphobos2-ldc -ldruntime-ldc|, in the correct position.
 3. Otherwise merge all static D libs incl. druntime+Phobos to a single
    monolithic static lib (still depending on libc etc.) as an extra step.

Solution 3 could potentially be implemented in build systems like dub, which would then e.g. also allow you to create a 'standalone' fat static lib for a dub project with regular static-lib dub dependencies, merging all of them, not just druntime and Phobos.

This touches upon something I've been wanting for a while now, which is essentially a platform probe switch for D compilers.

It would replace dub's platform probe file, but would aid in cases like this where you don't want to be guessing locations of files.

But it could also offer:

All target triples, their linker flags (with respect to shared + static builds), file paths to druntime/phobos, and if the triple is default or supported by host.

  • Re: Build fully ... Alex Bryan via Digitalmars-d-learn
  • Re: Build fully ... kinke via Digitalmars-d-learn
    • Re: Build f... Denis Feklushkin via Digitalmars-d-learn
      • Re: Bui... kinke via Digitalmars-d-learn
        • Re:... Denis Feklushkin via Digitalmars-d-learn
          • ... kinke via Digitalmars-d-learn
            • ... Richard (Rikki) Andrew Cattermole via Digitalmars-d-learn
              • ... Denis Feklushkin via Digitalmars-d-learn
              • ... Richard (Rikki) Andrew Cattermole via Digitalmars-d-learn

Reply via email to