Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Evoke cannot be built with CMake 3.16.0 & Boost 1.71.0 #81

Open
michaelvlach opened this issue Nov 26, 2019 · 1 comment
Open

Evoke cannot be built with CMake 3.16.0 & Boost 1.71.0 #81

michaelvlach opened this issue Nov 26, 2019 · 1 comment

Comments

@michaelvlach
Copy link
Contributor

michaelvlach commented Nov 26, 2019

Describe the bug
CMake is unable to find Boost.

To Reproduce
Steps to reproduce the behavior:

  1. Follow the build instructions of evoke.

Expected behavior
Boost is found by CMake.

Screenshots

System (please complete the following information):

  • OS: Windows 10
  • Compiler: VS19
  • Usage/IDE: Command line

Additional context
So CMake and Boost have a "funny" history in that CMake has hard-coded Boost layout and every time Boost makes a release it breaks CMakeList.txt that relies on in-built support of Boost in CMake. It takes CMake people LONG time to fix this every time. Today it is almost 3 monts since last Boost release (28th August) and almost 2 from last CMake release (2nd October).

Anyhow, this is really inpractical and I would suggest ditching reliance on CMake and Boost magically being available & compatible versions. Instead create a git subtree in Evoke repo pointing here: https://github.com/boostorg/filesystem and here: https://github.com/boostorg/system

And point CMake to those places directtly bypassing this unreliable Boost detection. You will also gain control over what version of Boost you and users of Evoke are using AND drop the only external dependency you have (except for CMake itself). Arguably CMake could be ditched as well. Judging from contents of the CMakeLists.txt a batch/sh file to bootstrap Evoke would be pretty trivial.

@dascandy
Copy link
Owner

That's pretty much what we had, until somebody decided to add a CMakeLists.txt doing just this. The bootstrap is getting it compiled once, and then compiling it again using itself which also runs all the unit tests. I believe the makefile is still set up such.

Anyway, in order to get people bootstrapped more quickly, I'm working on Azure Pipelines support that should output the Evoke binaries for people to use. See also the badge near the top I added a few hours ago.

I'm also working on a more thorough fix for the dependencies problem. Will take more time though.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants