hell: Expose for cmake HELL_USED, HELL_REPOSITORY_URL, HELL_REPOSITORY_HASH, HELL_REPOSITORY_VERSION variables to allow cmake know from where installed code was downloaded.
This will allow to implement some smart features in cmake, for example download precompiled package and install it instead of build from scratch each time - it should speedup significantly commonly used peer-dependencies installation - for example in CI or even on dev PC if "download-possible" verification script would be smart enough(and will not give false-positives).
-
HELL_USED
- should be set by hell always to "ON" -
HELL_REPOSITORY_URL
- should be set by hell to URL used to download repository(taken from parent target description -source
field) -
HELL_REPOSITORY_HASH
- should be git version hash of current package repository ref. -
HELL_REPOSITORY_VERSION
- should be exact version calculated from hell semver of current package repository (version
field).
Theoretically we could do this other way but all of these have (at least from my pov cons, which are not acceptable):
- We could somehow in parent define how to download precompiled package.
cons:
- user of packet must maintain way how to download package and check if it will fit to his needs in every detail - so totally opposite to main idea behind hell(maintainer of packet know best how to configure, build and deploy it).
- We could have in packet
.hell.json
script
field which could be executed to download and install current package without even touching cmake.
cons:
- script will be logical mirror of cmake
- script may work not the same way as cmake works for non trial stuff (for instance detect other compiler etc.)
- non trivial script will need it own dependencies, which in fact may cause odd problems :/
- We could generate somehow hell "proxy" CMakeLists.txt to do this stuff.
cons:
- not flexible
- error prone
- hard to maintain
- impossible to use for other stuff
Edited by Tomasz Frydrych