Do you think, then, that it would be smart for our externalpackages.cmake to 
preemptively set Boost_NO_BOOST_CMAKE prior to the find? Is there any downside 
to that?

If you think you have the right fix already, a PR would be appreciated, since I 
don't have a good direct way to test it (works for me, for the reasons you 
explain).

        -- lg


> On Jul 14, 2019, at 11:11 AM, Jim Hourihan <[email protected]> wrote:
> 
> 
> After digging some more here’s the problem:
> 
> OIIO is expecting $Boost_INCLUDE_DIRS to be set if FindBoost.cmake succeeds; 
> which is completely reasonable. In the case where FindBoost.cmake uses the 
> installed boost cmake config files that variable is not set and that’s what’s 
> causing the failure in include_directories (SYSTEM "${Boost_INCLUDE_DIRS}”). 
> 
> The FindBoost.cmake docs says:
> Example to find Boost headers only:
> 
> find_package(Boost 1.36.0)
> if(Boost_FOUND)
>   include_directories(${Boost_INCLUDE_DIRS})
>   add_executable(foo foo.cc <http://foo.cc/>)
> endif()
> 
> Which is similar to what externalpackages.cmake is doing and should be 
> expected to work regardless of which path FindBoost.cmake takes.  Also its 
> docs say:
> 
> saves search results persistently in CMake cache entries:
> Boost_INCLUDE_DIR         - Directory containing Boost headers
> Boost_LIBRARY_DIR_RELEASE - Directory containing release Boost libraries
> Boost_LIBRARY_DIR_DEBUG   - Directory containing debug Boost libraries
> Boost_<C>_LIBRARY_DEBUG   - Component <C> library debug variant
> Boost_<C>_LIBRARY_RELEASE - Component <C> library release variant
> 
> 
> And indeed it does that IFF it doesn’t use the boost cmake files. So… I think 
> there’s either a bug in FindBoost.cmake or its documentation. Either way 
> forcing FindBoost.cmake to avoid using the boost cmake path by setting 
> Boost_NO_BOOST_CMAKE to ON before calling find_package() fixes the issue. 
> 
> I’m kind of new to GitHub but I can make a PR for that if you’d like.
> 
>    -Jim
> 
> 
>  
> 
>> On Jul 13, 2019, at 10:19 PM, Larry Gritz <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> So to tie up this thread, does it point to anything we should be doing 
>> better on the OIIO side?
>> 
>>      -- lg
>> 
>> 
>>> On Jul 12, 2019, at 7:17 PM, Jim Hourihan <[email protected] 
>>> <mailto:[email protected]>> wrote:
>>> 
>>> 
>>> Looking over FindBoost.cmake I’m not sure what’s happening, but if I pass 
>>> this to cmake:
>>> 
>>>     -DBoost_NO_BOOST_CMAKE=ON
>>> 
>>> the problem also goes away. In that case FindBoost.cmake behaves just like 
>>> with the other boost versions and doesn’t use the boost cmake files. I have 
>>> yet to grok cmake fully so debugging FindBoost.cmake is a little outside my 
>>> comfort zone. Anyway, I’ll be glad to help out if anybody wants to try 
>>> something else. Otherwise this seems like an OK solution for me right now.
>>> 
>>>    -Jim
>>> 
>>>> On Jul 12, 2019, at 4:34 PM, Jim Hourihan <[email protected] 
>>>> <mailto:[email protected]>> wrote:
>>>> 
>>>> 
>>>> Ok. I switched to linux with cmake 3.13.4 with similar results. I also 
>>>> noticed that if I remove the $PREFIX/lib/cmake dir 1.70 makes before 
>>>> building OIIO then I have no problems. 
>>>> 
>>>> 1.53, 1.61, 1.66 all work fine but they don’t install anything in 
>>>> $PREFIX/lib/cmake so maybe not surprising.
>>>> 
>>>> Larry, on your machine is there a cmake dir in brew’s lib dir? Is it 
>>>> possible its not using boost’s cmake files for you?
>>>> 
>>>> I’ll continue looking.
>>>> 
>>>>    -Jim
>>>> 
>>>> 
>>>>> On Jul 12, 2019, at 3:41 PM, Larry Gritz <[email protected] 
>>>>> <mailto:[email protected]>> wrote:
>>>>> 
>>>>> It's always something.
>>>>> 
>>>>> 
>>>>>> On Jul 12, 2019, at 3:38 PM, Jim Hourihan <[email protected] 
>>>>>> <mailto:[email protected]>> wrote:
>>>>>> 
>>>>>> 
>>>>>> No, but I can try that. The custom prefix build looks pretty kosher to 
>>>>>> me. Let me mess with it some more and see if I can figure it out. Maybe 
>>>>>> I forgot to turn the computer on or some other stupid problem. 
>>>>>> 
>>>>>>    -Jim
>>>>>> 
>>>>>>> On Jul 12, 2019, at 3:31 PM, Larry Gritz <[email protected] 
>>>>>>> <mailto:[email protected]>> wrote:
>>>>>>> 
>>>>>>> Dumb question: If you're using MacPorts/Brew, did you try installing 
>>>>>>> Boost via whichever of those you like, and see if OIIO/CMake just picks 
>>>>>>> it up properly without the custom boost build?
>>>>>>> 
>>>>>>> I'm just wondering if that custom boost build has laid out the files in 
>>>>>>> some funky way that is confusing things?
>>>>>>> 
>>>>>>> 
>>>>>>>> On Jul 12, 2019, at 3:26 PM, Jim Hourihan <[email protected] 
>>>>>>>> <mailto:[email protected]>> wrote:
>>>>>>>> 
>>>>>>>> cmake version 3.14.2
>>>>>>>> 
>>>>>>>> Its installed in /opt/local so that’s from macports if I remember 
>>>>>>>> correctly. I’m being super slow here so I haven’t tried 1.53 yet.
>>>>>>>> 
>>>>>>>>   -Jim
>>>>>>>> 
>>>>>>>> 
>>>>>>>>> On Jul 12, 2019, at 3:15 PM, Larry Gritz <[email protected] 
>>>>>>>>> <mailto:[email protected]>> wrote:
>>>>>>>>> 
>>>>>>>>> You could say that about any of our FindBlah.cmake files -- they need 
>>>>>>>>> to be kept up to date if the dependencies change in some way that 
>>>>>>>>> causes the old find's to no longer work. But sure, I see your point.
>>>>>>>>> 
>>>>>>>>> Is it worth a check in externalpackages.cmake to see if cmake < 1.14 
>>>>>>>>> && boost >= 1.70 and if so, print a warning that says that this combo 
>>>>>>>>> may not work and if their build is failing to find boost, they should 
>>>>>>>>> try upgrading cmake?
>>>>>>>>> 
>>>>>>>>> Aside: I build just fine on my Mac laptop with Boost 1.70 installed 
>>>>>>>>> by homebrew.
>>>>>>>>> 
>>>>>>>>> Jim, do you know which version of cmake you are using?
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>>> On Jul 12, 2019, at 2:58 PM, Thiago Ize <[email protected] 
>>>>>>>>>> <mailto:[email protected]>> wrote:
>>>>>>>>>> 
>>>>>>>>>> What happens when the oiio FindBoost.cmake you include becomes too 
>>>>>>>>>> old? It's not too hard to install newer cmake builds...
>>>>>>>>>> 
>>>>>>>>>> On Fri, Jul 12, 2019, 3:28 PM Larry Gritz <[email protected] 
>>>>>>>>>> <mailto:[email protected]>> wrote:
>>>>>>>>>> Do you think, then, that we should embed a copy of FindBoost.cmake 
>>>>>>>>>> into OIIO, so that people with older cmake and newer boost don't 
>>>>>>>>>> have to install a whole new cmake? Does it rely on any new cmake 
>>>>>>>>>> features (I mean, how old a cmake will run cmake 1.14's 
>>>>>>>>>> FindBoost.cmake)?
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>>> On Jul 12, 2019, at 11:37 AM, Nathan R <[email protected] 
>>>>>>>>>>> <mailto:[email protected]>> wrote:
>>>>>>>>>>> 
>>>>>>>>>>> It sounds like the FindBoost.cmake module distributed with CMake 
>>>>>>>>>>> itself had to be updated in order to support Boost 1.70+, so it may 
>>>>>>>>>>> just be a matter of updating CMake (or grabbing a fresh copy of 
>>>>>>>>>>> FindBoost.cmake from the repo).
>>>>>>>>>>> 
>>>>>>>>>>> Possibly relevant:
>>>>>>>>>>> 
>>>>>>>>>>> https://cmake.org/pipermail/cmake/2019-April/069324.html 
>>>>>>>>>>> <https://cmake.org/pipermail/cmake/2019-April/069324.html>
>>>>>>>>>>> https://gitlab.kitware.com/cmake/cmake/issues/18865 
>>>>>>>>>>> <https://gitlab.kitware.com/cmake/cmake/issues/18865>
>>>>>>>>>>> https://github.com/Kitware/CMake/commit/266808c4130a0b40aed236381707462a9368a1eb#diff-555801259d7df67368f7deab1f9deacd
>>>>>>>>>>>  
>>>>>>>>>>> <https://github.com/Kitware/CMake/commit/266808c4130a0b40aed236381707462a9368a1eb#diff-555801259d7df67368f7deab1f9deacd>
>>>>>>>>>>> 
>>>>>>>>>>> -Nathan
>>>>>>>>>>> 
>>>>>>>>>>> On 7/12/2019 10:59 AM, Jim Hourihan wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>> Hi Larry, here's the output from a couple of different failures 
>>>>>>>>>>>> and one
>>>>>>>>>>>> successful configure. It doesn't seem to matter if I use the 
>>>>>>>>>>>> release or
>>>>>>>>>>>> master branch. I've omitted all the non-boost output since those 
>>>>>>>>>>>> are same
>>>>>>>>>>>> regardless.
>>>>>>>>>>>> 
>>>>>>>>>>>> It seems to me find_package() should be picking up the Boost_* 
>>>>>>>>>>>> variables
>>>>>>>>>>>> but isn't. Those are definitely not defined in boost's cmake files 
>>>>>>>>>>>> for
>>>>>>>>>>>> 1.70.0. I've made sure there are no other copies of boost anywhere 
>>>>>>>>>>>> on my
>>>>>>>>>>>> machine (mac 10.14.5) including brew and ports versions.
>>>>>>>>>>>> 
>>>>>>>>>>>> I'm thinking I should try boost 1.53 and compare its .cmake files 
>>>>>>>>>>>> against
>>>>>>>>>>>> 1.70. 
>>>>>>>>>>>> 
>>>>>>>>>>>> Thanks for the help.
>>>>>>>>>>>> 
>>>>>>>>>>>>   -Jim
>>>>>>>>>>>> 
>>>>>>>>>>>>> On Jul 11, 2019, at 10:42 PM, Larry Gritz <[email protected] 
>>>>>>>>>>>>> <mailto:[email protected]>> wrote:
>>>>>>>>>>>>> 
>>>>>>>>>>>>> I use Boost 1.70 on my Mac (via Homebrew, so it's in /usr/local), 
>>>>>>>>>>>>> and as a matter of fact I just tested building against Boost 1.70 
>>>>>>>>>>>>> on Linux at work this week. So I know it works.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Under ordinary circumstances, you shouldn't have to set those 
>>>>>>>>>>>>> things individually that you mention below.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> It *ought* to be enough to -DBOOST_ROOT=$PREFIX
>>>>>>>>>>>>> 
>>>>>>>>>>>>> If things are laid out strangely underneath the prefix, though, 
>>>>>>>>>>>>> you may want to use -DBOOST_INCLUDEDIR=/custom/include/dir 
>>>>>>>>>>>>> -DBOOST_LIBRARYDIR=/custom/lib/dir
>>>>>>>>>>>>> 
>>>>>>>>>>>>> If that doesn't work, can you show us the resulting 
>>>>>>>>>>>>> CMakeCache.txt and exactly what errors it prints?
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Which version of OIIO are you building? Do you still have the 
>>>>>>>>>>>>> problem with master?
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>>> On Jul 11, 2019, at 7:03 PM, Jim Hourihan <[email protected] 
>>>>>>>>>>>>>> <mailto:[email protected]>> wrote:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Hi All, I’m having some weird interaction between OIIO and 
>>>>>>>>>>>>>> boost’s cmake package files. I have a prefix area (let’s call it 
>>>>>>>>>>>>>>  /prefix/area) which I install all of OIIO’s dependencies into 
>>>>>>>>>>>>>> including boost 1.70.0.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Boost creates files and dirs in /prefix/area/lib/cmake. When I 
>>>>>>>>>>>>>> point OIIO at the prefix area for building and let it find boost 
>>>>>>>>>>>>>>  by itself it does, but then fails in OIIO’s 
>>>>>>>>>>>>>> externalpackages.cmake line 121. That line is attempting to 
>>>>>>>>>>>>>> dereference the variable Boost_INCLUDE_DIRS which is set to 
>>>>>>>>>>>>>> nothing. The weird thing is that find_packages() does 
>>>>>>>>>>>>>> successfully say it found boost. I assume something has changed 
>>>>>>>>>>>>>> in 1.70.0 with how they’re writing the cmake files but my 
>>>>>>>>>>>>>> cmake-fu is very poor.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> To get around it I’m passing the Boost_* variables directly to 
>>>>>>>>>>>>>> cmake since externalpackages.cmake mercifully allows that as an 
>>>>>>>>>>>>>> option.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> My questions are:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Any issues with using 1.70.0 or does everybody still use 1.53?
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> What are the expected values of the Boost_* variables? I’m 
>>>>>>>>>>>>>> passing:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>              -DBoost_VERSION=1.70.0
>>>>>>>>>>>>>>              
>>>>>>>>>>>>>> -DBoost_LIBRARIES='boost_filesystem;boost_system;boost_thread’
>>>>>>>>>>>>>>              -DBoost_INCLUDE_DIRS=$PREFIX/include
>>>>>>>>>>>>>>              -DBoost_LIBRARY_DIRS=$PREFIX/lib
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> What should BOOST_ROOT be set to? Seems like OIIO doesn’t care 
>>>>>>>>>>>>>> if it’s set.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Thanks!
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>    -Jim
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>>> Oiio-dev mailing list
>>>>>>>>>>>>>> [email protected] 
>>>>>>>>>>>>>> <mailto:[email protected]>
>>>>>>>>>>>>>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
>>>>>>>>>>>>>>  
>>>>>>>>>>>>>> <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org>
>>>>>>>>>>>>> 
>>>>>>>>>>>>> --
>>>>>>>>>>>>> Larry Gritz
>>>>>>>>>>>>> [email protected] <mailto:[email protected]>
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> 
>>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>>> Oiio-dev mailing list
>>>>>>>>>>>>> [email protected] 
>>>>>>>>>>>>> <mailto:[email protected]>
>>>>>>>>>>>>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
>>>>>>>>>>>>>  
>>>>>>>>>>>>> <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org>
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> Oiio-dev mailing list
>>>>>>>>>>>> [email protected] 
>>>>>>>>>>>> <mailto:[email protected]>
>>>>>>>>>>>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org 
>>>>>>>>>>>> <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org>
>>>>>>>>>>> 
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> Oiio-dev mailing list
>>>>>>>>>>> [email protected] 
>>>>>>>>>>> <mailto:[email protected]>
>>>>>>>>>>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org 
>>>>>>>>>>> <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org>
>>>>>>>>>> 
>>>>>>>>>> --
>>>>>>>>>> Larry Gritz
>>>>>>>>>> [email protected] <mailto:[email protected]>
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Oiio-dev mailing list
>>>>>>>>>> [email protected] 
>>>>>>>>>> <mailto:[email protected]>
>>>>>>>>>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org 
>>>>>>>>>> <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Oiio-dev mailing list
>>>>>>>>>> [email protected] 
>>>>>>>>>> <mailto:[email protected]>
>>>>>>>>>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org 
>>>>>>>>>> <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org>
>>>>>>>>> 
>>>>>>>>> --
>>>>>>>>> Larry Gritz
>>>>>>>>> [email protected] <mailto:[email protected]>
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> _______________________________________________
>>>>>>>>> Oiio-dev mailing list
>>>>>>>>> [email protected] <mailto:[email protected]>
>>>>>>>>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org 
>>>>>>>>> <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org>
>>>>>>>> 
>>>>>>>> _______________________________________________
>>>>>>>> Oiio-dev mailing list
>>>>>>>> [email protected] <mailto:[email protected]>
>>>>>>>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org 
>>>>>>>> <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org>
>>>>>>> 
>>>>>>> --
>>>>>>> Larry Gritz
>>>>>>> [email protected] <mailto:[email protected]>
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> 
>>>>>>> _______________________________________________
>>>>>>> Oiio-dev mailing list
>>>>>>> [email protected] <mailto:[email protected]>
>>>>>>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org 
>>>>>>> <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org>
>>>>>> 
>>>>>> _______________________________________________
>>>>>> Oiio-dev mailing list
>>>>>> [email protected] <mailto:[email protected]>
>>>>>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org 
>>>>>> <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org>
>>>>> 
>>>>> --
>>>>> Larry Gritz
>>>>> [email protected] <mailto:[email protected]>
>>>>> 
>>>>> 
>>>>> 
>>>>> 
>>>>> _______________________________________________
>>>>> Oiio-dev mailing list
>>>>> [email protected] <mailto:[email protected]>
>>>>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org 
>>>>> <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org>
>>>> 
>>> 
>>> _______________________________________________
>>> Oiio-dev mailing list
>>> [email protected] <mailto:[email protected]>
>>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org 
>>> <http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org>
>> 
>> --
>> Larry Gritz
>> [email protected] <mailto:[email protected]>
>> 
>> 
>> 
>> 
>> _______________________________________________
>> Oiio-dev mailing list
>> [email protected] <mailto:[email protected]>
>> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org
> 
> _______________________________________________
> Oiio-dev mailing list
> [email protected]
> http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

--
Larry Gritz
[email protected]




_______________________________________________
Oiio-dev mailing list
[email protected]
http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

Reply via email to