JuliaLang / PackageCompiler.jl

Compile your Julia Package
https://julialang.github.io/PackageCompiler.jl/dev/
MIT License
1.39k stars 185 forks source link

Implement a pre-build configuration process and datatype #929

Open sjkelly opened 3 months ago

sjkelly commented 3 months ago

This is intended to be an API-compatible refactor to make future extensibility and configuration of PackageCompiler.jl far simpler. The core idea is to implement a configuration process, and corresponding output datatype to be consumed by the build process.

This conceptually splits the process of building sysimg/app/libs, from the high-level logic determining names, build tools, flags, etc. The benefit of this is that it immediately commonizes code that was duplicated amongst the three of: create_sysimage, create_library, and create_app. It will also make it far simpler to allow for configuration and propagation of flags like ldflags and cflags which are currently not easily exposed in the build process.

This is a rough sketch of the idea, and so far the API seems to be preserved acceptably. Feedback and design input would be much appreciated. I suspect the Conf type may need some indication of mode since some terms are overloaded and may not make sense to define in all contexts.

codecov[bot] commented 3 months ago

Codecov Report

Attention: Patch coverage is 96.15385% with 5 lines in your changes are missing coverage. Please review.

Project coverage is 85.19%. Comparing base (8cd96a1) to head (15b3656).

Files Patch % Lines
src/PackageCompiler.jl 96.15% 5 Missing :warning:
Additional details and impacted files ```diff @@ Coverage Diff @@ ## master #929 +/- ## ========================================== + Coverage 84.62% 85.19% +0.57% ========================================== Files 3 3 Lines 826 831 +5 ========================================== + Hits 699 708 +9 + Misses 127 123 -4 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.