Skip to content

Improve check tips#7310

Merged
waruqi merged 4 commits intodevfrom
check
Feb 10, 2026
Merged

Improve check tips#7310
waruqi merged 4 commits intodevfrom
check

Conversation

@waruqi
Copy link
Member

@waruqi waruqi commented Feb 10, 2026

  • Before adding new features and new modules, please go to issues to submit the relevant feature description first.
  • Write good commit messages and use the same coding conventions as the rest of the project.
  • Please commit code to dev branch and we will merge into master branch in feature
  • Ensure your edited codes with four spaces instead of TAB.

  • 增加新特性和新模块之前,请先到issues提交相关特性说明,经过讨论评估确认后,再进行相应的代码提交,避免做无用工作。
  • 编写友好可读的提交信息,并使用与工程代码相同的代码规范,代码请用4个空格字符代替tab缩进。
  • 请提交代码到dev分支,如果通过,我们会在特定时间合并到master分支上。
  • 为了规范化提交日志的格式,commit消息,不要用中文,请用英文描述。

@waruqi waruqi added this to the v3.0.8 milestone Feb 10, 2026
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @waruqi, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request refines the verbose output messages displayed during SDK and toolchain detection processes. The changes aim to provide more concise, consistent, and informative feedback to users by consolidating related information into single lines, standardizing terminology, and centralizing output logic for Xcode. This improves the clarity and readability of diagnostic messages.

Highlights

  • Unified SDK Output: Consolidated verbose output for Android SDK and NDK detection into single, more informative lines, including build tools or SDK versions.
  • Standardized Terminology: Updated output messages for Mingw, Android SDK, and NDK to consistently refer to 'SDK' instead of 'directory'.
  • Refactored Xcode Output: Introduced a new helper function _show_checkinfo in both llvm/check.lua and xcode/check.lua to centralize and improve Xcode SDK detection messages, including SDK version, target version, and optional codesign details.
  • Combined Platform/Architecture Output: Modified platform and architecture detection to display both in a single output line when applicable.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Changelog
  • xmake/modules/detect/sdks/find_android_sdk.lua
    • Combined Android SDK directory and build tools version into a single cprint statement.
    • Updated 'checking for Android SDK directory' to 'checking for Android SDK'.
  • xmake/modules/detect/sdks/find_mingw.lua
    • Changed 'checking for mingw directory' to 'checking for Mingw SDK' in output messages.
  • xmake/modules/detect/sdks/find_ndk.lua
    • Combined NDK directory and SDK version into a single cprint statement.
    • Updated 'checking for NDK directory' to 'checking for Android NDK'.
  • xmake/modules/private/detect/find_platform.lua
    • Refactored platform and architecture detection output to display both in a single cprint statement.
    • Introduced will_set_plat and will_set_arch flags to control when the combined message is printed.
  • xmake/toolchains/llvm/check.lua
    • Added a new helper function _show_checkinfo to format and print Xcode SDK detection information.
    • Replaced multiple cprint calls with a single call to _show_checkinfo for Xcode SDK output.
    • Updated 'checking for Xcode directory' to 'checking for Xcode SDK'.
  • xmake/toolchains/xcode/check.lua
    • Added a new helper function _show_checkinfo to format and print Xcode SDK detection information, including optional codesign identity and mobile provision details in verbose mode.
    • Replaced multiple cprint calls with a single call to _show_checkinfo for Xcode SDK output.
    • Updated 'checking for Xcode directory' to 'checking for Xcode SDK'.
Activity
  • No human activity has been recorded on this pull request yet.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request improves the output of various SDK and platform checks by making them more concise and consistent. The changes refactor multiple print statements into single, more informative lines, which is a great improvement for the user experience. I've suggested a few minor refactorings to further improve code conciseness and maintainability by using common Lua idioms and extracting duplicated logic into helper functions.

Comment on lines +113 to +116
local extra = ""
if sdk.build_toolver then
extra = " (buildtools: " .. sdk.build_toolver .. ")"
end
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

For conciseness, you can use Lua's and/or idiom to assign the extra variable in a single line. This is a common pattern in Lua for conditional assignment and makes the code more compact.

            local extra = sdk.build_toolver and (" (buildtools: " .. sdk.build_toolver .. ")") or ""

Comment on lines +305 to +308
local extra = ""
if ndk.sdkver then
extra = " (sdk: " .. ndk.sdkver .. ")"
end
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Similar to another file in this PR, you can use Lua's and/or idiom here for a more concise conditional assignment of the extra variable.

            local extra = ndk.sdkver and (" (sdk: " .. ndk.sdkver .. ")") or ""

Comment on lines 159 to 169
if opt.global then
if not opt.arch and not config.get("arch") then
will_set_arch = true
config.set("arch", arch)
cprint("checking for architecture ... ${color.success}%s", arch)
end
end
if opt.global then
if will_set_plat or will_set_arch then
cprint("checking for platform ... ${color.success}%s (%s)", plat, arch)
end
end
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

To improve readability and avoid a redundant check, you can combine the two if opt.global blocks into one. This makes the logic clearer and reduces nesting.

    if opt.global then
        if not opt.arch and not config.get("arch") then
            will_set_arch = true
            config.set("arch", arch)
        end
        if will_set_plat or will_set_arch then
            cprint("checking for platform ... ${color.success}%s (%s)", plat, arch)
        end
    end

Comment on lines +38 to +41
local extra = ""
if #extras > 0 then
extra = " (" .. table.concat(extras, ", ") .. ")"
end
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

You can make this part more concise by using Lua's and/or idiom for conditional assignment. This avoids the need for an if block to construct the extra string.

        local extra = #extras > 0 and (" (" .. table.concat(extras, ", ") .. ")") or ""

Comment on lines +38 to +41
local extra = ""
if #extras > 0 then
extra = " (" .. table.concat(extras, ", ") .. ")"
end
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

You can make this part more concise by using Lua's and/or idiom for conditional assignment. This avoids the need for an if block to construct the extra string.

        local extra = #extras > 0 and (" (" .. table.concat(extras, ", ") .. ")") or ""

Comment on lines +47 to +62
if option.get("verbose") then
local codesign_identity = codesign.xcode_codesign_identity()
if codesign_identity then
cprint("checking for Codesign Identity of Xcode ... ${color.success}%s", codesign_identity)
else
cprint("checking for Codesign Identity of Xcode ... ${color.nothing}${text.nothing}")
end
if toolchain:is_plat("iphoneos") then
local mobile_provision = codesign.xcode_mobile_provision()
if mobile_provision then
cprint("checking for Mobile Provision of Xcode ... ${color.success}%s", mobile_provision)
else
cprint("checking for Mobile Provision of Xcode ... ${color.nothing}${text.nothing}")
end
end
end
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This block contains duplicated logic for checking a value and printing a corresponding message. You can refactor this by extracting the common logic into a local helper function. This improves readability and maintainability by reducing code duplication.

    if option.get("verbose") then
        local function print_check(label, value)
            if value then
                cprint("checking for " .. label .. " ... ${color.success}%s", value)
            else
                cprint("checking for " .. label .. " ... ${color.nothing}${text.nothing}")
            end
        end
        print_check("Codesign Identity of Xcode", codesign.xcode_codesign_identity())
        if toolchain:is_plat("iphoneos") then
            print_check("Mobile Provision of Xcode", codesign.xcode_mobile_provision())
        end
    end

@waruqi waruqi merged commit de97caa into dev Feb 10, 2026
34 checks passed
@waruqi waruqi deleted the check branch February 10, 2026 13:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant