On Fri, Sep 22, 2023 at 11:18:47AM +0200, Страхиња Радић wrote:
> ./build.sh

I did not advocate for `build.sh`.

And the wikipedia article I linked explains how unity-builds works
pretty well already: https://en.wikipedia.org/wiki/Unity_build

But in short: you simply include any `.c` file into one. There's zero
problem adapting to a different compiler or compiler flags. In fact,
it's *easier* to do than a makefile (which I also said on my previous
mail).

        $ gcc -o exe src.c
        $ clang -o exe src.c   # no need to "clean" anything

Doing cross-platform is also easy by just making your core application
"platform-agonistic" and having the "platform layer" provide platform
specific functionality. For example, here's a hypothetical
`app-windows.c` file:

        #include "app.c"     // platform-agonistic application
        // ...
        // now add windows specific functionalities and
        // an entry point (i.e main function) below.

And the same for a "app-posix.c". And then you compile in a single
command, for example:

        $ cc -o exe src-posix.c    # on posix platforms
        $ cl src-windows.c [...]   # on windows with msvc without requiring 
mingw or similar

- NRK

Reply via email to