Hi,

My project is setup in such a way that I perform a FetchContent 'only if'
my find_package fails.

This works very well until I start building different configurations. Let's
say I generate and build Debug for my project. My project tries to
find_package(LibA QUIET) and cannot find it. So, it performs a
FetchContent(...) step, builds the dependency and my library and installs
everything. This works flawlessly.

Now I start building a Release version with different build and install
folders. Unfortunately, find_package(LibA QUIET) finds the Debug libraries
and does not perform a FetchContent(...) step and in turn doesn't build the
Release version of the dependent library. Consequently, the linking step
fails.

Is there an easy way around this issue?

I say 'easy' because I could write some CMake scripts to search for the
libraries after a successful find_package(...) and if it only finds
libraries for Debug when it really wants Release, it performs a
FetchContent(...). However, this could be quite fragile.

It would be nice if CMake has a way of knowing if an installed library,
found through find_package(...) is Debug, Release, RelWithDebInfo etc.

- Saad
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
https://cmake.org/mailman/listinfo/cmake

Reply via email to