Skip to content

Scriptable Supported Build Environments #18

@michaelvlach

Description

@michaelvlach

I strongly believe that Evoke should not hard-code its build environment specifics in C++ code. Let it be agnostic to the build environment it will use and use scriptable files (preferably JSON or something like that) to describe them that would be pulled in at runtime and used. For example I don't think it is a good idea to have the OS header files listed in the code.

I am talking from some experience because i have made something very similar to Evoke using Qbs. The Qbs has a JavaScript/QML based project files that allows you to do pretty much anything (including Evoke like project such as my qbs-autoproject). Qbs itself is using these QML files to know how to build on what platform, where to look for standard headers etc. etc. It is very flexible, transparent to the user and does not need recompilation every time one of the supported platforms gets an update (looking at Microsoft that just loves changing their paths). Users can even fix those themselves before you can release an update yourself.

That way you will also make it far simpler for contributors to help with supporting new platforms.

Given the current situation around Qbs I am considering my options and Evoke is currently my no. 1 to migrate to but I will need support for Windows and preferably the the #8 issue done before I would be able to do it. I have just disovered Evoke thanks to your talk at CppCon 2018 so I am glad I am not alone with this need for simple (or preferably "virtually" non-existent) build system.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions