Skip to content

[question] Workspaces with lockfiles and CMakeToolchain generator #19121

@ibrawada

Description

@ibrawada

What is your question?

Hello,

while experimenting with conan workspaces i noticed several things that didn't work or i couldn't make them work. I had taken the libraries from here: https://github.com/conan-io/examples2/tree/main/ci/game and added external dependencies and lockfiles.

For WS files i have used the content from here: https://docs.conan.io/2/tutorial/developing_packages/workspaces.html#id2

The first thing that didn't happen was that the generation of individual toolchain files for each library. The setting of preprocessor definition (eg. in ai: https://github.com/conan-io/examples2/blob/main/ci/game/ai/conanfile.py#L24) wasn't done. This was easily overcome by adding the line of code inside WS conanws.py. But this will not scale with a lot of editable libraries and also they will be globally available and not defined per library.

When performing conan workspace super-install --lockfile-out <file>.lock conan didn't generate a lockfile. Im not sure if im missing something in the command. This is not a problem since the lockfile can easily be created for the end product.

After doing modifications and creating new packages with conan workspace create i wanted to have an updated lockfile for the game but couldn't get it generated by appending --lockfile-out <file.lock> to create command.
I tried then to generate the lockfile as to i would normally do with conan lock create game/conanfile.py but that didn't work because the packages are editable and the lockfile i get contains no real info. I was able to generate it outside of my WS folder but the problem there is that the lockfile can be polluted with package RREVs coming from other projects. Would it be possible to have something like conan workspace deactivate? Now i do it by renaming conanws.py to _conanws.py

Thanks

Have you read the CONTRIBUTING guide?

  • I've read the CONTRIBUTING guide

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions