Closed georgemorgan closed 7 years ago
If I understand this correctly, you're talking about being able to automatically generate e.g. an Eclipse project for flipper. It should be pretty straightforward to template these. I think that depending on an entirely new build system tool simply to take advantage of this simple built-in IDE project templating is not worth the cost of these dependencies.
These templates can be much more complicated and have significant logic behind them. For example, look at the [Swift Package Manager's Xcode generation](https://github.com/apple/swift-package-manager/blob/master/Sources/Xcodeproj/pbxproj().swift)
Holy line length batman!
@harlanhaskins, is there a way to generate these Xcode projects from the command line? I figure Xcode probably represents the upper bound on complexity and interop difficulty, since the other IDEs we'd likely do this for are open source.
VisualStudio is not open source, and will be the other primary IDE to target aside from Xcode.
Luckily most VS operations can be performed with the command line.
What do you mean by VS operations?
By "operations" I mean features and capabilities of the software, i.e. creating a project.
You can create a project, build it, and run it on the command line (you can do that with Xcode too), but you can't add files to it or tell it which compilers to use from the command line. That's what you need the generators for. I would not recommend trying to write a generator for all these IDEs by hand when it's already done for us by well established projects such as the ones previously mentioned.
It's not yet clear to me precisely what degree of integration should be supported for each IDE. Let's make separate issues for each when the time comes.
It might be better just to design IDE-specific plugins that know how to access the Flipper build system.
It was determined that we will build plugins for each supported IDE.
Ninja and Cmake have facilities for the generation of IDE project files based on dependency lists and the like. The flipper build system should incorporate a tempting system that is capable of generating project files for the most ubiquitous integrated development environments whether it be through a custom templating system, or through the use of the tools above.