Skip to content

notcurses: add new package#9186

Open
Willaaaaaaa wants to merge 1 commit intoxmake-io:devfrom
Willaaaaaaa:notcurses
Open

notcurses: add new package#9186
Willaaaaaaa wants to merge 1 commit intoxmake-io:devfrom
Willaaaaaaa:notcurses

Conversation

@Willaaaaaaa
Copy link
Contributor

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @Willaaaaaaa, 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 integrates the 'notcurses' library into the xmake build system by providing a comprehensive package definition. It streamlines the process of building and using Notcurses, offering flexible configuration options for various features and ensuring compatibility across different platforms.

Highlights

  • New Package Introduction: Introduces the 'notcurses' library as a new package definition within the xmake-repo, enabling its build and integration via xmake.
  • Configurable Build Options: Implements several configurable options for 'notcurses', including choices for compression (libdeflate/zlib), multimedia backend (ffmpeg/OpenImageIO), and QR code generation support.
  • Platform-Specific Dependencies: Dynamically adds platform-specific system links and dependencies (e.g., 'pthread' for Linux/BSD, 'wsock32' for Windows, 'gpm' for Linux) to ensure correct compilation across different operating systems.

🧠 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.

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 adds a new package for notcurses. The package definition is well-structured, but there are a couple of errors in the CMake configuration options that will prevent the package from building correctly. I've provided a suggestion to fix these issues.

Comment on lines +55 to +56
table.insert(configs, "-DUSE_STATIC=" .. (package:config("shared") and "OFF" or "ON"))
table.insert(configs, "-DUSE_DEFLATE=" .. (package:config("libdeflate") and "ON" or "OFF"))
Copy link
Contributor

Choose a reason for hiding this comment

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

critical

There are a couple of incorrect CMake option names being used here which will prevent the package from configuring correctly. According to the notcurses CMakeLists.txt:

  • The option to control linking against static libraries is USE_STATIC_LIBS, not USE_STATIC.
  • The option to enable libdeflate is USE_LIBDEFLATE, not USE_DEFLATE.

Please correct these option names.

        table.insert(configs, "-DUSE_STATIC_LIBS=" .. (package:config("shared") and "OFF" or "ON"))
        table.insert(configs, "-DUSE_LIBDEFLATE=" .. (package:config("libdeflate") and "ON" or "OFF"))

@WangZhongDian
Copy link
Contributor

The libunistring you rely on does not support Windows

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.

2 participants