flipper-io / flipper

Flipper is a development platform that can be controlled from any programming language.
https://www.flipper.io/
Apache License 2.0
70 stars 15 forks source link

Remove necessity for symbolic links. #29

Closed TravisWhitaker closed 8 years ago

TravisWhitaker commented 8 years ago

Symbolic links can cause lots of problems. Here are some of them.

The use of symbolic links is necessitated by the current build system. I'm working on a new build system that does not require any symbolic links.

georgemorgan commented 8 years ago

Symbolic linking allows certain aspects of the build system to be abstracted. Flipper's build system used to not have symbolic links and was very difficult to navigate. I would advise keeping them, but I'm open to suggestions as to how the build system could be improved. The management script is not strictly necessary, it is simply a tool that makes it easy to stage new modules and drivers into the build system, something the console will eventually take over.

TravisWhitaker commented 8 years ago

Symbolic linking allows certain aspects of the build system to be abstracted.

Can you be more specific? Specifically, which (if any) abstractions do you feel are best served by symbolic links? I'm especially curious given the limited machinery for defining abstractions provided by make.

The management script is not strictly necessary, it is simply a tool that makes it easy to stage new modules and drivers into the build system, something the console will eventually take over.

It would be nice if no tool was required to stage new modules and drivers.

georgemorgan commented 8 years ago

We've had many thorough discussions regarding the benefits of the new build system. The new organization makes it much easier to work on a single module at a time due to the fact that all of the files corresponding to that module are localized.

It's much nicer to have a tool create applications, modules, and drivers for you from a given template than manually constructing all of the files. It also ensures consistency.

TravisWhitaker commented 8 years ago

The new organization makes it much easier to work on a single module at a time due to the fact that all of the files corresponding to that module are localized.

This is achievable without symbolic links.

It's much nicer to have a tool create applications, modules, and drivers for you from a given template than manually constructing all of the files. It also ensures consistency.

It would be nice if it weren't a headache to manually construct applications, modules, and drivers.

georgemorgan commented 8 years ago

Okay, I'm open to see what you can come up with.

And yes, it would be. Symlinks aren't needed for modules or applications, only drivers (they have more than one target).