Skip to content

Commit

Permalink
CMAKE: Make CMake config idempotent w.r.t. target discovery and creation
Browse files Browse the repository at this point in the history
  • Loading branch information
vyasr committed Jan 22, 2024
1 parent 9d18b6b commit 9697de2
Showing 1 changed file with 28 additions and 0 deletions.
28 changes: 28 additions & 0 deletions cmake/ucx-targets.cmake.in
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,34 @@
get_filename_component(prefix "${CMAKE_CURRENT_LIST_DIR}/../../.." ABSOLUTE)
set(exec_prefix "@exec_prefix@")

set(_ucxx_targets_defined "")
set(_ucxx_targets_not_defined "")
set(_ucxx_expected_targets "")
foreach(_ucxx_expected_target IN ITEMS ucx::ucs ucx::uct ucx::ucp)
list(APPEND _ucxx_expected_targets "${_ucxx_expected_target}")
if(TARGET "${_ucxx_expected_target}")
list(APPEND _ucxx_targets_defined "${_ucxx_expected_target}")
else()
list(APPEND _ucxx_targets_not_defined "${_ucxx_expected_target}")
endif()
endforeach()
unset(_ucxx_expected_target)
if(NOT _ucxx_targets_not_defined)
unset(_ucxx_targets_defined)
unset(_ucxx_targets_not_defined)
unset(_ucxx_expected_targets)
unset(CMAKE_IMPORT_FILE_VERSION)
return()
endif()
if(NOT _ucxx_targets_defined STREQUAL "")
string(REPLACE ";" ", " _ucxx_targets_defined_text "${_ucxx_targets_defined}")
string(REPLACE ";" ", " _ucxx_targets_not_defined_text "${_ucxx_targets_not_defined}")
message(FATAL_ERROR "Some (but not all) ucx targets were already defined.\nTargets Defined: ${_ucxx_targets_defined_text}\nTargets not yet defined: ${_ucxx_targets_not_defined_text}\n")
endif()
unset(_ucxx_targets_defined)
unset(_ucxx_targets_not_defined)
unset(_ucxx_expected_targets)

add_library(ucx::ucs SHARED IMPORTED)

set_target_properties(ucx::ucs PROPERTIES
Expand Down

0 comments on commit 9697de2

Please sign in to comment.