Skip to content

issues with CMake dependency handling #359

@milianw

Description

@milianw

Hey all,

I'm trying to build OI on arch and run into a lot of trouble.

  • the rocksdb version you reference doesn't support libstdc++ from gcc 13, giving compile errors due to missing cstdint includes
  • you hardcode LLVM 15, but I have LLVM 16
  • you have a mixed bag of system libs, and FetchContent, and git submodules. Why is that? I'm all for system libs, unless you need to have a very specific version of your thirdparty libs - is that the case? If so, would you be opposed to using submodules everywhere? The big advantage there is that we can more easily patch things, and also share the downloaded code across multiple build folders (think debug vs. release)
  • your msgpack CMake hackery doesn't work anymore with msgpack-cxx 5.0.0

I have workarounded all of these issues locally now, and would like to clean things up a bit upstream. But for that I would need to know what your constraints are.

My suggestion would be:

  • replace FetchContent with git submodules
  • then update rocksdb to a newer versions that works with newer compilers.
  • alternatively (additionally?) we could use find_package for more dependencies. all of the following are covered by system packages on arch:
    • tomlplusplus
    • glog
    • rocksdb
  • support newer msgpack-cxx and only if that's not found fallback to the existing cmake hackery.

Would you be OK with patches going in direction?

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions