0

I've studied creating package in the official Conan tutorial. I'd like to create my own package for a static library (CMake-based project). It supports Linux and Windows. But it depends on Qt LTS 5.9x. CMakeLists.txt contains a call to find_package. Usually I passed

-DCMAKE_PREFIX_PATH=path_to_qt_cmake_modules

to cmake utility. Conan has no official Qt 5.9 support. What is the correct way to pass CMAKE_PREFIX_PATH to conan during package install?

ilya
  • 1,103
  • 14
  • 36

1 Answers1

1

If you are using the CMake helper you can define any cmake variable in the build() method:

from conans import ConanFile, CMake

class ExampleConan(ConanFile):
    ...

    def build(self):
        cmake = CMake(self)
        cmake.definitions["CMAKE_PREFIX_PATH"] = <your-prefix-path>
        cmake.configure()
        cmake.build()
        cmake.install() # Build --target=install

If you want a parameterizable path to your Qt local install, you can use normal env-vars. They can be defined in the system, but for convenience they can also be defined in your profile:

[settings]
...
[env]
QT_PATH=my/path/to/qt

And then use something like:

cmake.definitions["CMAKE_PREFIX_PATH"] = os.environ["QT_PATH"]
drodri
  • 5,157
  • 15
  • 21