From cbc958f17b191f1fe9c8e7b5de27b6b878f63fd2 Mon Sep 17 00:00:00 2001 From: madomado Date: Wed, 20 Mar 2024 21:02:55 +0800 Subject: [PATCH] chore: nim{,-nightly} don't build docs unless x86_64 (#988) * chore: nim{,-nightly} don't build docs unless x86_64 * feat: add %nim_c, %nim_tflags and %nim_lflags --- anda/langs/nim/nim-nightly/nim-nightly.spec | 36 +++++++++++----- anda/langs/nim/nim/nim.spec | 45 ++++++++++---------- anda/terra/srpm-macros/anda-srpm-macros.spec | 8 +++- anda/terra/srpm-macros/macros.nim_extra | 5 +++ 4 files changed, 60 insertions(+), 34 deletions(-) create mode 100644 anda/terra/srpm-macros/macros.nim_extra diff --git a/anda/langs/nim/nim-nightly/nim-nightly.spec b/anda/langs/nim/nim-nightly/nim-nightly.spec index 9a97dba8f1..400dc49be2 100644 --- a/anda/langs/nim/nim-nightly/nim-nightly.spec +++ b/anda/langs/nim/nim-nightly/nim-nightly.spec @@ -37,6 +37,7 @@ order of priority). This package provides various tools, which help Nim programmers. +%ifarch x86_64 %package doc Summary: Documentation for Nim programming language BuildArch: noarch @@ -47,12 +48,15 @@ order of priority). This package provides documentation and reference manual for the language and its standard library. +%endif + %prep %autosetup -n Nim-%commit # hack cp /usr/bin/mold /usr/bin/ld + %build export CFLAGS="${CFLAGS} -Ofast" export CXXFLAGS="${CXXFLAGS} -Ofast" @@ -67,13 +71,18 @@ nimBuildCsourcesIfNeeded CFLAGS="${CFLAGS} -Ic_code -w -O3 -fno-strict-aliasing nim c --noNimblePath --skipUserCfg --skipParentCfg --hints:off -d:danger koch.nim koch boot -d:release -d:nimStrictMode --lib:lib +%ifarch x86_64 koch docs & +%endif (cd lib; nim c --app:lib -d:danger -d:createNimRtl -t:-fPIE -l:-pie nimrtl.nim) & koch tools --skipUserCfg --skipParentCfg --hints:off -d:release -t:-fPIE -l:-pie & nim c -d:danger -t:-fPIE -l:-pie nimsuggest/nimsuggest.nim & wait +%ifarch x86_64 sed -i '/ - 1.9.3^fcc383d89994241f1b73fe4f85ef38528c135e2e-1 -- Initial Package. +%autochangelog diff --git a/anda/langs/nim/nim/nim.spec b/anda/langs/nim/nim/nim.spec index 8a2ce0873e..bbf7132f31 100644 --- a/anda/langs/nim/nim/nim.spec +++ b/anda/langs/nim/nim/nim.spec @@ -3,7 +3,7 @@ Name: nim Version: 2.0.2 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Imperative, multi-paradigm, compiled programming language License: MIT and BSD URL: https://nim-lang.org @@ -13,8 +13,7 @@ Source2: nimgrep.1 Source3: nimble.1 Source4: nimsuggest.1 BuildRequires: gcc mold git gcc-c++ nodejs openssl-devel pkgconfig(bash-completion) gc-devel pcre-devel -Requires: redhat-rpm-config gcc -Conflicts: choosenim +Requires: gcc %description @@ -32,7 +31,7 @@ order of priority). This package provides various tools, which help Nim programmers. - +%ifarch x86_64 %package doc Summary: Documentation for Nim programming language BuildArch: noarch @@ -43,10 +42,13 @@ order of priority). This package provides documentation and reference manual for the language and its standard library. +%endif + %prep %autosetup -n nim-%{version} + %build export CFLAGS="${CFLAGS} -Ofast" export CXXFLAGS="${CXXFLAGS} -Ofast" @@ -58,20 +60,24 @@ export PATH="$(pwd):$(pwd)/bin:${PATH}" mold -run nim c -d:danger koch.nim mold -run koch boot -d:useLinenoise -t:-fPIE -l:-pie -d:release -d:nativeStacktrace -d:useGnuReadline +%ifarch x86_64 mold -run koch docs & +%endif (cd lib && nim c --app:lib -d:createNimRtl -d:release nimrtl.nim) & mold -run koch tools -t:-fPIE -l:-pie & mold -run nim c -t:-fPIE -l:-pie -d:release nimsuggest/nimsuggest.nim & wait +%ifarch x86_64 sed -i '/ - 0.1.6-1 +- Add nim_c, nim_tflags and nim_lflags + * Thu Aug 3 2023 madonuko - 0.1.4-1 - Add go_build_online and go_prep_online diff --git a/anda/terra/srpm-macros/macros.nim_extra b/anda/terra/srpm-macros/macros.nim_extra new file mode 100644 index 0000000000..69a43becb7 --- /dev/null +++ b/anda/terra/srpm-macros/macros.nim_extra @@ -0,0 +1,5 @@ +%nim_tflags %(echo "%?build_cflags -fPIE" | sed "s/-O2/-Ofast/g" | sed "s/-Wall//g") + +%nim_lflags %?build_ldflags -pie + +%nim_c -d:release -t:"%nim_tflags" -l:"%nim_lflags"