Hello! First the short version...

Can anyone give me a set of instructions to download, build and setup the 
latest Boost (currently 1.67) on Windows 10 for VS 2017 64bit such that the 
following will work...

    find_package(Boost REQUIRED COMPONENTS system filesystem thread date_time 
iostreams)
    include_directories(${Boost_INCLUDE_DIRS})
    link_directories(${Boost_LIBRARY_DIRS})

Including...

- Steps to follow when building and installing Boost
- What environment variables to set and what to set them to, e.g. boost, boost 
library, boost include directories
- What to set in the CMake file so that Boost will be correctly included

I ask about building Boost as well as CMake because it seems to me that unless 
Boost is built in a way that matches CMake expectations it just won't work.

Some background...

I've inherited a project with the above in, along with depndencies on ITK, VTK 
and zlib - all of which I have set up in CMake OK. However, Boost appears to be 
immune to working with CMake. There are various suggestions on the web, but 
nothing consistent, and nothing I've found whcih will work.

I've spent 2 days building Boost (this isn't solely due to CMake, the Boost 
build instructions are all over the place and their latest installer contains a 
trojan according to Windows defender) and configuring CMake in various ways, 
getting frustrated setting various environmental variables, and the nebulous 
target that is a Boost source install.

I can fix this by manually setting all of the library paths and doing some 
fixing up in the resultant project files, but I shouldn't really have to.

Surely it shouldn't be this difficult! Hopefully if there is a clear set of 
instructions from start to finish it will save others future anguish.

For building Boost I ended up using b2 and the following steps install (based 
on https://www.boost.org/doc/libs/1_67_0/more/getting_started/windows.html) and 
having tried following the instructions to the letter I ended up with...

- Download Boost, e.g. from 
https://dl.bintray.com/boostorg/release/1.67.0/source/boost_1_67_0.7z
- Extract to e.g. C:\thirdparty\boost\boost_1_67_0
- Build the bootstrapper, as per section 5.2.1 in 
https://www.boost.org/doc/libs/1_67_0/more/getting_started/windows.html
- Build the binaries, simlar to section 5.2.2 in the above, but using
    - b2 --build-dir=C:\thirdparty\boost-install\boost_1_67_0 toolset=msvc 
--build-type=complete install
- Why the change?
    - Building the Boost build tools didn't seem to affect the building of the 
install
    - The inital install command in their instructions didn't seem to actually 
install the headers and libs
    - Using stage only seems to collect the lib files together, not the headers
    - So I end up with a libs folder and an include folder

I then try to set the following environment variables (as system ones, rather 
than as user ones)

- BOOST_ROOT - to the boost folder of the downloaded and extracted boost
- BOOST_INCLUDEDIR - to the include folder of the installed boost
- BOOST_LIBRARYDIR - the the lib folder of the installed boost

As well as lots of other directories which seemed like they might work.

Then in the CMake (based upon suggestions from the web) I've tried things 
like...

set(Boost_USE_STATIC_LIBS        ON)
set(Boost_USE_MULTITHREADED      ON)
set(Boost_USE_STATIC_RUNTIME    OFF)

...and...

SET(Boost_ADDITIONAL_VERSIONS "1.67" "1.67.0")

...and...

set (Boost_DETAILED_FAILURE_MSG ON)
set (BOOST_DEBUG ON)

... to no avail






-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake

Reply via email to