Skip to content

Commit 8f90881

Browse files
committed
Skip FetchContent if relevant targets already exist
1 parent 18a70ee commit 8f90881

File tree

1 file changed

+31
-22
lines changed

1 file changed

+31
-22
lines changed

cmake/FindDependencies.cmake

Lines changed: 31 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -21,30 +21,39 @@ if(TESTS_ENABLED)
2121
endif()
2222

2323
include(FetchContent)
24-
FetchContent_Declare(PoseLib
25-
GIT_REPOSITORY https://github.com/PoseLib/PoseLib.git
26-
GIT_TAG 0439b2d361125915b8821043fca9376e6cc575b9
27-
EXCLUDE_FROM_ALL
28-
SYSTEM
29-
)
30-
message(STATUS "Configuring PoseLib...")
31-
if (FETCH_POSELIB)
32-
FetchContent_MakeAvailable(PoseLib)
24+
25+
if (NOT TARGET PoseLib AND NOT TARGET PoseLib::PoseLib)
26+
FetchContent_Declare(PoseLib
27+
GIT_REPOSITORY https://github.com/PoseLib/PoseLib.git
28+
GIT_TAG 0439b2d361125915b8821043fca9376e6cc575b9
29+
EXCLUDE_FROM_ALL
30+
SYSTEM
31+
)
32+
message(STATUS "Configuring PoseLib...")
33+
if (FETCH_POSELIB)
34+
FetchContent_MakeAvailable(PoseLib)
35+
else()
36+
find_package(PoseLib REQUIRED)
37+
endif()
38+
message(STATUS "Configuring PoseLib... done")
3339
else()
34-
find_package(PoseLib REQUIRED)
40+
message(STATUS "PoseLib target already exists.")
3541
endif()
36-
message(STATUS "Configuring PoseLib... done")
3742

38-
FetchContent_Declare(COLMAP
39-
GIT_REPOSITORY https://github.com/colmap/colmap.git
40-
GIT_TAG 78f1eefacae542d753c2e4f6a26771a0d976227d
41-
EXCLUDE_FROM_ALL
42-
)
43-
message(STATUS "Configuring COLMAP...")
44-
set(UNINSTALL_ENABLED OFF CACHE INTERNAL "")
45-
if (FETCH_COLMAP)
46-
FetchContent_MakeAvailable(COLMAP)
43+
if (NOT TARGET colmap AND NOT TARGET colmap::colmap)
44+
FetchContent_Declare(COLMAP
45+
GIT_REPOSITORY https://github.com/colmap/colmap.git
46+
GIT_TAG 78f1eefacae542d753c2e4f6a26771a0d976227d
47+
EXCLUDE_FROM_ALL
48+
)
49+
message(STATUS "Configuring COLMAP...")
50+
set(UNINSTALL_ENABLED OFF CACHE INTERNAL "")
51+
if (FETCH_COLMAP)
52+
FetchContent_MakeAvailable(COLMAP)
53+
else()
54+
find_package(COLMAP REQUIRED)
55+
endif()
56+
message(STATUS "Configuring COLMAP... done")
4757
else()
48-
find_package(COLMAP REQUIRED)
58+
message(STATUS "COLMAP target already exists.")
4959
endif()
50-
message(STATUS "Configuring COLMAP... done")

0 commit comments

Comments
 (0)