| Zyn can integrate with non-Zyn-style projects (like CMake or Make-based ones), but it treats them as opaque third-party dependencies and handles them externally. Here's how it works: Cloning: When you list a Git-based dependency like https://github.com/user/X in your zyn.toml, Zyn clones it into .zyn/deps. Build Detection: Zyn looks for known build systems (CMakeLists.txt, Makefile, etc.) in the dependency. If found, Zyn runs the appropriate commands (cmake, make, etc.) to build the project. Dependency Isolation: Zyn does not parse or resolve the internal dependency graph of project X. If X needs other libraries (Y, Z, etc.), you must also list those manually in your own zyn.toml. This gives you full control and reproducibility. Header and Library Exposure: After building, Zyn makes the compiled .a/.so/.lib and headers available to your main project automatically by linking them via -I and -L flags. Example: Let’s say project X depends on Y and Z, but doesn’t use Zyn itself and just mentions this in a README. You’d do:
[dependencies]
X = "https://github.com/user/X"
Y = "https://github.com/user/Y"
Z = "https://github.com/user/Z"
Zyn will fetch and build all of them. It doesn’t care that X has no zyn.toml. |