From 5abb5fe9aa2b3b9f3af45bca612a4abe4a0e3b89 Mon Sep 17 00:00:00 2001 From: "M. Samil Atesoglu" Date: Wed, 14 Jan 2026 17:47:58 +0300 Subject: [PATCH] Fix CMake generation error by generating headers to binary paths Introduces dependencies' FBS generations during CMake run too. --- Toolchain/CMake/Scripts/FindNodosSDK.cmake | 17 +- .../Scripts/GeneratePluginTargetsAuto.cmake | 7 +- Toolchain/CMake/Scripts/Projects.cmake | 297 ++++++++++++------ Toolchain/nosman/Cargo.lock | 31 +- 4 files changed, 230 insertions(+), 122 deletions(-) diff --git a/Toolchain/CMake/Scripts/FindNodosSDK.cmake b/Toolchain/CMake/Scripts/FindNodosSDK.cmake index 7c0097d..6d44c9f 100644 --- a/Toolchain/CMake/Scripts/FindNodosSDK.cmake +++ b/Toolchain/CMake/Scripts/FindNodosSDK.cmake @@ -81,16 +81,23 @@ endmacro() macro(nos_find_plugin_sdk requested_sdk_version out_sdk_target out_sdk_dir) if (${requested_sdk_version} VERSION_GREATER_EQUAL "39.11.0") - nos_get_package("nodos.sdk.plugin" ${requested_sdk_version} sdk_target_name) + nos_download_package("nodos.sdk.plugin" ${requested_sdk_version} sdk_manifest_path sdk_path sdk_info_json) + if(NOT DEFINED FLATC_EXECUTABLE) + set(_flatc_exe "flatc${CMAKE_EXECUTABLE_SUFFIX}") + if (EXISTS "${sdk_path}/Binaries/${_flatc_exe}") + set(FLATC_EXECUTABLE "${sdk_path}/Binaries/${_flatc_exe}" CACHE PATH "Path to the flatc executable" FORCE) + elseif (EXISTS "${sdk_path}/bin/${_flatc_exe}") + set(FLATC_EXECUTABLE "${sdk_path}/bin/${_flatc_exe}" CACHE PATH "Path to the flatc executable" FORCE) + endif() + endif() + _nos_make_package_target_name("nodos.sdk.plugin" ${requested_sdk_version} sdk_target_name) + nos_configure_package("nodos.sdk.plugin" ${requested_sdk_version} ${sdk_target_name} ${sdk_path} ${sdk_manifest_path} "${sdk_info_json}") if (NOT TARGET ${sdk_target_name}) nos_fatal_error("Failed to find Nodos Plugin SDK ${requested_sdk_version}.") endif() - nos_get_package_info("nodos.sdk.plugin" ${requested_sdk_version} "manifest_path" sdk_manifest_path) - get_filename_component(sdk_path "${sdk_manifest_path}" DIRECTORY) set(${out_sdk_target} ${sdk_target_name}) set(${out_sdk_dir} ${sdk_path}) - set(FLATC_EXECUTABLE "${sdk_path}/Binaries/flatc" CACHE PATH "Path to the flatc executable" FORCE) else() # For all nodos sdks, call `nodos sdk-info ${requested_sdk_version} plugin` and read the json if ret code is 0 if(NOT NOSMAN_EXECUTABLE) @@ -135,4 +142,4 @@ macro(nos_find_plugin_sdk requested_sdk_version out_sdk_target out_sdk_dir) set(FLATC_EXECUTABLE "${plugin_sdk_path}/bin/flatc" CACHE PATH "Path to the flatc executable" FORCE) endif() endif() -endmacro() \ No newline at end of file +endmacro() diff --git a/Toolchain/CMake/Scripts/GeneratePluginTargetsAuto.cmake b/Toolchain/CMake/Scripts/GeneratePluginTargetsAuto.cmake index 6632ff4..674fb8f 100644 --- a/Toolchain/CMake/Scripts/GeneratePluginTargetsAuto.cmake +++ b/Toolchain/CMake/Scripts/GeneratePluginTargetsAuto.cmake @@ -67,7 +67,10 @@ function(_nos_generate_plugin_target plugin_manifest_file_path plugin_name manif _nos_get_custom_type_paths_from_json(${plugin_manifest_file_path} TYPE_FOLDERS) if(TYPE_FOLDERS) - nos_generate_flatbuffers("${TYPE_FOLDERS}" "${CMAKE_CURRENT_SOURCE_DIR}/Include/${target_name}" "cpp" "${NOS_SDK_DIR}/Types;${found_dep_dirs}" ${target_name}_generated) + set(generated_include_root "${CMAKE_CURRENT_BINARY_DIR}/__generated__/${target_name}/Include") + set(generated_include_dir "${generated_include_root}/${target_name}") + nos_generate_flatbuffers("${TYPE_FOLDERS}" "${generated_include_dir}" "cpp" "${NOS_SDK_DIR}/Types;${found_dep_dirs}" ${target_name}_generated) + list(APPEND plugin_include_folders "${generated_include_root}") list(APPEND plugin_dep_targets ${target_name}_generated) endif() @@ -203,4 +206,4 @@ foreach(cur_plugin_dir ${MODULE_DIRS}) endif() nos_colored_message(COLOR GREEN "Scanning for plugins in ${cur_plugin_dir}") _nos_process_plugin_directories_recursive("${cur_plugin_dir}" "" "") -endforeach() \ No newline at end of file +endforeach() diff --git a/Toolchain/CMake/Scripts/Projects.cmake b/Toolchain/CMake/Scripts/Projects.cmake index db4b96a..875189b 100644 --- a/Toolchain/CMake/Scripts/Projects.cmake +++ b/Toolchain/CMake/Scripts/Projects.cmake @@ -2,6 +2,14 @@ set(NOS_SOURCE_FILE_TYPES ".cpp" ".cc" ".cxx" ".c" ".inl" ".h" ".hxx" ".hpp" ".py" ".rc") set(NOS_HEADER_FILE_TYPES ".h" ".hxx" ".hpp" ".natvis") +function(_nos_make_package_target_name name version out_target_name) + string(REPLACE "." "_" target_name ${name}) + string(REPLACE "." "_" version_str ${version}) + string(APPEND target_name "-v${version_str}") + string(PREPEND target_name "__nos_gen__") + set(${out_target_name} ${target_name} PARENT_SCOPE) +endfunction() + function(nos_generate_flatbuffers fbs_paths dst_folder out_language include_folders out_target_name) if(NOT DEFINED FLATC_EXECUTABLE) nos_fatal_error("Flatbuffers compiler not found. Please set FLATC_EXECUTABLE variable.") @@ -102,12 +110,20 @@ function(nos_generate_flatbuffers fbs_paths dst_folder out_language include_fold nos_message(STATUS "Build Task (${out_target_name}): ${fbs_file} -> ${generated_file}") list(APPEND out_list ${generated_file}) - add_custom_command(OUTPUT ${generated_file} - COMMAND ${flatc_command} - --object-suffix "" # Workaround for passing empty string to command in CMake - DEPENDS ${fbs_file} - COMMENT "Generating flatbuffers: ${fbs_file} (with ${FLATC_EXECUTABLE})" - VERBATIM) + get_property(_nos_flatbuffers_outputs GLOBAL PROPERTY NOS_FLATBUFFERS_OUTPUTS) + if(NOT _nos_flatbuffers_outputs) + set(_nos_flatbuffers_outputs "") + endif() + list(FIND _nos_flatbuffers_outputs "${generated_file}" _nos_output_idx) + if(_nos_output_idx EQUAL -1) + add_custom_command(OUTPUT ${generated_file} + COMMAND ${flatc_command} + --object-suffix "" # Workaround for passing empty string to command in CMake + DEPENDS ${fbs_file} + COMMENT "Generating flatbuffers: ${fbs_file} (with ${FLATC_EXECUTABLE})" + VERBATIM) + set_property(GLOBAL APPEND PROPERTY NOS_FLATBUFFERS_OUTPUTS "${generated_file}") + endif() endforeach() add_custom_target(${out_target_name} DEPENDS ${out_list}) set_target_properties(${out_target_name} PROPERTIES FOLDER "Build Tasks") @@ -127,137 +143,212 @@ function(nos_get_files_recursive folder file_suffixes out_files_var) set(${out_files_var} ${local_files} PARENT_SCOPE) endfunction() -function(nos_get_package_info name version query out_var) - execute_process( - COMMAND ${NOSMAN_EXECUTABLE} --workspace "${NOSMAN_WORKSPACE_DIR}" info ${name} ${version} --relaxed - RESULT_VARIABLE nosman_result - OUTPUT_VARIABLE nosman_output +function(_nos_get_custom_type_paths_from_manifest json_file base_dir out_list) + if(NOT EXISTS "${json_file}") + message(FATAL_ERROR "JSON file not found: ${json_file}") + endif() + + file(READ "${json_file}" json_content) + + string(JSON has_custom_types ERROR_VARIABLE err + GET "${json_content}" custom_types ) - if(nosman_result EQUAL 0) - string(STRIP ${nosman_output} nosman_output) - string(JSON nos_plugin_info_query_result ERROR_VARIABLE err GET "${nosman_output}" "${query}") - if(err STREQUAL "NOTFOUND") - set(${out_var} ${nos_plugin_info_query_result} PARENT_SCOPE) + if(err) + if (EXISTS "${base_dir}/Types") + set(${out_list} "${base_dir}/Types" PARENT_SCOPE) else() - nos_fatal_error("Failed to get info '${query}' from package ${name}-${version}.") - set(${out_var} "NOTFOUND") + set(${out_list} "" PARENT_SCOPE) endif() - else() - nos_fatal_error("Failed to find Nodos package ${name}-${version} in workspace") + return() endif() -endfunction() -function(nos_find_package_path name version out_var) - nos_get_package_info(${name} ${version} "manifest_path" manifest_path) - string(STRIP ${manifest_path} manifest_path) - get_filename_component(package_path ${manifest_path} DIRECTORY) - cmake_path(SET package_path "${package_path}") - nos_message(STATUS "Found ${name} ${version}: ${package_path}") - set(${out_var} ${package_path} PARENT_SCOPE) + string(JSON len LENGTH "${json_content}" custom_types) + if ("${len}" STREQUAL "0") + set(${out_list} "" PARENT_SCOPE) + return() + endif() + + set(result "") + math(EXPR last "${len} - 1") + foreach(i RANGE 0 ${last}) + string(JSON value GET "${json_content}" custom_types ${i}) + list(APPEND result "${base_dir}/${value}") + endforeach() + + set(${out_list} "${result}" PARENT_SCOPE) endfunction() -function(nos_get_package name version out_target_name) - if(NOT DEFINED NOSMAN_WORKSPACE_DIR) - nos_fatal_error("NOSMAN_WORKSPACE_DIR is not defined. Set it to the path of the workspace where modules will be installed.") +function(_nos_get_dependency_package_paths_from_json json out_list) + string(JSON dep_count ERROR_VARIABLE err LENGTH "${json}" info dependencies) + if(err OR dep_count EQUAL 0) + set(${out_list} "" PARENT_SCOPE) + return() endif() - string(REPLACE "." "_" target_name ${name}) - string(REPLACE "." "_" version_str ${version}) - string(APPEND target_name "-v${version_str}") - string(PREPEND target_name "__nos_gen__") + set(result "") + math(EXPR last "${dep_count} - 1") + foreach(i RANGE 0 ${last}) + string(JSON dep_name GET "${json}" info dependencies ${i} name) + string(JSON dep_version GET "${json}" info dependencies ${i} version) + nos_find_package_path(${dep_name} ${dep_version} dep_path) + list(APPEND result "${dep_path}") + endforeach() - set(${out_target_name} ${target_name} PARENT_SCOPE) + set(${out_list} "${result}" PARENT_SCOPE) +endfunction() - if(TARGET ${target_name}) - nos_message(STATUS "Package ${name}-${version} already found in project. Using existing target.") - return() +function(nos_download_package name version out_manifest_path out_package_path out_json) + if(NOT DEFINED NOSMAN_WORKSPACE_DIR) + nos_fatal_error("NOSMAN_WORKSPACE_DIR is not defined. Set it to the path of the workspace where modules will be installed.") + endif() + if(NOT NOSMAN_EXECUTABLE) + nos_fatal_error("Unable to find nosman. Set NOSMAN_EXECUTABLE to use nos_download_package.") endif() nos_message(STATUS "Searching/installing Nodos package ${name} ${version} in workspace") - # TODO: Download if not exists. - if(NOSMAN_EXECUTABLE) - # Install module if not exists, silently + # Install module if not exists, silently + execute_process( + COMMAND ${NOSMAN_EXECUTABLE} --workspace "${NOSMAN_WORKSPACE_DIR}" install ${name} ${version} + RESULT_VARIABLE nosman_result + OUTPUT_QUIET + ) + + if(NOT nosman_result EQUAL 0) + nos_message(STATUS "Failed to install ${name} ${version} in workspace. Trying to rescan modules.") execute_process( - COMMAND ${NOSMAN_EXECUTABLE} --workspace "${NOSMAN_WORKSPACE_DIR}" install ${name} ${version} + COMMAND ${NOSMAN_EXECUTABLE} --workspace "${NOSMAN_WORKSPACE_DIR}" rescan --fetch-index RESULT_VARIABLE nosman_result OUTPUT_QUIET ) - - if(NOT nosman_result EQUAL 0) - nos_message(STATUS "Failed to install ${name} ${version} in workspace. Trying to rescan modules.") - execute_process( - COMMAND ${NOSMAN_EXECUTABLE} --workspace "${NOSMAN_WORKSPACE_DIR}" rescan --fetch-index - RESULT_VARIABLE nosman_result - OUTPUT_QUIET - ) - - if (NOT nosman_result EQUAL 0) - nos_fatal_error("Failed to rescan modules in workspace. Please check your NOSMAN_WORKSPACE_DIR and NOSMAN_EXECUTABLE variables.") - endif() - - nos_message(STATUS "Rescanning modules in workspace succeeded. Trying to install ${name} ${version} again.") - execute_process( - COMMAND ${NOSMAN_EXECUTABLE} --workspace "${NOSMAN_WORKSPACE_DIR}" install ${name} ${version} - RESULT_VARIABLE nosman_result - OUTPUT_QUIET - ) - if (NOT nosman_result EQUAL 0) - nos_fatal_error("Failed to install ${name} ${version} in workspace.") - endif() + + if (NOT nosman_result EQUAL 0) + nos_fatal_error("Failed to rescan modules in workspace. Please check your NOSMAN_WORKSPACE_DIR and NOSMAN_EXECUTABLE variables.") endif() + nos_message(STATUS "Rescanning modules in workspace succeeded. Trying to install ${name} ${version} again.") execute_process( - COMMAND ${NOSMAN_EXECUTABLE} --workspace "${NOSMAN_WORKSPACE_DIR}" info ${name} ${version} --relaxed + COMMAND ${NOSMAN_EXECUTABLE} --workspace "${NOSMAN_WORKSPACE_DIR}" install ${name} ${version} RESULT_VARIABLE nosman_result - OUTPUT_VARIABLE nosman_output + OUTPUT_QUIET ) + if (NOT nosman_result EQUAL 0) + nos_fatal_error("Failed to install ${name} ${version} in workspace.") + endif() + endif() - if(nosman_result EQUAL 0) - string(STRIP ${nosman_output} nosman_output) + execute_process( + COMMAND ${NOSMAN_EXECUTABLE} --workspace "${NOSMAN_WORKSPACE_DIR}" info ${name} ${version} --relaxed + RESULT_VARIABLE nosman_result + OUTPUT_VARIABLE nosman_output + ) - nos_message(STATUS "Creating target ${target_name} for package ${name}-${version}") - add_library(${target_name} INTERFACE) + if(nosman_result EQUAL 0) + string(STRIP ${nosman_output} nosman_output) + string(JSON manifest_path GET "${nosman_output}" "manifest_path") + get_filename_component(package_path ${manifest_path} DIRECTORY) + cmake_path(SET package_path "${package_path}") + set(${out_manifest_path} ${manifest_path} PARENT_SCOPE) + set(${out_package_path} ${package_path} PARENT_SCOPE) + set(${out_json} ${nosman_output} PARENT_SCOPE) + else() + nos_fatal_error("Failed to find Nodos package ${name}-${version} in workspace") + endif() +endfunction() - # Get module path - string(JSON plugin_path GET "${nosman_output}" "manifest_path") - get_filename_component(plugin_path ${plugin_path} DIRECTORY) - cmake_path(SET plugin_path "${plugin_path}") +function(nos_configure_package name version target_name plugin_path manifest_path nosman_output) + if(TARGET ${target_name}) + nos_message(STATUS "Package ${name}-${version} already found in project. Using existing target.") + return() + endif() - # Add fbs files to target - nos_get_files_recursive(${plugin_path} ".fbs" fbs_files) - list(LENGTH fbs_files fbs_count) - nos_message(STATUS "Found ${fbs_count} schema files in package ${name}-${version}") - foreach(fbs_file ${fbs_files}) - nos_message(STATUS "${name}-${version} schema file: ${fbs_file}") - endforeach() - target_sources(${target_name} PRIVATE ${fbs_files}) - source_group("Types" FILES ${fbs_files}) - - # Optional: Get "public_include_folder" from JSON output. If not found skip it - cmake_path(SET ${target_name}_INCLUDE_DIR "${plugin_path}/Include") - string(JSON nos_plugin_include_folder ERROR_VARIABLE err GET "${nosman_output}" "public_include_folder") - if (err STREQUAL "NOTFOUND") - nos_message(STATUS "Found ${name} ${version} include folder: ${nos_plugin_include_folder}") - cmake_path(SET ${target_name}_INCLUDE_DIR "${nos_plugin_include_folder}") - nos_message(STATUS "Found public header files in package ${name}-${version}. Adding to target.") - nos_get_files_recursive(${${target_name}_INCLUDE_DIR} ".h;.hpp;.hxx;.hh" include_files) - target_sources(${target_name} PRIVATE ${include_files}) - nos_get_files_recursive(${plugin_path} ".natvis" natvis_files) - target_sources(${target_name} PRIVATE ${natvis_files}) - endif() - target_include_directories(${target_name} INTERFACE ${${target_name}_INCLUDE_DIR}) - set_target_properties(${target_name} PROPERTIES FOLDER "nosman") - target_link_directories(${target_name} INTERFACE ${plugin_path}/Libraries) + nos_message(STATUS "Creating target ${target_name} for package ${name}-${version}") + add_library(${target_name} INTERFACE) + + # Generate custom type headers into the build tree for installed packages + _nos_get_custom_type_paths_from_manifest("${manifest_path}" "${plugin_path}" type_folders) + if(type_folders) + nos_normalize_plugin_name(${name} normalized_name) + set(generated_include_root "${CMAKE_CURRENT_BINARY_DIR}/__generated__/${target_name}/Include") + nos_message(STATUS "Generating custom types for package ${name}-${version} into ${generated_include_root}/${normalized_name}") + set(generated_include_dir "${generated_include_root}/${normalized_name}") + _nos_get_dependency_package_paths_from_json("${nosman_output}" dep_paths) + if (DEFINED NOS_SDK_DIR) + set(flatc_include_dirs "${NOS_SDK_DIR}/Types;${plugin_path};${dep_paths}") + else() + set(flatc_include_dirs "${plugin_path};${dep_paths}") + endif() + # TODO: flatc_include_dirs should be prefixed by nosmalizedPluginName/ and put in __flatbuffers_includes_/plugin_name_v1_2_3/ or something like that. + nos_generate_flatbuffers("${type_folders}" "${generated_include_dir}" "cpp" "${flatc_include_dirs}" ${target_name}_generated) + add_dependencies(${target_name} ${target_name}_generated) + target_include_directories(${target_name} INTERFACE "${generated_include_root};${generated_include_dir}") + endif() + + # Add fbs files to target + nos_get_files_recursive(${plugin_path} ".fbs" fbs_files) + list(LENGTH fbs_files fbs_count) + nos_message(STATUS "Found ${fbs_count} schema files in package ${name}-${version}") + foreach(fbs_file ${fbs_files}) + nos_message(STATUS "${name}-${version} schema file: ${fbs_file}") + endforeach() + target_sources(${target_name} PRIVATE ${fbs_files}) + source_group("Types" FILES ${fbs_files}) + + # Optional: Get "public_include_folder" from JSON output. If not found skip it + cmake_path(SET ${target_name}_INCLUDE_DIR "${plugin_path}/Include") + string(JSON nos_plugin_include_folder ERROR_VARIABLE err GET "${nosman_output}" "public_include_folder") + if (err STREQUAL "NOTFOUND") + nos_message(STATUS "Found ${name} ${version} include folder: ${nos_plugin_include_folder}") + cmake_path(SET ${target_name}_INCLUDE_DIR "${nos_plugin_include_folder}") + nos_message(STATUS "Found public header files in package ${name}-${version}. Adding to target.") + nos_get_files_recursive(${${target_name}_INCLUDE_DIR} ".h;.hpp;.hxx;.hh" include_files) + target_sources(${target_name} PRIVATE ${include_files}) + nos_get_files_recursive(${plugin_path} ".natvis" natvis_files) + target_sources(${target_name} PRIVATE ${natvis_files}) + endif() + target_include_directories(${target_name} INTERFACE ${${target_name}_INCLUDE_DIR}) + set_target_properties(${target_name} PROPERTIES FOLDER "nosman") + target_link_directories(${target_name} INTERFACE ${plugin_path}/Libraries) +endfunction() + +function(nos_get_package_info name version query out_var) + execute_process( + COMMAND ${NOSMAN_EXECUTABLE} --workspace "${NOSMAN_WORKSPACE_DIR}" info ${name} ${version} --relaxed + RESULT_VARIABLE nosman_result + OUTPUT_VARIABLE nosman_output + ) + + if(nosman_result EQUAL 0) + string(STRIP ${nosman_output} nosman_output) + string(JSON nos_plugin_info_query_result ERROR_VARIABLE err GET "${nosman_output}" "${query}") + if(err STREQUAL "NOTFOUND") + set(${out_var} ${nos_plugin_info_query_result} PARENT_SCOPE) else() - nos_fatal_error("Failed to find ${name} ${version} include folder") + nos_fatal_error("Failed to get info '${query}' from package ${name}-${version}.") + set(${out_var} "NOTFOUND") endif() else() - nos_fatal_error("Unable to find nosman. Set NOSMAN_EXECUTABLE to use nos_get_package.") + nos_fatal_error("Failed to find Nodos package ${name}-${version} in workspace") endif() endfunction() +function(nos_find_package_path name version out_var) + nos_get_package_info(${name} ${version} "manifest_path" manifest_path) + string(STRIP ${manifest_path} manifest_path) + get_filename_component(package_path ${manifest_path} DIRECTORY) + cmake_path(SET package_path "${package_path}") + nos_message(STATUS "Found ${name} ${version}: ${package_path}") + set(${out_var} ${package_path} PARENT_SCOPE) +endfunction() + +function(nos_get_package name version out_target_name) + _nos_make_package_target_name(${name} ${version} target_name) + set(${out_target_name} ${target_name} PARENT_SCOPE) + nos_download_package(${name} ${version} manifest_path package_path nosman_output) + nos_configure_package(${name} ${version} ${target_name} ${package_path} ${manifest_path} "${nosman_output}") +endfunction() + function(nos_get_plugin_info name version query out_var) nos_get_package_info(${name} ${version} ${query} ${out_var}) set(${out_var} ${${out_var}} PARENT_SCOPE) @@ -528,4 +619,4 @@ function(nos_get_short_vendor_name plugin_name out_vendor_name) # Return set(${out_vendor_name} "${ns}" PARENT_SCOPE) -endfunction() \ No newline at end of file +endfunction() diff --git a/Toolchain/nosman/Cargo.lock b/Toolchain/nosman/Cargo.lock index e65170b..e984e4e 100644 --- a/Toolchain/nosman/Cargo.lock +++ b/Toolchain/nosman/Cargo.lock @@ -213,10 +213,11 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.31" +version = "1.2.52" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3a42d84bb6b69d3a8b3eaacf0d88f179e1929695e1ad012b6cf64d9caaa5fd2" +checksum = "cd4932aefd12402b36c60956a4fe0035421f544799057659ff86f923657aada3" dependencies = [ + "find-msvc-tools", "jobserver", "libc", "shlex", @@ -692,6 +693,12 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "find-msvc-tools" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f449e6c6c08c865631d4890cfacf252b3d396c9bcc83adb6623cdb02a8336c41" + [[package]] name = "flate2" version = "1.1.2" @@ -1716,9 +1723,9 @@ checksum = "a4895175b425cb1f87721b59f0f286c2092bd4af812243672510e1ac53e2e0ad" [[package]] name = "openssl" -version = "0.10.73" +version = "0.10.75" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8505734d46c8ab1e19a1dce3aef597ad87dcb4c37e7188231769bd6bd51cebf8" +checksum = "08838db121398ad17ab8531ce9de97b244589089e290a384c900cb9ff7434328" dependencies = [ "bitflags", "cfg-if", @@ -1748,9 +1755,9 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e" [[package]] name = "openssl-sys" -version = "0.9.109" +version = "0.9.111" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90096e2e47630d78b7d1c20952dc621f957103f8bc2c8359ec81290d75238571" +checksum = "82cab2d520aa75e3c58898289429321eb788c3106963d0dc886ec7a5f4adc321" dependencies = [ "cc", "libc", @@ -2076,9 +2083,9 @@ checksum = "2b15c43186be67a4fd63bee50d0303afffcef381492ebe2c5d87f324e1b8815c" [[package]] name = "reqwest" -version = "0.12.22" +version = "0.12.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbc931937e6ca3a06e3b6c0aa7841849b160a90351d6ab467a8b9b9959767531" +checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" dependencies = [ "base64", "bytes", @@ -2251,9 +2258,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.14.0" +version = "2.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49db231d56a190491cb4aeda9527f1ad45345af50b0851622a7adb8c03b01c32" +checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" dependencies = [ "core-foundation-sys", "libc", @@ -2690,9 +2697,9 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.6.6" +version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2" +checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8" dependencies = [ "bitflags", "bytes",