-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
g2o: new recipe #22337
base: master
Are you sure you want to change the base?
g2o: new recipe #22337
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
recipes/g2o/all/conanfile.py
Outdated
# Used in stuff/opengl_wrapper.h | ||
self.requires("opengl/system", transitive_headers=True, transitive_libs=True) | ||
self.requires("glu/system", transitive_headers=True, transitive_libs=True) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you use the mesa-glu
and libglvnd
packages where possible here?
# Used in stuff/opengl_wrapper.h | |
self.requires("opengl/system", transitive_headers=True, transitive_libs=True) | |
self.requires("glu/system", transitive_headers=True, transitive_libs=True) | |
# Used in stuff/opengl_wrapper.h | |
if self.settings.os in ["FreeBSD", "Linux"]: | |
self.requires("libglvnd/1.7.0", transitive_headers=True, transitive_libs=True) | |
else: | |
self.requires("opengl/system", transitive_headers=True, transitive_libs=True) | |
if is_apple_os(self) or self.settings.os == "Windows": | |
self.requires("glu/system", transitive_headers=True, transitive_libs=True) | |
else: | |
self.requires("mesa-glu", transitive_headers=True, transitive_libs=True) |
FYI, CMake prior to 3.29 doesn't do a very good job of handling the GLU headers via the FindOpenGL
module, so that may require workarounds like I had to do in the FreeGLUT recipe.
recipes/g2o/all/conanfile.py
Outdated
self.cpp_info.components["g2o_ceres_ad"].set_property("cmake_target_name", "g2o::g2o_ceres_ad") | ||
_add_component("stuff", requires=["spdlog::spdlog", "eigen::eigen"]) | ||
_add_component("core", requires=["stuff", "eigen::eigen", "g2o_ceres_ad"]) | ||
_add_component("opengl_helper", requires=["opengl::opengl", "glu::glu", "eigen::eigen"]) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
_add_component("opengl_helper", requires=["opengl::opengl", "glu::glu", "eigen::eigen"]) | |
opengl_helper_requires = ["eigen::eigen"] | |
if self.settings.os in ["FreeBSD", "Linux"]: | |
opengl_helper_requires.append("libglvnd::gl") | |
else: | |
opengl_helper_requires.append("opengl::opengl") | |
if is_apple_os(self) or self.settings.os == "Windows": | |
opengl_helper_requires.append("glu::glu") | |
else: | |
opengl_helper_requires.append("mesa-glu::mesa-glu") | |
_add_component("opengl_helper", requires=opengl_helper_requires) |
I'm not sure which component of libglvnd
you need here. libglvnd::gl
is the legacy GL implementation for X11, pretty much GLX.
recipes/g2o/all/conanfile.py
Outdated
|
||
from conan import ConanFile | ||
from conan.errors import ConanInvalidConfiguration | ||
from conan.tools.build import check_min_cppstd |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
from conan.tools.build import check_min_cppstd | |
from conan.tools.apple import is_apple_os | |
from conan.tools.build import check_min_cppstd |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Conan v1 pipeline ❌Failure in build 5 (
Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability. Conan v2 pipeline ❌
The v2 pipeline failed. Please, review the errors and note this is required for pull requests to be merged. In case this recipe is still not ported to Conan 2.x, please, ping Failure in build 5 (
Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability. |
Hello, I have added a PR to your fork to be able to disable the opengl option: |
I'd be interested in this recipe being on the index. Anything I can do as outsider to help this getting pushed forward? |
@rettichschnidi The g2o recipe is blocked by SuiteSparse support on CCI (#23546), which in turn is blocked by the limited OpenMP support on CCI (#22360, #24577), as it relies solely on OpenMP for parallelization support. It currently cannot be built on CCI and potentially many Linux-based consumer machines due to missing OpenMP runtimes. |
Also, in the mean time, you can use my CCI fork that has support for g2o and many other CV/robotics libraries: https://github.com/valgur/conan-center-index |
Adds
g2o
: https://github.com/RainerKuemmerle/g2og2o: A General Framework for Graph Optimization
It's currently missing important, but optional, SuiteSparse and CSparse solver dependencies, which are not yet available on CCI.