Le jeu. 14 févr. 2019 à 18:22, Timothy Wrona <tjwrona1...@gmail.com> a écrit :
> I have a collection of interdependent CMake projects (lots of legacy code) > that I want to convert to using CMake targets for linking. The code is > built in such a way that all projects run cmake generation, then all > projects build, then all projects link. > > I would like to export a CMake target from one of the projects and link to > it in another, but the issue is the project I am exporting from runs its > cmake generation AFTER the project I am linking the target in. This causes > "find_package" to fail because the target has not been exported yet, but > realistically the exported target is not needed until link-time. > This heavily depends on the target. Modern CMake target convey compile time information as well like compile flags, include directory etc... Can't you re-order the cmake generation order of your projects? If you [ever] have the graph dependency of your projects you may topologically sort them in order to avoid this issue and superbuild them in appropriate order. > Is there a way to delay "find_package" to not look for the package until > link-time? > I don't think so. > At link-time the package will have been exported already and if > "find_package" was not called until then, it would be found successfully > and the target could be pulled in and linked to. > But the build compile line options used to generate build system files are computed during CMake configuration/generation step. So I don't think what you ask is possible. -- Eric
-- 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