On Fri, Aug 28, 2020 at 9:34 PM Jason Liu <jason...@umich.edu> wrote:
> On Fri, Aug 28, 2020 at 8:41 PM Ryan Schmidt <ryandes...@macports.org> > wrote: > >> >> >> On Aug 28, 2020, at 09:55, Jason Liu wrote: >> >> >>> However, later in the build, it looks like the MacPorts build system >> sets SDKROOT based off the value MACOSX_DEPLOYMENT_TARGET. >> >> >> >> As far as I know, MacPorts does not do that. >> > >> > Then it's possible that CMake is doing that. Regardless, if you take a >> look at the build log from either the 10.14 or 10.15 Azure builds, somehow >> an environment variable with the name SDKROOT is somehow getting set. The >> interesting thing, and something I haven't yet been able to figure out, is >> that the build log on my local machine with macOS 10.11 and Xcode 8.2.1 >> does not show this environment variable at all, even when I am doing a >> 'port -vst install'. >> >> MacPorts base sets the SDKROOT environment variable to the value of >> ${configure.sdkroot} if the value of ${configure.sdkroot} is not empty. By >> default, it is not empty on macOS 10.14 and later (because in 10.14 Apple >> removed the headers from /), and it is empty on 10.13 and earlier. >> > > Actually, this would perfectly explain the behavior that I've been seeing > when comparing my 10.11 machine with the 10.14 and 10.15 Azure builds. > Also, I just noticed that certain portfiles, like for mingw-w64, and the various qt ports, actually manually set ${configure.sdkroot} to an empty value. I'm going to try that and see whether it helps the blender port. -- Jason Liu On Fri, Aug 28, 2020 at 9:34 PM Jason Liu <jason...@umich.edu> wrote: > On Fri, Aug 28, 2020 at 8:41 PM Ryan Schmidt <ryandes...@macports.org> > wrote: > >> >> >> On Aug 28, 2020, at 09:55, Jason Liu wrote: >> >> >>> However, later in the build, it looks like the MacPorts build system >> sets SDKROOT based off the value MACOSX_DEPLOYMENT_TARGET. >> >> >> >> As far as I know, MacPorts does not do that. >> > >> > Then it's possible that CMake is doing that. Regardless, if you take a >> look at the build log from either the 10.14 or 10.15 Azure builds, somehow >> an environment variable with the name SDKROOT is somehow getting set. The >> interesting thing, and something I haven't yet been able to figure out, is >> that the build log on my local machine with macOS 10.11 and Xcode 8.2.1 >> does not show this environment variable at all, even when I am doing a >> 'port -vst install'. >> >> MacPorts base sets the SDKROOT environment variable to the value of >> ${configure.sdkroot} if the value of ${configure.sdkroot} is not empty. By >> default, it is not empty on macOS 10.14 and later (because in 10.14 Apple >> removed the headers from /), and it is empty on 10.13 and earlier. >> > > Actually, this would perfectly explain the behavior that I've been seeing > when comparing my 10.11 machine with the 10.14 and 10.15 Azure builds. > > -- > Jason Liu > > > On Fri, Aug 28, 2020 at 8:41 PM Ryan Schmidt <ryandes...@macports.org> > wrote: > >> >> >> On Aug 28, 2020, at 09:55, Jason Liu wrote: >> >> >>> However, later in the build, it looks like the MacPorts build system >> sets SDKROOT based off the value MACOSX_DEPLOYMENT_TARGET. >> >> >> >> As far as I know, MacPorts does not do that. >> > >> > Then it's possible that CMake is doing that. Regardless, if you take a >> look at the build log from either the 10.14 or 10.15 Azure builds, somehow >> an environment variable with the name SDKROOT is somehow getting set. The >> interesting thing, and something I haven't yet been able to figure out, is >> that the build log on my local machine with macOS 10.11 and Xcode 8.2.1 >> does not show this environment variable at all, even when I am doing a >> 'port -vst install'. >> >> MacPorts base sets the SDKROOT environment variable to the value of >> ${configure.sdkroot} if the value of ${configure.sdkroot} is not empty. By >> default, it is not empty on macOS 10.14 and later (because in 10.14 Apple >> removed the headers from /), and it is empty on 10.13 and earlier. >> >> >> > One more observation is that the value of this mysterious SDKROOT >> variable is getting set to '/Library/Developer/CommandLineTools/...' in the >> 10.14 Azure build, but is getting set to >> '/Applications/Xcode_11.6.app/Contents/Developer/...' in the 10.15 Azure >> build. >> >> Then I guess the 10.14 Azure build machine has the command line tools >> installed and the 10.15 Azure build machine does not. MacPorts is designed >> to use the CLT if available, and to use Xcode if the port says "use_xcode >> yes" or if the CLT is not available. >> >> >> > Theoretically, I shouldn't need a patch to do that. Blender's CMake >> script only runs through its SDK detection code using the xcodebuild >> command if the OSX_SYSTEM variable doesn't exist. I should be able to >> circumvent that code by simply setting a value for OSX_SYSTEM as one of the >> configure.args in the portfile. >> >> Ok great, if the build system supports setting a variable for that, then >> do that. >> >>