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

Add FindBoost_EP.cmake #4724

Closed
wants to merge 7 commits into from
Closed

Add FindBoost_EP.cmake #4724

wants to merge 7 commits into from

Conversation

davisp
Copy link
Contributor

@davisp davisp commented Feb 13, 2024

Pull in Boost as an external project when building without vcpkg.


TYPE: NO_HISTORY
DESC: Add FindBoost_EP.cmake

@davisp davisp force-pushed the pd/experiment/boost-ep-cmake branch from 6b026a8 to 91ebc38 Compare February 13, 2024 18:16
include(TileDBCommon)

if(TILEDB_VCPKG)
set(Boost_NO_SYSTEM_PATHS ON)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
set(Boost_NO_SYSTEM_PATHS ON)

See #4723 (comment)

@teo-tsirpanis
Copy link
Member

How about we use boost-cmake instead of b2? 🤔

@teo-tsirpanis
Copy link
Member

The boost repository has a CMakeLists.txt but the source artifacts don't. Why? 😭

@teo-tsirpanis
Copy link
Member

Recursively cloning boost and all its submodules takes an extraordinary amount of time…

@teo-tsirpanis
Copy link
Member

Given that

How about we

  • Don't try to write Boost_EP
  • Require the user to have Boost installed in the system if building without vcpkg
  • Manually install Boost in nightly builds on Unix and use vcpkg on Windows

What do you think @KiterLuc, @ihnorton?

@eddelbuettel
Copy link
Contributor

Why not follow KISS and vendor the Boost parts we need as proposed by @eric-hughes-tiledb and (implicitly) endorsed by @lums658 ?

@davisp
Copy link
Contributor Author

davisp commented Feb 14, 2024

Why not follow KISS and vendor the Boost parts we need as proposed by @eric-hughes-tiledb and (implicitly) endorsed by @lums658 ?

Because the bits we need aren't header only so just vendoring it means that we'll need to reverse engineer whatever sort of build system which is where things start to get a bit weird.

@eddelbuettel
Copy link
Contributor

Because the bits we need aren't header only

Dang. Consider my proposal withdrawn.

@davisp
Copy link
Contributor Author

davisp commented Feb 14, 2024

@teo-tsirpanis I just used what the docs and tutorials were using. I didn't see boost-cmake. In terms of cross platform, it appears to work just fine on both macOS and Linux. Is there something non-trivial preventing the branch from working on Windows? I've got no idea what's breaking in that build in CI so I can't tell if its as simple as invoking the build command incorrectly because I don't know how Windows CLIs work, or if there's some deeper issue there. But if you tell me that it's untenable to fix then I'm fine going with another approach.

I'm not against the idea of relying on a system installed version of boost, but I'd need to @ihnorton or someone else a lot more familiar with packaging and distribution to know if that's a viable approach.

@davisp
Copy link
Contributor Author

davisp commented Feb 14, 2024

Recursively cloning boost and all its submodules takes an extraordinary amount of time…

Why are you cloning things? This PR just downloads the release tarball.

@teo-tsirpanis
Copy link
Member

The tarball doesn't have CMakeLists.txt for some reason.

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

Successfully merging this pull request may close these issues.

4 participants