I have ExternalProject in both versions 1.2 and 2.2 present in my system. ExternalProject is a CMake project and CMake finds the both versions without trouble when I ask for them. Command find_package(ExternalProject 1.2 EXACT)
finds version 1.2 and find_package(ExternalProject 2.2 EXACT)
finds version 2.2.
Versions 1 and 2 are not compatible with each other. The APIs are completely different.
I have a CMake project, MyProject, which has two targets, targetOne and targetTwo. TargetOne uses ExternalProject 1.2 and TargetTwo uses ExternalProject 2.2.
The below code does not do what I want. The same external dependency is not looked up twice. The compilation of TargetTwo fails. Does CMake support this scenario in any way? (except by renaming the ExternalProject version 2 and compiling it in a different location).
project(MyProject)
find_package(ExternalProject 1.2 EXACT)
add_executable(targetOne target_one.c)
target_link_libraries(targetOne ExternalProject::externalProject)
find_package(ExternalProject 2.2 EXACT)
add_executable(targetTwo target_two.c)
target_link_libraries(targetTwo ExternalProject::externalProject)