Ershany / Arcane-Engine

3D C/C++ Game Engine - Created By Brady Jessup
MIT License
515 stars 36 forks source link

Better dependency management #18

Open dev-abir opened 4 years ago

dev-abir commented 4 years ago

If someone tries to build your project, he is forced to use Microsoft Windows, with Visual Studio. It is better if you provide steps(or a script) to build for other platforms and compilers.

You may use CMake, or something similar. I know it is hard in C++. It would be better if we had package/dependency managers like maven, gradle in JAVA.

pavly-gerges commented 2 years ago

If someone tries to build your project, he is forced to use Microsoft Windows, with Visual Studio. It is better if you provide steps(or a script) to build for other platforms and compilers.

You may use CMake, or something similar. I know it is hard in C++. It would be better if we had package/dependency managers like maven, gradle in JAVA.

I am working on a simple building tool for c/c++ applications called 'Ccoffee', i am using it in a couple of my applications, it uses shell, if i succeeded to integrate that into the engine, would it be efficient ? and i think it may work for windows too on windows terminal.

EDIT : example of usage (the script also supports jni) : https://github.com/Arithmos-Algorithms/Arithmos/tree/master/build/compile https://github.com/Scrappers-glitch/AVR-Sandbox/tree/master/HelloBlink/build

It uses variables to dynamically compile the sources.

Poikilos commented 2 years ago

It uses variables to dynamically compile the sources.

@Scrappers-glitch Isn't that every build system? Why not use cmake or scons?

pavly-gerges commented 2 years ago

It uses variables to dynamically compile the sources.

@Scrappers-glitch Isn't that every build system? Why not use cmake or scons?

Well, yeah i wanted to have a very simple build that anyone could potentially change according to their needs, plus the ability to use jni easily.

dev-abir commented 2 years ago

I am working on a simple building tool for c/c++ applications called 'Ccoffee', i am using it in a couple of my applications, it uses shell, if i succeeded to integrate that into the engine, would it be efficient ? and i think it may work for windows too on windows terminal.

Interesting 🤔, but I would suggest use something like CMake or scons. There are multiple reasons:

Another thing... Your repo contains a "Dependencies" directory, which is problematic if you are willing to make this cross-platform (though I don't know exactly how much cross-platform these libraries are). Like ubuntu has a new lts release every 2 year.... Also, you may create a docker container just to build the sources, then just install the relevant runtime dependencies in the target machine. (Just a random idea 😅)

About windows.... Windows can't run .sh scripts afaik. Python or lua could be a better option, if you have to write a cross platform script.

pavly-gerges commented 2 years ago

Also, you may create a docker container just to build the sources, then just install the relevant runtime dependencies in the target machine. (Just a random idea )

Yep, i planning to do something similar soon.

I haven't used CMake outside of android environment before, i hope its only a matter of installing cmake and using it to run a cmake script from terminal directly without problems....i will try cmake.

Ershany commented 2 years ago

I just started being active on this project again. Let me set something up. Just started building out the engine editor. Will have something soon :)

pavly-gerges commented 2 years ago

I just started being active on this project again. Let me set something up. Just started building out the engine editor. Will have something soon :)

I loved the simple coding style the engine is following, so good work indeed, i will try to provide a C-make script to build the engine soon.

Ershany commented 1 year ago

I have some boilerplate setup for pulling dependencies. All that is left is building scripts to build the game for other things besides VS 2019+ At this time I won't be putting more effort into this issue until Arcane is farther in development and you can actually build games with it. By then it will be high priority to get more developers involved :)