Skip to content

Commit c3c1671

Browse files
authored
[build] CMake: Fix find_package(wpilib) calls when some libraries are missing (wpilibsuite#6784)
1 parent 8ba9a55 commit c3c1671

File tree

2 files changed

+26
-36
lines changed

2 files changed

+26
-36
lines changed

CMakeLists.txt

Lines changed: 24 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -202,41 +202,13 @@ if(WITH_JAVA)
202202
set(CMAKE_JAVA_COMPILE_FLAGS "-encoding" "UTF8" "-Xlint:unchecked")
203203
endif()
204204

205-
if(USE_SYSTEM_LIBUV)
206-
set(LIBUV_SYSTEM_REPLACE
207-
"
208-
find_dependency(libuv CONFIG)
209-
"
210-
)
211-
endif()
212-
213-
if(USE_SYSTEM_EIGEN)
214-
set(EIGEN_SYSTEM_REPLACE "find_package(Eigen3 CONFIG)")
215-
endif()
216-
217205
find_package(LIBSSH 0.7.1)
218206

219207
set(CMAKE_FIND_PACKAGE_PREFER_CONFIG ON)
220208
set(protobuf_MODULE_COMPATIBLE ON CACHE BOOL "" FORCE)
221209
find_package(Protobuf REQUIRED)
222210
set(CMAKE_FIND_PACKAGE_PREFER_CONFIG OFF)
223211

224-
set(APRILTAG_DEP_REPLACE "find_dependency(apriltag)")
225-
set(CAMERASERVER_DEP_REPLACE_IMPL "find_dependency(cameraserver)")
226-
set(CSCORE_DEP_REPLACE_IMPL "find_dependency(cscore)")
227-
set(HAL_DEP_REPLACE_IMPL "find_dependency(hal)")
228-
set(NTCORE_DEP_REPLACE "find_dependency(ntcore)")
229-
set(WPILIBC_DEP_REPLACE_IMPL "find_dependency(wpilibc)")
230-
set(WPILIBJ_DEP_REPLACE "find_dependency(wpilibj)")
231-
set(WPILIBNEWCOMMANDS_DEP_REPLACE "find_dependency(wpilibNewCommands)")
232-
set(WPIMATH_DEP_REPLACE "find_dependency(wpimath)")
233-
set(WPINET_DEP_REPLACE "find_dependency(wpinet)")
234-
set(WPIUNITS_DEP_REPLACE "find_dependency(wpiunits)")
235-
set(WPIUTIL_DEP_REPLACE "find_dependency(wpiutil)")
236-
237-
set(FILENAME_DEP_REPLACE "get_filename_component(SELF_DIR \"$\{CMAKE_CURRENT_LIST_FILE\}\" PATH)")
238-
set(SELF_DIR "$\{SELF_DIR\}")
239-
240212
get_property(isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
241213

242214
if(isMultiConfig)
@@ -356,22 +328,39 @@ if(WITH_TESTS)
356328
include(GoogleTest)
357329
endif()
358330

331+
if(USE_SYSTEM_LIBUV)
332+
set(LIBUV_SYSTEM_REPLACE "find_dependency(libuv CONFIG)")
333+
endif()
334+
335+
if(USE_SYSTEM_EIGEN)
336+
set(EIGEN_SYSTEM_REPLACE "find_package(Eigen3 CONFIG)")
337+
endif()
338+
339+
set(FILENAME_DEP_REPLACE "get_filename_component(SELF_DIR \"$\{CMAKE_CURRENT_LIST_FILE\}\" PATH)")
340+
set(SELF_DIR "$\{SELF_DIR\}")
341+
set(WPIUNITS_DEP_REPLACE_IMPL "find_dependency(wpiunits)")
342+
set(WPIUTIL_DEP_REPLACE "find_dependency(wpiutil)")
359343
add_subdirectory(wpiutil)
360344

361345
if(WITH_NTCORE)
346+
set(NTCORE_DEP_REPLACE "find_dependency(ntcore)")
347+
set(WPINET_DEP_REPLACE "find_dependency(wpinet)")
362348
add_subdirectory(wpinet)
363349
add_subdirectory(ntcore)
364350
endif()
365351

366352
if(WITH_WPIMATH)
367353
if(WITH_JAVA)
354+
set(WPIUNITS_DEP_REPLACE ${WPIUNITS_DEP_REPLACE_IMPL})
368355
add_subdirectory(wpiunits)
369356
endif()
357+
set(WPIMATH_DEP_REPLACE "find_dependency(wpimath)")
370358
add_subdirectory(wpimath)
371359
endif()
372360

373361
if(WITH_WPIUNITS AND NOT WITH_WPIMATH)
374362
# In case of building wpiunits standalone
363+
set(WPIUNITS_DEP_REPLACE ${WPIUNITS_DEP_REPLACE_IMPL})
375364
add_subdirectory(wpiunits)
376365
endif()
377366

@@ -389,19 +378,22 @@ if(WITH_GUI)
389378
endif()
390379

391380
if(WITH_WPILIB OR WITH_SIMULATION_MODULES)
392-
set(HAL_DEP_REPLACE ${HAL_DEP_REPLACE_IMPL})
381+
set(HAL_DEP_REPLACE "find_dependency(hal)")
393382
add_subdirectory(hal)
394383
endif()
395384

396385
if(WITH_CSCORE)
397-
set(CSCORE_DEP_REPLACE ${CSCORE_DEP_REPLACE_IMPL})
398-
set(CAMERASERVER_DEP_REPLACE ${CAMERASERVER_DEP_REPLACE_IMPL})
386+
set(CAMERASERVER_DEP_REPLACE "find_dependency(cameraserver)")
387+
set(CSCORE_DEP_REPLACE "find_dependency(cscore)")
399388
add_subdirectory(cscore)
400389
add_subdirectory(cameraserver)
401390
endif()
402391

403392
if(WITH_WPILIB)
404-
set(WPILIBC_DEP_REPLACE ${WPILIBC_DEP_REPLACE_IMPL})
393+
set(APRILTAG_DEP_REPLACE "find_dependency(apriltag)")
394+
set(WPILIBC_DEP_REPLACE "find_dependency(wpilibc)")
395+
set(WPILIBJ_DEP_REPLACE "find_dependency(wpilibj)")
396+
set(WPILIBNEWCOMMANDS_DEP_REPLACE "find_dependency(wpilibNewCommands)")
405397
add_subdirectory(apriltag)
406398
add_subdirectory(wpilibj)
407399
add_subdirectory(wpilibc)

wpilib-config.cmake.in

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,8 @@ find_dependency(Threads)
1212
@NTCORE_DEP_REPLACE@
1313
@WPILIBC_DEP_REPLACE@
1414
@WPILIBNEWCOMMANDS_DEP_REPLACE@
15+
@WPILIBJ_DEP_REPLACE@
1516
@WPIMATH_DEP_REPLACE@
1617
@WPINET_DEP_REPLACE@
18+
@WPIUNITS_DEP_REPLACE@
1719
@WPIUTIL_DEP_REPLACE@
18-
if(@WITH_JAVA@)
19-
@WPILIBJ_DEP_REPLACE@
20-
@WPIUNITS_DEP_REPLACE@
21-
endif()

0 commit comments

Comments
 (0)