A couple questions about new contributors

edited 2017 Dec 20 in Developers
Not addressed in the https://manual.dengine.net/devel section or elsewhere that I could find:

1 - Is there a general overview of the code layout of what's where, general build process, etc? I assume if you're familiar with CMAKE much of that may be easy/obvious, but it would be nice to have a nicer introduction. (What targets are available? Is there an easy way to skip building all the game libraries if you're just focused on one...)

2 - Is cross compiling supported?

3 - For people attempting to address a particular issue, is it better to discuss it here, or on the issue tracker? (I'm thinking about both higher-level "hey, I'm going to use approach X, what do you think?" and lower level "It works, but only one tuesdays" type issues.) Perhaps each place is preferable for each type?



Thanks.

Comments

  • Scandalon wrote: »
    1 - Is there a general overview of the code layout of what's where, general build process, etc? I assume if you're familiar with CMAKE much of that may be easy/obvious, but it would be nice to have a nicer introduction. (What targets are available? Is there an easy way to skip building all the game libraries if you're just focused on one...)
    Unfortunately this kind of documentation has not been written. This is partially because the codebase has been evolving, so any such documentation would quickly become outdated.

    I am happy to answer any questions you have, and of course I can update the manual also as needed.

    There is no build option to skip the game libraries. The CMakeLists.txt in apps/plugins controls which plugins get built, so it's relatively easy to comment out some of games from there, though, if you want to skip them.

    Overall, I recommend taking a look at the high-level CMakeLists.txt files.

    The build process is a typical CMake build & install, with the exception of the deployment directory being set with the custom PREFIX variable instead of CMake's out CMAKE_INSTALL_PREFIX.

    Regarding the high-level layout of the code, we have the following subdirectories:
    • apps/ — Client app, dedicated server, and their plugins.
    • apps/libdoomsday — Shared code for the client and server apps.
    • apps/plugins — Optional and required plugins: games, audio, data formats.
    • cmake/ — CMake macros and helper code.
    • external/ — 3rd party libraries.
    • tests/ — Simple test apps for the foundation libraries.
    • sdk/ — Foundation libraries, not particularly specific to Doomsday. These implement additional functionality on top of Qt, plus utilities like a scripting engine.
    • tools/ — Various utilities. The Shell is probably the most important here.
    2 - Is cross compiling supported?
    The build scripts do not have any options for cross-compiling. For each of the supported targets (as listed on the build reports) there is a physical/virtual build machine that's performing a native build for that system.

    A non-GUI build can also be configured (by disabling DENG_ENABLE_GUI) that can be run on Raspberry Pi etc. where there is no full OpenGL available but Qt 5 can still be used.

    What kind of a cross compile are you thinking of?
    3 - For people attempting to address a particular issue, is it better to discuss it here, or on the issue tracker? (I'm thinking about both higher-level "hey, I'm going to use approach X, what do you think?" and lower level "It works, but only one tuesdays" type issues.) Perhaps each place is preferable for each type?
    General discussion is well suited for the forums, but anything that is related to a particular issue or a feature being implemented should be in the Tracker. The comment system in Redmine isn't the most comfortable to use, so I would at least start discussions here on the forums until a suitable tracker issue exists.
Sign In or Register to comment.