Projeny icon indicating copy to clipboard operation
Projeny copied to clipboard

Why only Windows support?

Open phrohdoh opened this issue 9 years ago • 9 comments

What in specific limits Projeny to Windows?

OS X / Linux support would be fantastic and I'm willing to lose some hours trying to get it to work if discussion can be had.

phrohdoh avatar Jan 10 '16 20:01 phrohdoh

There's just a few areas in the python code that need to be updated to support OSX/Linux. In particular, the part where it actually creates the directory links. Also, the area where it generates the visual studio solution might need to be adjusted to work with MonoDevelop.

I was actually hoping I could find someone to help with that, since I don't work on OSX and don't even have access to a OSX machine. So if you're willing to take a look that would be great

svermeulen avatar Jan 10 '16 20:01 svermeulen

I was looking into what would need to be done to add Mac support. I do not have time to setup the environment and implement it myself, but I will add what I've found.

JunctionUtil.py: would need to change islink to use os.path.islink, Windows does not support os.path.islink, so this would only be a solution for Mac.

JunctionUtil.py: would need to change readlink to use os.readlink, Windows (above windows vista) does support os.readlink, so this could be universal.

Most of the rest of JunctionUtil will likely need to be refactored on Mac for it to actually run, there's some pretty heavy windows code there. I'd recommend perhaps splitting JunctionUtil into two different Junction Strategies which are platform specific.

JunctionHelper.py: would need to update makeJunction's executeShellCommand to use os.symlink, supported on both Windows and Unix.

JunctionHelper.py: would need to update removeJunction's executeShellCommand for rmdir to use os.rmdir, supported on both Windows and Unix.

Many of the above suggestions are dependent on upgrading Projeny's Python dependency to be a minimum of Python 3.2

There's likely many other things that need to be done, but these are the first offenders.

galaxystar avatar Feb 09 '16 01:02 galaxystar

As it turns out I might actually be able to take a look at this before the next version since I may be obtaining a mac soon

svermeulen avatar Feb 09 '16 01:02 svermeulen

I'm using macosx and I can't use this project totally. I tried install de projeny.bat command tool with wine/playOnMac and I had some problems:

  • .bat interpreter load when I open the Projeny Unity plugin
  • Error for NTFS file system when try generate the project using prj --createProject command line

My suggestion: Did you think about implement the full features written in Python to C# into your Unity plugin? I think that is better to avoid platform problems. Maybe this will be a more easy path to get people engaged with this project!! :)

Another thing: "What do you think about AssetBundle Unity API? Did you think about create a integration?"

mfdeveloper avatar Apr 22 '16 21:04 mfdeveloper

It might have worked as 100% C#. You'd probably still want to have some parts as standalone C# exe applications though, so that you can at least initialize the project, since you can't open it in Unity until the directory links are set up. It's also nice if you need to integrate Projeny into things like a custom build pipeline, continuous integration servers, etc. or if you just like triggering things on the command line instead of needing to fire up Unity

Initially this project had no GUI at all and was just some python scripts to set up the directory structure and kind of grew from there.

As for AssetBundle integration, I'm not sure what you mean. Right now there is integration with .unitypackage files. My understanding is that AssetBundle's are more meant for runtime files and not development. You can't for example include code in them.

I don't think there's too huge an effort to port the python stuff to Mac, but I just haven't had time lately to do this unfortunately. Hopefully sometime soon I can find time to take a look

svermeulen avatar Apr 22 '16 22:04 svermeulen

After further thought, I think porting the python part to C# and then building a standalone exe for the command line stuff is probably the way to go. This would simplify the code base a lot and also get us closer to supporting mac.

svermeulen avatar Jan 18 '17 21:01 svermeulen

Yeahhhh @svermeulen I'm totally agree with this approach. You can create a .exe for windows and a .sh for Mac/Linux (I'm using Unity editor Linux version too).

mfdeveloper avatar Jan 25 '17 17:01 mfdeveloper

GNU/Linux and macOS can run CLI executables directly with mono so shell scripts are not required.

phrohdoh avatar Jan 25 '17 18:01 phrohdoh

I like the idea of rewriting to C#. I think it would become a lot easier for others to contribute.

Rewriting to C# can be done incrementally "inside-out" by doing something like this: https://stackoverflow.com/questions/7367976/calling-a-c-sharp-library-from-python. Could you perhaps create a branch, and checkin the folder/project structure you prefer? Maybe also create a separate issue or github project for the rewrite.

yacuzo avatar Sep 26 '17 08:09 yacuzo