-
Notifications
You must be signed in to change notification settings - Fork 0
Allow language build profiles #21
Description
Profiles are collections of build settings e.g. JavaIntelliJ vs JavaGuava vs JavaApache vs JavaAndroid vs Java6 (controls things like the style of toSting() and hashCode() overrides whether to assume guava is globally available as a base library, joda time vs java8 time etc., getFoo vs Foo functions etc)
Javascript would be more messy. It could be things like use es6 for classes or generate legacy style constructors. modules or no modules etc (that is mostly mitigated by the large prevalence on Babel in most build workflows). The other axis is whether to generate flow type defs vs flow type annotated code, typescript etc.
In C / C++ (do we want that even?) we need support for stylistic things like primitive constants get a #define with a name prefix vs name prefixed init constructor functions (modular C style).
Finally, we need a path for migrating existing code bases by possibly adopting an existing coding convention.