xmake-repo

github-ci github-ci github-ci github-ci
Reddit Gitter Telegram QQ Discord license Donate

An official xmake package repository

## Supporting the project Support this project by becoming a sponsor. Your logo will show up here with a link to your website. πŸ™ [[Become a sponsor](https://xmake.io/#/about/sponsor)] ## Introduction ([δΈ­ζ–‡](/README_zh.md)) xmake-repo is an official xmake package repository. ## Package dependences ## Package management If you want to know more, please refer to the xmake documentation: * [Documents](https://xmake.io/#/package/remote_package) * [Github](https://github.com/xmake-io/xmake) * [HomePage](https://xmake.io) ## Xrepo xrepo is a cross-platform C/C++ package manager based on [Xmake](https://github.com/xmake-io/xmake). It is based on the runtime provided by xmake, but it is a complete and independent package management program. Compared with package managers such as vcpkg/homebrew, xrepo can provide C/C++ packages for more platforms and architectures at the same time. If you want to know more, please refer to the xrepo documentation: * [Documents](https://xrepo.xmake.io/#/getting_started) * [Github](https://github.com/xmake-io/xrepo) * [Gitee](https://gitee.com/tboox/xrepo) ![](https://xrepo.xmake.io/assets/img/xrepo.gif) ## Submit package to repository Write a xmake.lua of new package in `packages/x/xxx/xmake.lua` and push a pull-request to the dev branch. For example, [packages/z/zlib/xmake.lua](https://github.com/xmake-io/xmake-repo/blob/dev/packages/z/zlib/xmake.lua): If you want to known more, please see: [Create and Submit packages to the official repository](https://xmake.io/#/package/remote_package?id=submit-packages-to-the-official-repository) ## Create a package template from Github We need to install the [gh](https://github.com/cli/cli) cli tool first, and then execute the following command to log in to github. ```console $ gh auth login ``` Create a package configuration file to this warehouse based on the package address of github. ```console $ xmake l scripts/new.lua github:glennrp/libpng package("libpng") set_homepage("http://libpng.sf.net") set_description("LIBPNG: Portable Network Graphics support, official libpng repository") add_urls("https://github.com/glennrp/libpng/archive/refs/tags/v1.6.35.tar.gz", "https://github.com/glennrp/libpng.git") add_versions("v1.6.35", "6d59d6a154ccbb772ec11772cb8f8beb0d382b61e7ccc62435bf7311c9f4b210") add_deps("cmake") on_install(function (package) local configs = {} table.insert(configs, "-DCMAKE_BUILD_TYPE=" .. (package:debug() and "Debug" or "Release")) table.insert(configs, "-DBUILD_SHARED_LIBS=" .. (package:config("shared") and "ON" or "OFF")) import("package.tools.cmake").install(package, configs) end) on_test(function (package) assert(package:has_cfuncs("foo", {includes = "foo.h"})) end) packages/l/libpng/xmake.lua generated! ```