substrate
substrate copied to clipboard
streamline GraalVM version logic
Substrate should decide what GraalVM version it needs to perform compilation, dependent on the projectConfiguration. The logic needs to be documented clearly, and can be the following:
- if the system env variable GRAALVM_HOME is defined, Substrate will first check if that version matches the requirements (e.g. on iOS, we need 20-dev). ** if the version is ok, Substrate will use that one ** if the version is not ok, go to next step (or bail?)
- if GRAALVM_HOME is not set, Substrate will decide what version to use, based on the projectConfiguration ** Substrate will then search its cache (if it finds a cache, which is not the case when running tests) for that version. If it finds that version, use it ** If no such version is found (or there is no cache), Substrate will download the required version (e.g. 19.3 from graalvm.org 20.0-dev from gluonhq)
We have first bullet in place. Second one leads to a similar discussion as in #34 I believe this can be closed @johanvos ?