Comments (4)
Thanks @franramirez688 , I appreciate you looking into it. I also prefer the second solution as the first one adds some burden on the usage (and making use within CLion a bit more annoying to go add the flag to each configuration).
I had seen the NO_MODULE
before as in
find_package(Eigen3 3.3 REQUIRED NO_MODULE)
but not the MODULE
option. It makes sense it should exist.
Thanks again.
from conan.
Hi @FunMiles
Sorry for the delay but it was a bit hard to figure out what was happening 😓
You need to set this configuration variable: tools.cmake.cmaketoolchain:find_package_prefer_config=False
. It will unset this CMake variable CMAKE_FIND_PACKAGE_PREFER_CONFIG.
So, having this CMakeLists.txt:
cmake_minimum_required(VERSION 3.20)
project(conantest LANGUAGES CXX)
# Module (system)
find_package(HDF5 REQUIRED)
# Config (Conan)
find_package(ZLIB REQUIRED)
add_executable(hd5test test.cpp)
target_link_libraries(hd5test PRIVATE HDF5::HDF5 ZLIB::ZLIB)
And running these commands:
$ conan install . --output-folder=build --build=missing -c tools.cmake.cmaketoolchain:find_package_prefer_config=False
$ cd build
$ cmake .. -GNinja -DCMAKE_TOOLCHAIN_FILE="conan_toolchain.cmake" -DCMAKE_BUILD_TYPE=Release
It should work perfectly fine:
-- Using Conan toolchain: /Users/user/develop/conan/issue_mac/build/conan_toolchain.cmake
-- Conan toolchain: C++ Standard 17 with extensions ON
-- The CXX compiler identification is AppleClang 15.0.0.15000309
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found HDF5: hdf5-shared (found version "1.14.3")
-- Conan: Target declared 'ZLIB::ZLIB'
-- Found ZLIB: 1.2.11 (found version "1.2.11")
-- Configuring done (0.7s)
-- Generating done (0.0s)
-- Build files have been written to: /Users/user/develop/conan/issue_mac/build
from conan.
UPDATE:
@FunMiles I just found a better solution.
If you directly specify the find_package
search mode in the CMakeLists.txt, it works too:
cmake_minimum_required(VERSION 3.20)
project(conantest LANGUAGES CXX)
find_package(HDF5 REQUIRED MODULE)
find_package(ZLIB REQUIRED CONFIG)
add_executable(hd5test test.cpp)
target_link_libraries(hd5test PRIVATE HDF5::HDF5 ZLIB::ZLIB)
Then, there is no need to pass an extra configuration:
$ conan install . --output-folder=build --build=missing
$ cd build
$ cmake .. -GNinja -DCMAKE_TOOLCHAIN_FILE="conan_toolchain.cmake" -DCMAKE_BUILD_TYPE=Release
from conan.
FYI, I just opened a ticket in the CMake repository to clarify why that find_package
is not falling back into Module mode:
from conan.
Related Issues (20)
- [question] Please help how to use NuGet Libraries with Conan and CMake for Builds. HOT 1
- Error uploading file: conanmanifest.txt, '404 Client Error: Not Found for url: https://artifactory.com/artifactory/api/conan/conan-test/v2/conans/xxx/revisions/b9c4826ad9445ea5257f6432b5a019dd/files/conanmanifest.txt[bug] HOT 3
- [question] Confusion around python_requires using minor_mode HOT 6
- [bug] incorrect paths generated by pkgconfigdeps.py when using --deployer option HOT 1
- [question] Filtering options for package to get path to local cache HOT 4
- [bug] `conan list` filtering option asks users to use scope patterns when those don't work in that context HOT 2
- [question] Set cmake_find_mode for all deps in CMakeDeps [conan 2] HOT 2
- [feature] Option to suppress generation of script files HOT 2
- [bug] Initial setup for Conan test suite is not automated or documented HOT 3
- [question] disable package revisions HOT 3
- [bug] `conan source` does not actually get `global.conf`'s `core.` confs HOT 1
- [question] Install a binary package without matching the compiler version HOT 3
- [question] preset name != profile name HOT 4
- [question] Include jinja profile template into another HOT 7
- [question] How to disable compatilibity? HOT 5
- [question] CMAKE_INSTALL_PREFIX in toolchain - local/cache build difference [conan 2] HOT 3
- [feature] Introduce os.version or os=Ubuntu in profiles HOT 2
- [question] PUBLIC compile definition not propagated HOT 3
- [question] How to access a value defined in the `[conf]` section of a profile? HOT 1
- [feature] Add properties to MakeDeps generator HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from conan.