cmake/cephfs: fix options to enable client and dependencies

invoking cmake with -DWITH_LIBCEPHFS=OFF fails to configure the client target:

CMake Error at src/client/CMakeLists.txt:13 (target_link_libraries):
  Target "client" links to:

    Boost::locale

  but the target was not found.  Possible reasons include:

    * There is a typo in the target name.
    * A find_package call is missing for an IMPORTED target.
    * An ALIAS target is missing.

because the client target is not conditional on WITH_LIBCEPHFS in src/CMakeLists.txt:

add_subdirectory(client)

if(WITH_LIBCEPHFS)

because client is also needed for ceph-fuse, make the client and its
dependencies depend on WITH_LIBCEPHFS OR WITH_FUSE

Signed-off-by: Casey Bodley <cbodley@redhat.com>
This commit is contained in:
Casey Bodley 2025-03-05 13:22:38 -05:00
parent d492e85ad0
commit 70eb1d64ac
2 changed files with 5 additions and 2 deletions

View File

@ -729,7 +729,7 @@ if(WITH_RADOSGW AND WITH_RADOSGW_LUA_PACKAGES)
list(APPEND BOOST_COMPONENTS filesystem)
endif()
if(WITH_LIBCEPHFS)
if(WITH_LIBCEPHFS OR WITH_FUSE)
find_package(ICU REQUIRED COMPONENTS uc i18n)
list(APPEND BOOST_COMPONENTS locale)
endif()

View File

@ -833,7 +833,10 @@ install(PROGRAMS
DESTINATION sbin)
add_subdirectory(bash_completion)
add_subdirectory(client)
if(WITH_LIBCEPHFS OR WITH_FUSE)
add_subdirectory(client)
endif()
if(WITH_LIBCEPHFS)
set(libcephfs_srcs libcephfs.cc)