Skip to content
This repository was archived by the owner on Mar 13, 2026. It is now read-only.
This repository was archived by the owner on Mar 13, 2026. It is now read-only.

Build requirements not included in conan_paths.cmake #593

@lbakman

Description

@lbakman

Description of Problem, Request, or Question

I am seing some different behaviour in conan_package_tools version 0.37.0 concerning build profile (CPT_PROFILE_BUILD) compared to version 0.36.0.

The CPT_PROFILE_BUILD is always specified when building a configuration. This seems to affect the cmake_paths generator.

When the CPT_PROFILE_BUILD environment is specified, the paths from my "build_requires" dependencies in the conanfile.py are no longer written to my conan_paths.cmake file.

In my case, this results in GTest no longer being found.

I have created two test projects to illustrate this:

My custom gtest recipe: https://github.com/lbakman/gtest_conan
I have modified the gtest recipe from conan-center-index, because I want the cmake directory to stay in the output directory. For this test, build with "conan create . cci.20210126@lau/stable".

My consuming project: https://github.com/lbakman/hello_conan
You can see the difference by executing the following docker commands. I have tried to find the minimal command line that can reproduce the problem on a local machine.

The following represents the docker command line I get from 0.36.0:
docker run --rm -v "$HOME/.conan/data:/home/conan/.conan/data" -v "$(pwd):/home/conan/project" -e CONAN_USERNAME="lau" -e CONAN_CHANNEL="testing" -e CONAN_REFERENCE="world/1.0.0@lau/testing" -e CPT_PROFILE="@@include(default)@@@@[settings]@@arch=x86_64@@build_type=Release@@compiler=gcc@@compiler.libcxx=libstdc++11@@[options]@@@@[env]@@@@[build_requires]@@@@" -e CPT_BUILD_POLICY="missing" -e CPT_CONANFILE="conanfile.py" conanio/gcc8:latest /bin/sh -c "cd project; run_create_in_docker"

The following represents the docker command line I get from 0.37.0:
docker run --rm -v "$HOME/.conan/data:/home/conan/.conan/data" -v "$(pwd):/home/conan/project" -e CONAN_USERNAME="lau" -e CONAN_CHANNEL="testing" -e CONAN_REFERENCE="world/1.0.0@lau/testing" -e CPT_PROFILE="@@include(default)@@@@[settings]@@arch=x86_64@@build_type=Release@@compiler=gcc@@compiler.libcxx=libstdc++11@@[options]@@@@[env]@@@@[build_requires]@@@@" -e CPT_PROFILE_BUILD="@@include(default)@@@@[settings]@@@@[options]@@@@[env]@@@@[build_requires]@@@@" -e CPT_BUILD_POLICY="missing" -e CPT_CONANFILE="conanfile.py" conanio/gcc8:latest /bin/sh -c "cd project; run_create_in_docker"

If you take a look at the generated conan_paths.cmake files from each build, you can see that in the first command line, GTEST is referenced in the file and in the second command line, it is not.

I can fix it by adding my build_requires to the build.py file in addition to my conanfile.py, but that seems counter intuitive to me.

Environment Details

  • Conan Package Tools Version: 0.37.0
  • Operating System: Linux
  • Operation System Version: Rocky 8.5, Centos 8
  • Compiler+version: gcc-8.4.0
  • Docker image: conanio/gcc8
  • Conan version: conan 1.42.1
  • Python version: python 3.6.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions