mirror of
https://github.com/Egor00f/kolibrios-gcc-toolchain.git
synced 2025-09-20 18:00:07 +02:00
Compare commits
34 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
22256e92c9 | ||
194e9de3e2 | |||
4dc4393c52 | |||
003780f587 | |||
c0136c680d | |||
5886611082 | |||
a882106a25 | |||
6cd179035c | |||
b0e92ef197 | |||
81135f0c3a | |||
8505ca3a4e | |||
9262ee0fa4 | |||
eb61d5f483 | |||
e63568bc9c | |||
6d994d865c | |||
d2c3ae7904 | |||
53343866d9 | |||
|
048965ba75 | ||
|
9b3be45832 | ||
|
fb37fd61a8 | ||
|
2346cbda4a | ||
dcbf7a3e1f | |||
f470a40d30 | |||
51ad12be50 | |||
2ff32eb06a | |||
ad3261d332 | |||
83b9582c31 | |||
|
45d8910f84 | ||
5deba53689 | |||
205962bf75 | |||
0b4ac08d48 | |||
|
71859b700b | ||
|
cee23fd147 | ||
|
323727cd74 |
39
.github/workflows/test.yml
vendored
39
.github/workflows/test.yml
vendored
@@ -8,6 +8,7 @@ on:
|
|||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
#Test linux install script
|
||||||
linux-install:
|
linux-install:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
@@ -25,6 +26,7 @@ jobs:
|
|||||||
kos32-gcc -v
|
kos32-gcc -v
|
||||||
kos32-g++ -v
|
kos32-g++ -v
|
||||||
|
|
||||||
|
#Test windows install script
|
||||||
windows-install:
|
windows-install:
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
steps:
|
steps:
|
||||||
@@ -43,7 +45,42 @@ jobs:
|
|||||||
|
|
||||||
- name: Test run
|
- name: Test run
|
||||||
run: |
|
run: |
|
||||||
kos32-gcc -v
|
|
||||||
kos32-g++ -v
|
kos32-g++ -v
|
||||||
|
kos32-gcc -v
|
||||||
|
shell: cmd
|
||||||
|
|
||||||
|
#Test Windows Installer
|
||||||
|
build-Installer:
|
||||||
|
runs-on: windows-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: |
|
||||||
|
cmake -B ${{ github.workspace }}/build
|
||||||
|
cmake --build ${{ github.workspace }}/build --target Installer
|
||||||
|
|
||||||
|
# Test Package
|
||||||
|
package:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: |
|
||||||
|
cmake -B ${{ github.workspace }}/build
|
||||||
|
cmake --build ${{ github.workspace }}/build --target Package
|
||||||
|
|
||||||
|
- name: Install package
|
||||||
|
run: sudo apt install ${{ github.workspace }}/build/package.deb
|
||||||
|
|
||||||
|
- name: Add toolchain to path
|
||||||
|
run: echo "/home/autobuild/tools/win32/bin" >> $GITHUB_PATH
|
||||||
|
|
||||||
|
- name: Test run
|
||||||
|
run: |
|
||||||
|
kos32-g++ -v
|
||||||
|
kos32-gcc -v
|
||||||
|
|
||||||
|
- name: Remove package
|
||||||
|
run: sudo apt remove kos32-gcc
|
||||||
|
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1 +1,4 @@
|
|||||||
Output/
|
Output/
|
||||||
|
package/DEBIAN/postinst
|
||||||
|
package.deb
|
||||||
|
build/
|
8
.vscode/extensions.json
vendored
Normal file
8
.vscode/extensions.json
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"recommendations": [
|
||||||
|
"chouzz.vscode-innosetup",
|
||||||
|
"streetsidesoftware.code-spell-checker",
|
||||||
|
"streetsidesoftware.code-spell-checker-russian",
|
||||||
|
"ms-vscode.cmake-tools"
|
||||||
|
]
|
||||||
|
}
|
10
.vscode/settings.json
vendored
Normal file
10
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"cSpell.words": [
|
||||||
|
"autobuild",
|
||||||
|
"тулчейн",
|
||||||
|
"тулчейна",
|
||||||
|
"msys",
|
||||||
|
"kolibrios",
|
||||||
|
"Egor"
|
||||||
|
]
|
||||||
|
}
|
19
CMakeLists.txt
Normal file
19
CMakeLists.txt
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
CMAKE_MINIMUM_REQUIRED(VERSION 3.10)
|
||||||
|
|
||||||
|
project(
|
||||||
|
KolibriOS-gcc-Toolchain-installer
|
||||||
|
DESCRIPTION "Installer of gcc toolchain for KolibriOS"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
add_custom_target(
|
||||||
|
Package
|
||||||
|
COMMAND cp -f ${CMAKE_CURRENT_SOURCE_DIR}/install.sh ${CMAKE_CURRENT_SOURCE_DIR}/package/DEBIAN/postinst
|
||||||
|
COMMAND dpkg-deb --build ${CMAKE_CURRENT_SOURCE_DIR}/package ${CMAKE_CURRENT_BINARY_DIR}/package.deb
|
||||||
|
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
||||||
|
)
|
||||||
|
|
||||||
|
add_custom_target(
|
||||||
|
Installer
|
||||||
|
COMMAND iscc /O"${CMAKE_CURRENT_BINARY_DIR}" ${CMAKE_CURRENT_SOURCE_DIR}/installator.iss
|
||||||
|
)
|
28
README.md
28
README.md
@@ -7,20 +7,38 @@
|
|||||||
|
|
||||||
## Установка
|
## Установка
|
||||||
|
|
||||||
Для установки требуются 7z и wget
|
Для установки требуются `7z` и `wget`
|
||||||
|
|
||||||
## Linux
|
### Linux
|
||||||
|
|
||||||
Просто запустите install.sh.
|
Просто запустите `install.sh`.
|
||||||
|
|
||||||
Некоторые команды требуют sudo
|
Некоторые команды требуют sudo
|
||||||
|
|
||||||
Тулчейн устанавливается в папку `/home/autobuild/tools/win32`
|
Тулчейн устанавливается в папку `/home/autobuild/tools/win32`
|
||||||
|
|
||||||
## Windows
|
### Windows
|
||||||
|
|
||||||
Для windows есть установщик(посмотрите в релизах) или росто запустите install.bat. Рекомендуется запускать с повышенными правами
|
Желательно чтобы вы перед утсановкой тулчейна установите msys из установщика MinGW.
|
||||||
|
|
||||||
|
Для windows есть установщик(посмотрите в релизах) или просто запустите `install.bat`. Рекомендуется запускать с повышенными правами
|
||||||
|
|
||||||
wget для windows можно поискать в GnuWin32 например, 7z Нужно добавить в PATH.
|
wget для windows можно поискать в GnuWin32 например, 7z Нужно добавить в PATH.
|
||||||
|
|
||||||
Тулчейн устанавливается в папку `C:/MinGW/msys/1.0/home/autobuild/tools/win32`
|
Тулчейн устанавливается в папку `C:/MinGW/msys/1.0/home/autobuild/tools/win32`
|
||||||
|
|
||||||
|
## Сбока установщиков
|
||||||
|
|
||||||
|
Установщики полностью базируются на скриптах установки, так что безразницы что вы будете использовать скрипт или установщик.
|
||||||
|
|
||||||
|
Установщики собираются с помощью cmake (cmake просто потому что могу)
|
||||||
|
|
||||||
|
### Linux
|
||||||
|
|
||||||
|
Можно собрать deb пакет. Цель для сборки Package. Для сбрки требуется `dpkg-deb`
|
||||||
|
|
||||||
|
### Windows
|
||||||
|
|
||||||
|
Установщик собирается с помощью Inno Setup. Цель для сборки Installer. Для сборки требуется компилятор Inno Setup.
|
||||||
|
|
||||||
|
Если сборка не работает, добавьте папку Inno Setup(например: `C:\Programs Files\Inno Setup 6`) в PATH
|
||||||
|
11
install.bat
11
install.bat
@@ -1,4 +1,5 @@
|
|||||||
@echo off
|
@echo off
|
||||||
|
|
||||||
for /f %%a in ('echo prompt $E^| cmd') do set "ESC=%%a"
|
for /f %%a in ('echo prompt $E^| cmd') do set "ESC=%%a"
|
||||||
|
|
||||||
|
|
||||||
@@ -6,7 +7,7 @@ set TOOLCHAIN_DIR=C:\MinGW\msys\1.0\home\autobuild\tools
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
Call :print_msg Create the C:/MinGW/msys/1.0/home/autobuild folder...
|
Call :print_msg Create the %TOOLCHAIN_DIR% folder...
|
||||||
|
|
||||||
mkdir %TOOLCHAIN_DIR%
|
mkdir %TOOLCHAIN_DIR%
|
||||||
|
|
||||||
@@ -20,7 +21,7 @@ cd %TOOLCHAIN_DIR%
|
|||||||
|
|
||||||
wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/msys-kos32-5.4.0.7z -O %TOOLCHAIN_DIR%\kos32-toolchain.7z
|
wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/msys-kos32-5.4.0.7z -O %TOOLCHAIN_DIR%\kos32-toolchain.7z
|
||||||
|
|
||||||
7z x -y %TOOLCHAIN_DIR%\kos32-toolchain.7z
|
7z x -y %TOOLCHAIN_DIR%\kos32-toolchain.7z -o%TOOLCHAIN_DIR%
|
||||||
|
|
||||||
Call :print_ok Successfully!
|
Call :print_ok Successfully!
|
||||||
|
|
||||||
@@ -56,7 +57,7 @@ Call :print_ok Successfully!
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
Call :print_msg Adding C:/MinGW/msys/1.0/home/autobuild/tools/win32/bin to PATH
|
Call :print_msg Adding C:\MinGW\msys\1.0\home\autobuild\tools\win32\bin to PATH
|
||||||
|
|
||||||
set PATH=%PATH%;%TOOLCHAIN_DIR%%\win32\bin
|
set PATH=%PATH%;%TOOLCHAIN_DIR%%\win32\bin
|
||||||
|
|
||||||
@@ -67,9 +68,9 @@ Call :print_ok Installation was successful!
|
|||||||
|
|
||||||
|
|
||||||
:print_msg
|
:print_msg
|
||||||
echo %ESC%[92m%*%ESC%[%m
|
echo %ESC%[34m%*%ESC%[%m
|
||||||
exit /b
|
exit /b
|
||||||
|
|
||||||
:print_ok
|
:print_ok
|
||||||
echo %ESC%[36m%*%ESC%[%m
|
echo %ESC%[32m%*%ESC%[%m
|
||||||
exit /b
|
exit /b
|
||||||
|
54
install.sh
54
install.sh
@@ -28,6 +28,10 @@ check_utils(){
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pwd
|
||||||
|
|
||||||
|
TOOLCHAIN_DIR="/home/autobuild/tools"
|
||||||
|
|
||||||
|
|
||||||
print_msg "Checking utilities..."
|
print_msg "Checking utilities..."
|
||||||
|
|
||||||
@@ -40,9 +44,7 @@ check_utils 7z
|
|||||||
|
|
||||||
print_msg "Create the /home/autobuild folder..."
|
print_msg "Create the /home/autobuild folder..."
|
||||||
|
|
||||||
sudo rm -rf ~/autobuild /home/autobuild
|
sudo mkdir -p $TOOLCHAIN_DIR
|
||||||
mkdir -p ~/autobuild/tools
|
|
||||||
sudo ln -sf ~/autobuild /home/autobuild
|
|
||||||
|
|
||||||
print_ok "Successfully!"
|
print_ok "Successfully!"
|
||||||
|
|
||||||
@@ -50,7 +52,7 @@ print_ok "Successfully!"
|
|||||||
|
|
||||||
print_msg "Download the kos32-gcc toolchain..."
|
print_msg "Download the kos32-gcc toolchain..."
|
||||||
|
|
||||||
wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/x86_64-linux-kos32-5.4.0.7z -q -O ~/autobuild/tools/kos32-toolchain.7z
|
sudo wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/x86_64-linux-kos32-5.4.0.7z -q -O $TOOLCHAIN_DIR/kos32-toolchain.7z
|
||||||
|
|
||||||
print_ok "Successfully!"
|
print_ok "Successfully!"
|
||||||
|
|
||||||
@@ -58,9 +60,9 @@ print_ok "Successfully!"
|
|||||||
|
|
||||||
print_msg "Extracting files ..."
|
print_msg "Extracting files ..."
|
||||||
|
|
||||||
cd ~/autobuild/tools/
|
cd $TOOLCHAIN_DIR
|
||||||
7z x -y kos32-toolchain.7z
|
sudo 7z x -y kos32-toolchain.7z
|
||||||
rm -rf kos32-toolchain.7z
|
sudo rm -rf kos32-toolchain.7z
|
||||||
|
|
||||||
print_ok "Successfully!"
|
print_ok "Successfully!"
|
||||||
|
|
||||||
@@ -68,10 +70,10 @@ print_ok "Successfully!"
|
|||||||
|
|
||||||
print_msg "Downloading libraries..."
|
print_msg "Downloading libraries..."
|
||||||
|
|
||||||
cd ~/autobuild/tools/win32/mingw32
|
cd $TOOLCHAIN_DIR/win32/mingw32
|
||||||
wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/sdk-28-10-16.7z -q -O sdk-28-10-16.7z
|
sudo wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/sdk-28-10-16.7z -q -O sdk-28-10-16.7z
|
||||||
7z x -y sdk-28-10-16.7z
|
sudo 7z x -y sdk-28-10-16.7z
|
||||||
rm -rf sdk-28-10-16.7z
|
sudo rm -rf sdk-28-10-16.7z
|
||||||
|
|
||||||
print_ok "Successfully!"
|
print_ok "Successfully!"
|
||||||
|
|
||||||
@@ -80,15 +82,15 @@ print_ok "Successfully!"
|
|||||||
print_msg "Updating libraries"
|
print_msg "Updating libraries"
|
||||||
|
|
||||||
cd lib
|
cd lib
|
||||||
wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libdll.a -q -O libdll.a
|
sudo wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libdll.a -q -O libdll.a
|
||||||
wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libfreetype.a -q -O libfreetype.a
|
sudo wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libfreetype.a -q -O libfreetype.a
|
||||||
wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libc.dll.a -q -O libc.dll.a
|
sudo wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libc.dll.a -q -O libc.dll.a
|
||||||
wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libSDLn.a -q -O libSDLn.a
|
sudo wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libSDLn.a -q -O libSDLn.a
|
||||||
wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libcurses.a -q -O libcurses.a
|
sudo wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libcurses.a -q -O libcurses.a
|
||||||
wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libz.dll.a -q -O libz.dll.a
|
sudo wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libz.dll.a -q -O libz.dll.a
|
||||||
wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libogg.a -q -O libogg.a
|
sudo wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libogg.a -q -O libogg.a
|
||||||
wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libvorbis.a -q -O libvorbis.a
|
sudo wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libvorbis.a -q -O libvorbis.a
|
||||||
wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libopenjpeg.a -q -O libopenjpeg.a
|
sudo wget http://builds.kolibrios.org/en_US/data/contrib/sdk/lib/libopenjpeg.a -q -O libopenjpeg.a
|
||||||
|
|
||||||
print_ok "Successfully!"
|
print_ok "Successfully!"
|
||||||
|
|
||||||
@@ -121,10 +123,20 @@ sudo ln -sf /usr/lib/libmpfr.so.6 /usr/lib/libmpfr.so.4
|
|||||||
print_ok "Successfully!"
|
print_ok "Successfully!"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if [ ! "$(id -u)" -ne 0 ]
|
||||||
|
then
|
||||||
|
print_msg "Add"
|
||||||
|
echo 'PATH=$PATH:/home/autobuild/tools/win32/bin' >> /etc/profile
|
||||||
|
else
|
||||||
if ! grep -q 'export PATH=$PATH:/home/autobuild/tools/win32/bin' ~/.bashrc; then
|
if ! grep -q 'export PATH=$PATH:/home/autobuild/tools/win32/bin' ~/.bashrc; then
|
||||||
export PATH=$PATH:/home/autobuild/tools/win32/bin
|
export PATH=$PATH:/home/autobuild/tools/win32/bin
|
||||||
print_msg "Adding '/home/autobuild/tools/win32/bin' to '~/.bashrc'"
|
print_msg "Adding '$TOOLCHAIN_DIR/win32/bin' to '~/.bashrc'"
|
||||||
echo 'export PATH=$PATH:/home/autobuild/tools/win32/bin' >> ~/.bashrc
|
echo 'export PATH=$PATH:/home/autobuild/tools/win32/bin' >> ~/.bashrc
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "$OLDPWD"
|
||||||
|
|
||||||
print_ok "Installation was successful!"
|
print_ok "Installation was successful!"
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
|
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
|
||||||
|
|
||||||
#define MyAppName "KolibriOS gcc toolchain"
|
#define MyAppName "KolibriOS gcc toolchain"
|
||||||
#define MyAppVersion "0.1"
|
#define MyAppVersion "0.1.3"
|
||||||
#define MyAppPublisher "Egor00f"
|
#define MyAppPublisher "Egor00f"
|
||||||
#define MyAppURL "https://github.com/Egor00f/kolibrios-gcc-toolchain"
|
#define MyAppURL "https://github.com/Egor00f/kolibrios-gcc-toolchain"
|
||||||
|
|
||||||
|
14
package/DEBIAN/control
Normal file
14
package/DEBIAN/control
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
Package: kos32-gcc
|
||||||
|
Version: 0.1.3
|
||||||
|
Architecture: all
|
||||||
|
Section: devel
|
||||||
|
Depends: libc6-i386:amd64, libmpc3:amd64
|
||||||
|
Pre-Depends: p7zip, wget
|
||||||
|
Recommends: fasm
|
||||||
|
Priority: optional
|
||||||
|
Homepage: https://github.com/Egor00f/kolibrios-gcc-toolchain
|
||||||
|
Origin: http://ftp.kolibrios.org/users/Serge/new/Toolchain
|
||||||
|
Maintainer: Egor00f <velikiydolbayeb@gmail.com>
|
||||||
|
Installed-Size: 131708
|
||||||
|
Description: KolibriOS gcc toolchain installer
|
||||||
|
This package installing KolibriOS gcc toolchain.
|
11
package/DEBIAN/postrm
Executable file
11
package/DEBIAN/postrm
Executable file
@@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
rm -R /home/autobuild/tools/win32
|
||||||
|
|
||||||
|
if grep -q 'PATH=$PATH:/home/autobuild/tools/win32/bin' /etc/profile; then
|
||||||
|
val="PATH=\$PATH:/home/autobuild/tools/win32/bin"
|
||||||
|
sed -i '/$val/d' /etc/profile
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
|
Reference in New Issue
Block a user