-
Notifications
You must be signed in to change notification settings - Fork 362
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove logic from outside build - 0.5.0 only #2605
Conversation
Now you can run the second task as well to show the entire build config.
|
6ea9ede
to
5e8eff8
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I really like this change, but let's schedule it for 0.5.0, it would be way easier for maintainers of the mill, scala-cli or other build tools to handle that.
Sounds good. I need to change the artifact basename to be in the NativeConfig vs Config. I also think it might be nice to drop the I plan to do some followup work to fix the discovery issues and capture the discovered items to speed up the build. |
5e8eff8
to
b3aa3ba
Compare
344d6cf
to
2473e29
Compare
51fe29a
to
70be30f
Compare
I have heard rumblings about wanting C and C++ options separate and perhaps we can separate include and link paths from the options. Perhaps we should have the conformance option separate as well like the standard e.g. I also plan to cache the discovery - it only needs to happen once (reloaded when the build is reloaded). Not sure how that works for different platfroms yet. With the properties file, we could also cache those for each sub-project to avoid extra computation. Also, checking time stamps on the native files could avoid recompilation similar to |
Check if this is supported for workdir - #2438 |
a895fe3
to
5eb6c94
Compare
@WojciechMazur This is ready for review. I would prefer to do several smaller PRs on the way to better tools rather than a big bang that is hard to review. |
13e1f4e
to
d1ba21b
Compare
sbt-scala-native/src/main/scala/scala/scalanative/sbtplugin/ScalaNativePlugin.scala
Outdated
Show resolved
Hide resolved
e7f0dcc
to
bc10a2f
Compare
dca39b9
to
0f4f8af
Compare
The idea here is to not have any build or naming logic in the build file. We don't want all the build tools (sbt, Mill, Gradle, Maven, etc.) re-implementing the same logic.
This removes
nativeLink / artifactPath
which is called for every single project, scala version, and for normal and test configuration so that makes the sbt load much slower. Note: add a println of the value in the build and see for yourself.The idea is also to internalize any caching or other tricks needed to speed up compilation. Even though build tools typically handle recompilation caching some of this is already in the build tools so I think this should be handled within. This is not planned for this PR however.
I would hope that we can finalize this and then attack the Library and Rust PRs after because they can build on this idea.
Note: we have this PR which may need considering. I don't quite understand the specific use in the Portsfile. #2362