Windows projects / solutions building...

TarmikTarmik Posts: 25Member
edited October 2017 in Resources

Hi !

I'm by myself quite newbie to godot, but my current target is Visual studio and windows, and later on also Android (and Visual studio as well for it).

I found that scons was bit too heavy tool for projects building, and reported godot to syncProj.

syncProj is my own written tool for windows, it's not portable like scons, and aim to target only to windows.

Documentation: https://docs.google.com/document/d/1C1YrbFUVpTBXajbtrC62aXru2om6dy5rClyknBj5zHU/edit
Source code: https://sourceforge.net/p/syncproj/code/HEAD/tree/

Initial script, which I wrote for godot resides now here:
https://drive.google.com/open?id=0B9oDi0MZfcs0a09fRWlvc0haWEE

I had to add more functionality to syncProj, just to get json parsed out of box, so last commits 136 & 137 were made purely for godot.

I will not be surprised if something is configured incorrectly or directly wrong, but I'll try now to analyze bit deeper UI elements in godot, and maybe extract some functionality from godot to myself.


Tags :

Comments

  • TarmikTarmik Posts: 25Member

    Managed to update godot.cs script to produce reasonable .exe.
    For now I have 3 main configurations: Debug, ReleaseDebug, Release. All are using symbols.
    From them only Release can start with reasonable start up time (~ 5 seconds), other starts much slower - more than 20 seconds.

    Also .exe size seems to be reasonable - 26 Mb against the one which is built with scons 28 Mb.

    But speed optimization must be enabled, otherwise .exe's size grows and also startup time is bigger.

    I'm really amazed how much functionality is embedded into godot.exe by 26 Mb.

    By disabling C++ exceptions from project settings:
    CCpp_CodeGeneration_EnableCppExceptions(EExceptionHandling.NoExceptionHandling);
    size of .exe is reduced by 20%, and
    by disabling incremental build:
    Linker_General_EnableIncrementalLinking(false);
    50% gets dropped out.

    https://sourceforge.net/p/syncproj/code/142/log/?path=
    141 & 141 commits to syncProj were made for godot compilation needs.

  • TarmikTarmik Posts: 25Member

    Now I have somehow functional godot project in Visual studio, can now strip out to very basics...

  • TarmikTarmik Posts: 25Member

    Fixed some of run-time errors, now all games which I have tested also works fine. (godot.cs updated)

  • TarmikTarmik Posts: 25Member

    Overall debug / compile performance was really worrying me, so I have tried to investigate where time goes to what. But cpu sampling or instrumented performance measuring did not tell me where exactly time went, until I have managed to come up with satisfying solution - I've enabled speed optimization for all core/*.cpp files - after that 'ReleaseDebug' starts up much faster.

    Also turned on incremental linking, now it links in no time - useful for debugging.

    'Debug' configuration still is using "full debug", meaning startup time is really slow. ( > 25 seconds).


    filter("files:core/*.cpp", "(Release|ReleaseDebug)");
    optimize("speed");
    filter();

    Now all files except core are compiled without optimizations, but core is compiled with optimizations.

    Also changes kind to console:

    kind("ConsoleApp", "windows");

    Otherwise godot would launch console window all the time for android adb.

  • TarmikTarmik Posts: 25Member

    godot-demo-projects-master\3d\material_testers

    does not work correctly with my ReleaseDebug build, I suspect class / structures fields reordering differences between optimize for speed and non-optimized versions. Will try to fix this maybe later - for now I'm not so interested.

    Now managed to show up only one dialog with one button (about), will continue thread on this post:

    https://godotdevelopers.org/forum/discussion/18719/user-interface-elements-for-godot

Sign In or Register to comment.