Skip to content

Commit

Permalink
rapids-cpm normalize all package names internally
Browse files Browse the repository at this point in the history
  • Loading branch information
robertmaynard committed Oct 24, 2024
1 parent e5897d8 commit 95fe56f
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 28 deletions.
1 change: 1 addition & 0 deletions rapids-cmake/cpm/detail/get_default_json.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ get_default_json
#]=======================================================================]
function(get_default_json package_name output_variable)
list(APPEND CMAKE_MESSAGE_CONTEXT "rapids.cpm.get_default_json")
string(TOLOWER package_name package_name)
get_property(json_data GLOBAL PROPERTY rapids_cpm_${package_name}_json)
set(${output_variable} "${json_data}" PARENT_SCOPE)
endfunction()
1 change: 1 addition & 0 deletions rapids-cmake/cpm/detail/get_override_json.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ get_override_json
#]=======================================================================]
function(get_override_json package_name output_variable)
list(APPEND CMAKE_MESSAGE_CONTEXT "rapids.cpm.get_override_json")
string(TOLOWER package_name package_name)
get_property(json_data GLOBAL PROPERTY rapids_cpm_${package_name}_override_json)
set(${output_variable} "${json_data}" PARENT_SCOPE)
endfunction()
9 changes: 6 additions & 3 deletions rapids-cmake/cpm/detail/load_preset_versions.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -75,10 +75,13 @@ function(rapids_cpm_load_preset_versions)
string(JSON package_name MEMBER "${json_data}" packages ${index})
string(JSON data GET "${json_data}" packages "${package_name}")

get_property(already_exists GLOBAL PROPERTY rapids_cpm_${package_name}_json SET)
# Normalize the names all to lower case. This will allow us to better
# support overrides with different package name casing
string(TOLOWER package_name normalized_pkg_name)
get_property(already_exists GLOBAL PROPERTY rapids_cpm_${normalized_pkg_name}_json SET)
if(NOT already_exists)
set_property(GLOBAL PROPERTY rapids_cpm_${package_name}_json "${data}")
set_property(GLOBAL PROPERTY rapids_cpm_${package_name}_json_file "${filepath}")
set_property(GLOBAL PROPERTY rapids_cpm_${normalized_pkg_name}_json "${data}")
set_property(GLOBAL PROPERTY rapids_cpm_${normalized_pkg_name}_json_file "${filepath}")
endif()
endforeach()

Expand Down
54 changes: 29 additions & 25 deletions rapids-cmake/cpm/package_override.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -94,32 +94,36 @@ function(rapids_cpm_package_override _rapids_override_filepath)
# cmake-lint: disable=E1120
foreach(index RANGE ${package_count})
string(JSON package_name MEMBER "${json_data}" packages ${index})
get_property(override_exists GLOBAL PROPERTY rapids_cpm_${package_name}_override_json DEFINED)
if(NOT (override_exists OR DEFINED CPM_${package_name}_SOURCE))
# only add the first override for a project we encounter
string(JSON data GET "${json_data}" packages "${package_name}")
set_property(GLOBAL PROPERTY rapids_cpm_${package_name}_override_json "${data}")
set_property(GLOBAL PROPERTY rapids_cpm_${package_name}_override_json_file
"${_rapids_override_filepath}")

# establish the fetch content
include(FetchContent)
include("${rapids-cmake-dir}/cpm/detail/package_details.cmake")
rapids_cpm_package_details(${package_name} version repository tag shallow exclude)

include("${rapids-cmake-dir}/cpm/detail/generate_patch_command.cmake")
rapids_cpm_generate_patch_command(${package_name} ${version} patch_command)

unset(exclude_from_all)
if(exclude AND CMAKE_VERSION VERSION_GREATER_EQUAL 3.28.0)
set(exclude_from_all EXCLUDE_FROM_ALL)
endif()
FetchContent_Declare(${package_name}
GIT_REPOSITORY ${repository}
GIT_TAG ${tag}
GIT_SHALLOW ${shallow}
${patch_command} ${exclude_from_all})
string(TOLOWER package_name normalized_pkg_name)
get_property(override_exists GLOBAL PROPERTY rapids_cpm_${normalized_pkg_name}_override_json DEFINED)

if(override_exists OR DEFINED CPM_${package_name}_SOURCE)
continue()
endif()

# only add the first override for a project we encounter
string(JSON data GET "${json_data}" packages "${package_name}")
set_property(GLOBAL PROPERTY rapids_cpm_${normalized_pkg_name}_override_json "${data}")
set_property(GLOBAL PROPERTY rapids_cpm_${normalized_pkg_name}_override_json_file
"${_rapids_override_filepath}")

# establish the fetch content
include(FetchContent)
include("${rapids-cmake-dir}/cpm/detail/package_details.cmake")
rapids_cpm_package_details(${package_name} version repository tag shallow exclude)

include("${rapids-cmake-dir}/cpm/detail/generate_patch_command.cmake")
rapids_cpm_generate_patch_command(${package_name} ${version} patch_command)

unset(exclude_from_all)
if(exclude AND CMAKE_VERSION VERSION_GREATER_EQUAL 3.28.0)
set(exclude_from_all EXCLUDE_FROM_ALL)
endif()
FetchContent_Declare(${package_name}
GIT_REPOSITORY ${repository}
GIT_TAG ${tag}
GIT_SHALLOW ${shallow}
${patch_command} ${exclude_from_all})
endforeach()
endif()
endfunction()

0 comments on commit 95fe56f

Please sign in to comment.