diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index a31d2cb..169234b 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -47,4 +47,29 @@ jobs: kos32-gcc -v shell: cmd - + build-Installer: + runs-on: windowd-latest + steps: + - uses: actions/checkout@v4 + + - name: Build + run: | + cmake -B ${{ github.workspace }}/build + cmake --build ${{ github.workspace }}/build --target Installer + + build-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 dpkg -i ${{ github.workspace }}/build/package.deb + + - name: Add toolchain to path + run: echo "/home/autobuild/tools/win32/bin" >> $GITHUB_PATH + diff --git a/.gitignore b/.gitignore index d351402..5317c62 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,4 @@ -Output/ \ No newline at end of file +Output/ +package/DEBIAN/postinst +package.deb +build/ \ No newline at end of file diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 2a10376..58fb364 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -2,6 +2,7 @@ "recommendations": [ "chouzz.vscode-innosetup", "streetsidesoftware.code-spell-checker", - "streetsidesoftware.code-spell-checker-russian" + "streetsidesoftware.code-spell-checker-russian", + "ms-vscode.cmake-tools" ] } \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json index c0f3e4c..6418f2d 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -4,6 +4,7 @@ "тулчейн", "тулчейна", "msys", - "kolibrios" + "kolibrios", + "Egor" ] } \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..c60ca3c --- /dev/null +++ b/CMakeLists.txt @@ -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 +) diff --git a/install.sh b/install.sh index b9b40a6..3fe4ead 100755 --- a/install.sh +++ b/install.sh @@ -28,6 +28,10 @@ check_utils(){ fi } +pwd + +TOOLCHAIN_DIR="/home/autobuild/tools" + print_msg "Checking utilities..." @@ -40,9 +44,7 @@ check_utils 7z print_msg "Create the /home/autobuild folder..." -sudo rm -rf ~/autobuild /home/autobuild -mkdir -p ~/autobuild/tools -sudo ln -sf ~/autobuild /home/autobuild +sudo mkdir -p $TOOLCHAIN_DIR print_ok "Successfully!" @@ -50,7 +52,7 @@ print_ok "Successfully!" 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!" @@ -58,9 +60,9 @@ print_ok "Successfully!" print_msg "Extracting files ..." -cd ~/autobuild/tools/ -7z x -y kos32-toolchain.7z -rm -rf kos32-toolchain.7z +cd $TOOLCHAIN_DIR +sudo 7z x -y kos32-toolchain.7z +sudo rm -rf kos32-toolchain.7z print_ok "Successfully!" @@ -68,10 +70,10 @@ print_ok "Successfully!" print_msg "Downloading libraries..." -cd ~/autobuild/tools/win32/mingw32 -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 -rm -rf sdk-28-10-16.7z +cd $TOOLCHAIN_DIR/win32/mingw32 +sudo wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/sdk-28-10-16.7z -q -O sdk-28-10-16.7z +sudo 7z x -y sdk-28-10-16.7z +sudo rm -rf sdk-28-10-16.7z print_ok "Successfully!" @@ -80,15 +82,15 @@ print_ok "Successfully!" print_msg "Updating libraries" cd lib -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 -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 -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 -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 -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/libdll.a -q -O libdll.a +sudo 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/libc.dll.a -q -O libc.dll.a +sudo 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/libcurses.a -q -O libcurses.a +sudo 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/libogg.a -q -O libogg.a +sudo 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/libopenjpeg.a -q -O libopenjpeg.a print_ok "Successfully!" @@ -121,10 +123,12 @@ sudo ln -sf /usr/lib/libmpfr.so.6 /usr/lib/libmpfr.so.4 print_ok "Successfully!" -if ! grep -q 'export PATH=$PATH:/home/autobuild/tools/win32/bin' ~/.bashrc; then +if ! grep -q 'export PATH=$PATH:$TOOLCHAIN_DIR/win32/bin' ~/.bashrc; then export PATH=$PATH:/home/autobuild/tools/win32/bin - print_msg "Adding '/home/autobuild/tools/win32/bin' to '~/.bashrc'" - echo 'export PATH=$PATH:/home/autobuild/tools/win32/bin' >> ~/.bashrc + print_msg "Adding '$TOOLCHAIN_DIR/win32/bin' to '~/.bashrc'" + echo 'export PATH=$PATH:$TOOLCHAIN_DIR/win32/bin' >> ~/.bashrc fi +cd "$OLDPWD" + print_ok "Installation was successful!" diff --git a/installator.iss b/installator.iss index 3006aed..bbf0815 100644 --- a/installator.iss +++ b/installator.iss @@ -2,7 +2,7 @@ ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! #define MyAppName "KolibriOS gcc toolchain" -#define MyAppVersion "0.1" +#define MyAppVersion "0.1.1" #define MyAppPublisher "Egor00f" #define MyAppURL "https://github.com/Egor00f/kolibrios-gcc-toolchain" diff --git a/package/DEBIAN/control b/package/DEBIAN/control new file mode 100644 index 0000000..1adbf05 --- /dev/null +++ b/package/DEBIAN/control @@ -0,0 +1,14 @@ +Package: kos32-gcc +Version: 0.1.1 +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 +Installed-Size: 131708 +Description: KolibriOS gcc toolchain installer + This package installing KolibriOS gcc toolchain. diff --git a/package/DEBIAN/postrm b/package/DEBIAN/postrm new file mode 100755 index 0000000..6e9c374 --- /dev/null +++ b/package/DEBIAN/postrm @@ -0,0 +1,3 @@ +#!/bin/bash + +rm -R /home/autobuild/tools/win32