-
Notifications
You must be signed in to change notification settings - Fork 9
Ponderings on mutability of source builds and binary prebuilts #667
Comments
So I think there should be a configurable location where BAM prebuilts can reside. Along a similar mechanism for how there is a configurable source archive location. However, standard locations for installs per OS (c:\program files, /usr/) should also be checkable I think. |
Normal build modules shouldn't need to be changed. Is the logic to find binaries in UseSDK though, or per Module? |
An SDK Module needs to be able to identify the files on disk that form its SDK. I imagine there can be 4 states:
May not want to deal with all these, in case they are expensive? e.g. imagine the workflow in determining if a Boost or Qt implementation were complete. Could leave it to the compiler/linker to tell the user if something is broken. Does it do this in script? At the very least, a version check is probably needed. |
You should not be able to distinguish a BAM built binary with one from another build system. |
Recently, I've discovered that CMake's
find_package
is more limiting than I first thought.It will only ever find binary prebuilts. Even if you've done an
add_subdirectory
for the sought package, and then afind_package
(potentially in a thirdparty CMakeLists.txt), it will never detect that you've asked the package to build from source. Never. You have to modify each use offind_package
to check if it wasn't found, etc.BuildAMation is currently at the other end of the spectrum - every Module except those marked as [Prebuilt] are built from source. I definitely want the option to choose whether I can use a prebuilt if it's available.
And herein lies the problem. How can that happen?
I did have thoughts about an 'install' process that would then write a new BAM script for a binary built package. But then this is very disjoint from where the package is maintained.
I'd much rather have it so that a package's BAM scripts are mutable between prebuilts and source; either with the existence of binaries, or a flag to force source builds.
This seems difficult thought.
The text was updated successfully, but these errors were encountered: