Hacker News new | past | comments | ask | show | jobs | submit login

CMake only finds the dependencies, how do they get to your computer? Do you link statically or dynamically? What compiler toolchains are these libraries built with, do they use the same standard library as your code or different ones? When you want to cross compile, how do you find libraries for your target architecture?

Conan makes much of this easier, but is not really suited for large software projects with the problems mentioned above - in my experience.




Well, I don't cross compile. If I need to test a new OS, then I get the VM and compile it there.

About dependencies, if they can be found in the package manager then it goes that way. Else, they are a git submodule.

The most problematic has indeed been the C++ MySQL connector, because it has changed a bit over the last five years, so I had to edit the #include lines in the source code files.


Chrome for example does not currently compile on darwin-arm64, cross compiling from darwin-x64 is the only way to build that target.

When you are using git submodules as package manager, what do you do if the dependency doesn’t come with CMake files, but with autotools for example?

I think bazel is becoming a great solution for these problems if you align with their philosophy.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: