%bcond_with luajit Name: xmake Version: 2.8.5 %global forgeurl https://github.com/xmake-io/xmake %forgemeta Release: %autorelease Summary: A cross-platform build utility based on Lua License: Apache-2.0 URL: https://xmake.io Source: %forgesource Patch0: 0001-pkgconfig-fix-check.patch Patch1: 0001-system-include.patch Patch2: 0001-add-relwithdebinfo-build-mode.patch BuildRequires: pkgconfig(ncurses) BuildRequires: pkgconfig(readline) BuildRequires: pkgconfig(liblz4) BuildRequires: pkgconfig(libxxhash) BuildRequires: pkgconfig(libtbox) BuildRequires: pkgconfig(libsv) %if %{with luajit} BuildRequires: pkgconfig(luajit) %else BuildRequires: pkgconfig(lua) >= 5.4 %endif BuildRequires: pkgconfig(libtbox) BuildRequires: bash BuildRequires: sed BuildRequires: make BuildRequires: gcc BuildRequires: gcc-c++ Requires: %{name}-data = %{version}-%{release} %description xmake is a lightweight cross-platform build utility based on Lua. It uses xmake.lua to maintain project builds. Compared with makefile/CMakeLists.txt, the configuration syntax is more concise and intuitive. It is very friendly to novices and can quickly get started in a short time. Let users focus more on actual project development. It can compile the project directly like Make/Ninja, or generate project files like CMake/Meson, and it also has a built-in package management system to help users solve the integrated use of C/C++ dependent libraries. %package data Summary: Common data-files for %{name} Requires: %{name} = %{version}-%{release} BuildArch: noarch %description data This package contains common data-files for %{name}. %prep %forgeautosetup -p1 # Cleanup bundled deps rm -rf core/src/{lua,luajit,lua-cjson,lz4,pdcurses,sv,tbox,xxhash}/*/ # Fix shebang since the configure script is not strictly POSIX sh # and relies on bash-specific behavior sed -i '1 s|#!/bin/sh|#!/bin/bash|' %{_configure} %build %configure --external=yes --mode=relwithdebinfo \ %if %{with luajit} --runtime=luajit %else --runtime=lua %endif %make_build %install mkdir -p %{buildroot}%{_mandir}/man1/ install -Dpm0755 build/xmake \ %{buildroot}%{_bindir}/%{name} install -Dpm0755 scripts/xrepo.sh \ %{buildroot}%{_bindir}/xrepo install -Dpm0644 scripts/man/*1 \ %{buildroot}%{_mandir}/man1/ install -Dpm0644 xmake/scripts/completions/register-completions.bash \ %{buildroot}%{bash_completions_dir}/%{name} install -Dpm0644 xmake/scripts/completions/register-completions.fish \ %{buildroot}%{fish_completions_dir}/%{name}.fish install -Dpm0644 xmake/scripts/completions/register-completions.zsh \ %{buildroot}%{zsh_completions_dir}/_%{name} cp -rp xmake \ %{buildroot}%{_datadir}/%{name} %check %{buildroot}%{_bindir}/%{name} --version %{buildroot}%{_bindir}/xrepo --version %files %doc README.md CHANGELOG.md %license LICENSE.md NOTICE.md %{_bindir}/%{name} %{_bindir}/xrepo %{bash_completions_dir}/%{name} %{zsh_completions_dir}/_%{name} %{fish_completions_dir}/%{name}.fish %{_mandir}/man1/*.1* %files data %{_datadir}/%{name} %changelog %autochangelog