Skip to content

Commit 9eed149

Browse files
committed
CMake (Linux): adds i686 CI build and unify processor naming
Fixes #1978
1 parent 0f5d321 commit 9eed149

File tree

2 files changed

+76
-6
lines changed

2 files changed

+76
-6
lines changed

.github/workflows/ci.yml

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,69 @@ jobs:
153153
name: fastfetch-linux-${{ matrix.arch }}
154154
path: ./fastfetch-*.*
155155

156+
linux-i686:
157+
name: Linux-i686
158+
runs-on: ubuntu-22.04
159+
permissions:
160+
security-events: write
161+
contents: read
162+
steps:
163+
- name: checkout repository
164+
uses: actions/checkout@v5
165+
166+
- name: uname -a
167+
run: uname -a
168+
169+
- name: cat /etc/os-release
170+
run: cat /etc/os-release
171+
172+
- name: cat /proc/cpuinfo
173+
run: cat /proc/cpuinfo
174+
175+
- name: add gcc-13 repo
176+
run: sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
177+
178+
- name: install required packages
179+
run: sudo apt-get update && sudo apt-get install -y gcc-13 gcc-13-multilib libvulkan-dev libwayland-dev libxrandr-dev libxcb-randr0-dev libdconf-dev libdbus-1-dev libmagickcore-dev libsqlite3-dev librpm-dev libegl-dev libglx-dev ocl-icd-opencl-dev libpulse-dev libdrm-dev libelf-dev libddcutil-dev rpm ninja-build
180+
181+
- name: install linuxbrew packages
182+
run: |
183+
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
184+
/home/linuxbrew/.linuxbrew/bin/brew install imagemagick chafa --ignore-dependencies
185+
186+
- name: cmake version
187+
run: cmake --version
188+
189+
- name: configure project
190+
run: CC=gcc-13 PKG_CONFIG_PATH=/home/linuxbrew/.linuxbrew/lib/pkgconfig:$PKG_CONFIG_PATH cmake -DCMAKE_C_FLAGS="-m32 -march=i686 -mtune=i686" -DCMAKE_SYSTEM_PROCESSOR_OVERRIDE=i686 -GNinja -DSET_TWEAK=Off -DBUILD_TESTS=On -DENABLE_EMBEDDED_PCIIDS=On -DENABLE_EMBEDDED_AMDGPUIDS=On -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_DIRECTX_HEADERS=Off .
191+
192+
- name: build project
193+
run: cmake --build . --target package --verbose -j4
194+
195+
- name: list features
196+
run: ./fastfetch --list-features
197+
198+
- name: run fastfetch
199+
run: time ./fastfetch -c presets/ci.jsonc --stat false
200+
201+
- name: run fastfetch --format json
202+
run: time ./fastfetch -c presets/ci.jsonc --format json
203+
204+
- name: run flashfetch
205+
run: time ./flashfetch
206+
207+
- name: print dependencies
208+
run: ldd fastfetch
209+
210+
- name: run tests
211+
run: ctest --output-on-failure
212+
213+
- name: upload artifacts
214+
uses: actions/upload-artifact@v4
215+
with:
216+
name: fastfetch-linux-i686
217+
path: ./fastfetch-*.*
218+
156219
linux-armv7l:
157220
name: Linux-armv7l
158221
runs-on: ubuntu-24.04
@@ -659,6 +722,7 @@ jobs:
659722
runs-on: ubuntu-latest
660723
needs:
661724
- linux-hosts
725+
- linux-i686
662726
- linux-armv7l
663727
- linux-armv6l
664728
- linux-vms

CMakeLists.txt

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,17 @@ project(fastfetch
99

1010
set(PROJECT_LICENSE "MIT license")
1111

12+
if(DEFINED CMAKE_SYSTEM_PROCESSOR_OVERRIDE) # Used by github actions for i686 build
13+
set(CMAKE_SYSTEM_PROCESSOR ${CMAKE_SYSTEM_PROCESSOR_OVERRIDE} CACHE INTERNAL "")
14+
endif()
15+
string(TOLOWER "${CMAKE_SYSTEM_PROCESSOR}" CMAKE_SYSTEM_PROCESSOR)
16+
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
17+
set(CMAKE_SYSTEM_PROCESSOR "amd64")
18+
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
19+
set(CMAKE_SYSTEM_PROCESSOR "aarch64")
20+
endif()
21+
message(STATUS "Build for system processor: ${CMAKE_SYSTEM_PROCESSOR}")
22+
1223
###################
1324
# Target Platform #
1425
###################
@@ -1682,7 +1693,7 @@ elseif(WIN32)
16821693
PRIVATE "propsys"
16831694
PRIVATE "secur32"
16841695
)
1685-
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM64")
1696+
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64")
16861697
# WoA only works on Windows 10 or higher
16871698
target_link_libraries(libfastfetch
16881699
PRIVATE "mincore"
@@ -2020,11 +2031,6 @@ install(
20202031
##################
20212032

20222033
set(CPACK_GENERATOR "TGZ;ZIP")
2023-
if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64")
2024-
set(CMAKE_SYSTEM_PROCESSOR "amd64")
2025-
elseif(CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64")
2026-
set(CMAKE_SYSTEM_PROCESSOR "aarch64")
2027-
endif()
20282034
if(APPLE)
20292035
string(TOLOWER "${CMAKE_PROJECT_NAME}-macos-${CMAKE_SYSTEM_PROCESSOR}" CPACK_PACKAGE_FILE_NAME) # use macos instead of darwin
20302036
elseif(IS_MUSL)

0 commit comments

Comments
 (0)