sschmid / Entitas

Entitas is a super fast Entity Component System (ECS) Framework specifically made for C# and Unity
MIT License
7.12k stars 1.11k forks source link

Contribute to Entitas (Windows) #586

Open sschmid opened 6 years ago

sschmid commented 6 years ago

Customizing or Contributing to Entitas

To customize or contribute to Entitas, please follow CONTRIBUTING.md

The bash build scripts should work out-of-the-box for macOS / Unix. Minor adjustments or an updated CONTRIBUTING.md might be necessary to make it work on Windows.

It's those 3 commands that need to work for local building, testing and syncing new code to the Unity projects

$ ./Scripts/bee tests $ ./Scripts/bee build $ ./Scripts/bee sync

At a first glance, you probably have to either install mono on windows or replace xbuild with msbuild. Other than that it's simple bash, so we should be able to make it work on Windows.

Let's find out together, Windows user

WoLfulus commented 6 years ago

Bash scripts won't work on windows at all. It might work only on Windows 10 and yet you'll need developer mode activated and ubuntu subsystem installed.

Writing bat files (which IMO is the best way to do it) that complex can be quite challenging, but it's possible.

sschmid commented 6 years ago

What about Powershell or Cygwin? They do run bash, don’t they?

WoLfulus commented 6 years ago

Cygwin should work just like ubuntu subsystem. Not sure.

PS should work a little better than bat files (more powerful and flexible) but I always struggle with permission stuff trying to run stuff with it.

I did a quick test with bash from ubuntu subsystem and it asked for xbuild as you said, but it's not that easy to just type msbuild instead of xbuild because msbuild is never installed to $PATH on windows.

You'll probably need to invoke visual studio's scripts to make it available to the terminal first, but it always changes between versions of VS (not sure too).

Also, invoking bee script with bash -c ./Scripts/bee build for example, messes with arg parsing and it prints all the available commands instead