Re: 'make install' not supportive of only using admin for the install and not the compile
toggle quoted messageShow quoted text
There is some convenience CMake built into OCIO which will download (to the build dir), compile and statically link core dependencies at build time. In OCIO v1 the core dependencies were embedded in the repo so no download was necessary (though they were still unpacked to the build dir and patched before building), but we had to change that when we moved over to the ASWF to adhere to FOSS standards.
The CMake option OCIO_INSTALL_EXT_PACKAGES is what controls this behavior. It defaults to MISSING so that only missing components are downloaded. It can also be set to ALL to make a fully self-contained OCIO core build, or NONE to prevent any of these steps. Your solution to set <package>_ROOT=<my location> is the right one.
OCIO sees the build dir (where CMake is run from) as a temporary workspace to get OCIO built, so will create files in there as needed, as well as populate templated files from the source tree. That's why we don't recommend running a build from the source tree, which will pollute the structure considerably.These downloaded dependencies are not installed on your system's install location (CMAKE_INSTALL_PREFIX) though, just statically linked into OCIO binaries and considered throw away beyond that. It is not very common for OSS projects to download and build dependencies for you automatically, but the build directory being a mutable workspace is generally necessary, for CMake to generate its make files if for nothing else.
So in summary, there are generally three locations in play when building a project: source, build, and install locations. The source location should remain untouched during a build (unless you build in the source tree). The build dir is fair game for the build process to write to as needed. The install dir should only receive final build files which the project has instructed CMake to install. In a typical build the install dir is the one needing permissions since it could be a system location.
Let me know if I misunderstood your issue question though.
On Wed, Dec 30, 2020 at 11:32 AM Joseph Goldstone <joseph.goldstone@...> wrote: