MSVC development

I am working on a language integration & was somewhat unsatisfied with development under MSVC. So I decided to take the SCons build system out and made a "true" MSVC Godot project.
took me some effort to make a "MSVC-solution" using static libraries for all the subcategories.
finally got it working & compiled a "debug_Tools_enabled" configuratioin ( Win32 ).
Next steps are to add more config's - since I compiled to static libraries much smaller exes should be possible for runtimes.
For me it seems to compile much faster without the SCons & some MSVC features works better.
I am willing to share the MSVC files - it's just a 7z file with all msvc files in ( < 1MB )
please email me if you are interested
Frank


Tags :

Comments

  • KioriKiori Posts: 199Admin

    Move this to General Chat, Forum chat is solely for forum specific stuff.

    This is fairly interesting, I'd recommend you publish a build so ppl could see/test it. And maybe share more details somewhere.(like in a blog post, or here if you want)
    Also, if you want ppl to send you emails, you have to edit your profile and check the option to let other see your email. Or you could publish it on your post.

    Nice work, I think down the road a lot of people might be looking into that.

  • vnenvnen Posts: 25Member Godot Developer

    Hey, can you publish this somewhere (like in GitHub)? I would like to see how much faster it is.

    I noticed that calling SCons inside VS is slower than calling from a command prompt. There are also some tweaks possible in the SCons files to make the build faster.

  • frank-lesserfrank-lesser Posts: 6Member

    I will do it soon as possible - in the moment I am fighting adding more configurations ( e.g release_Tools_enabled ), debug build of Godot-Engine goes fast m release build was slow since I made the mistake to switch whole program opt. on.
    hope to have a version for publishing on RitHub on monday.

  • frank-lesserfrank-lesser Posts: 6Member

    here is msvc2015.7z
    make a backup of your master folder - can be that it does not go well. I haven't tested it from he 7z file yet.
    unpack it in the Godot-master folder.
    then open the .sln file with MSVC 2015.
    there is a Docs subfolder which you can delete from the project-map.
    the exe which is build is the godottalk-project ( you can rename it back it to godot .
    it is just the name for my Smalltalk language integration .

    The module which I added is Module_voxel ( the voxel addition to Godot from GitHub )
    I have not added the gles3 branch yet.
    I have taken care not to modify any files in the branch itself - but I remember to have renamed nrex.inc to nrex.hpp
    files ( the extension to be found by the matching mechanics of MSVC's IDE ).

    in the IDE it maybe when you build the whole map ( it consists of 72 projects ) that the IDE hangs after a while during the initial build.
    don't worry kill the process & open & build it again - it continues where it stopped.
    seems to me that MS starts to much processes in parallel ( I am on Win10-64).
    there are some complains during the build - I didn't add the DEPRECIATED PP Option but at least a few bugs should be removed:

    c:\dev\godot-master\thirdparty\openssl\crypto\dsa\dsagen.c(95): warning C4716:
    c:\dev\godot-master\scene\2d\canvas_item.cpp(377): warning C4715:
    c:\dev\godot-master\core\io\stream_peer.cpp(495): warning C4715:
    c:\dev\godot-master\tools\editor\plugins\editor_preview_plugins.cpp(757): warning C4723:

    then choose either release_Tools_enabled or debug_Tools_enabled configuration and build it.
    Once the exe is build - rebuild after change goes within seconds on my laptop.
    I will add configurations & improve it as soon as possible - next steps are to allow for smaller executables ( e.g. a GUI only version only for the "ProjectManager engine" ) & to add our MSVC Unix cross compilation tools.

    please give me feedback
    Frank

    P.S if it is working maybe someone can add it to GitHub & if it isn't working just complain & I shall install it on a clean machine next week.

  • frank-lesserfrank-lesser Posts: 6Member
    edited November 2016

    hmm I run into a problem-
    next step - after having fast builds of release_Tools_enabled & debug_Tools_enabled builds
    was trying to build a GodotTalk-Gui build a Godot-Engine which only contains the GUI - nothing else.
    it should be small ( maybe exe will be 1 MB ) and as a POC the ProjectManager could be build with it.
    this would me save a lot of time making what I want - a new language integration.
    and if this generaly works it should solve the problem of huge exe's.

    So I added a few PP defs ( I don't want to make too much of changes in the Godot source - ideally no changes at all ) but I have to change it.

    VISUALSERVER_ENABLED;AUDIOSERVER_ENABLED;PHYSICSSERVER_ENABLED;PHYSICS_2D_SERVER_ENABLED;
    SPATIALSOUNDSERVER_ENABLED;SPATIALSOUND_2D_SERVER_ENABLED;CONVEX_DECOMP_DRIVER_ENABLED;
    NREX_DRIVER_ENABLED;SCENE2D_ENABLED;

    just to describe what I did to take the PHYSICSSERVER out I have changed the code in os_windows.cpp to use the PP Def

    #ifdef PHYSICSSERVER_ENABLED
        physics_server = memnew( PhysicsServerSW );
        physics_server->init();
    #endif
    

    but that is a bad idea - since I have to add a new configuration which has PHYSICSSERVER_ENABLED enabled for the platform or not.
    So source must be changed.
    I would suggest to have a global - which tells us which configurations are used and use that instead of hard code calls.

    Frank.
    PS to the admin(s) - maybe it should posted somewhere else forgive me and move it, thx

  • KioriKiori Posts: 199Admin
    edited November 2016

    @frank-lesser
    It's your post, and I did mention you could use it to explore your original statement and tell us about how/where, everything.
    Fell free to dabble, this is general chat anyways and this subject isn't even off-topic, since this is very on-topic as it pertains to Godot builds.

    So, don't sweat it, have fun and let us know how it all goes.
    Also, if at any moment you wanna start a new thread, you can. I don't see the need, but you're free to. ;)
    You can also decide to change the title at some point, it's your post.
    And if you require any assistance with anything, let me know.

Sign In or Register to comment.