From baf6e3b0b5162e856a20f778911adc55163f2bd5 Mon Sep 17 00:00:00 2001 From: Egor00f Date: Thu, 5 Dec 2024 17:47:59 +0000 Subject: [PATCH] start make offline installers Changes: + downloading archives in building --- .gitignore | 1 + .vscode/settings.json | 10 +++++++- CMakeLists.txt | 56 +++++++++++++++++++++++++++++++++++++++++- README.md | 5 +++- install.sh | 36 +++++++++++++-------------- installator.iss | 7 +++--- package/DEBIAN/control | 2 +- 7 files changed, 91 insertions(+), 26 deletions(-) diff --git a/.gitignore b/.gitignore index bd75751..ca2b526 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ build/ chocolatey/kos32-gcc*.nupkg chocolatey/install.ps1 chocolatey/tools/install.ps1 +*.7z diff --git a/.vscode/settings.json b/.vscode/settings.json index 6418f2d..b5ed4a7 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -6,5 +6,13 @@ "msys", "kolibrios", "Egor" - ] + ], + "cSpell.ignorePaths": [ + "vscode-extension", + ".git/objects", + ".vscode", + ".vscode-insiders", + "package/DEBIAN" + ], + "cmake.parallelJobs": 1 } \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 62faa24..255f8f4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,11 +5,39 @@ project( DESCRIPTION "Installer of gcc toolchain for KolibriOS" ) +add_custom_target( + download_libraries + COMMAND wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/sdk-28-10-16.7z -q + COMMAND wget -r --no-parent -q http://builds.kolibrios.org/en_US/data/contrib/sdk/lib + COMMAND 7z x -y sdk-28-10-16.7z + COMMAND mv builds.kolibrios.org/en_US/data/contrib/sdk/lib/* ./ + COMMAND rm -R builds.kolibrios.org + COMMENT "Download libraries" + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/libs +) + +add_custom_target( + download_linux + COMMAND wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/x86_64-linux-kos32-5.4.0.7z -q -O ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-linux.7z + COMMAND wget http://board.kolibrios.org/download/file.php?id=8301libisl.so.10.2.2.7z -q -O ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2.7z + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} + COMMENT "Download linux toolchain" +) + +add_custom_target( + download_windows + COMMAND wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/msys-kos32-5.4.0.7z -q -O ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-win.7z + COMMENT "Download windows toolchain" + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} +) + add_custom_target( deb + COMMAND mkdir -p ${CMAKE_CURRENT_SOURCE_DIR}/package/usr/lib/x86_64-linux-gnu COMMAND cp -f ${CMAKE_CURRENT_SOURCE_DIR}/install.sh ${CMAKE_CURRENT_SOURCE_DIR}/package/DEBIAN/postinst COMMAND cp -f ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE ${CMAKE_CURRENT_SOURCE_DIR}/package/DEBIAN/copyright + COMMAND 7z x ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2.7z -o ${CMAKE_CURRENT_SOURCE_DIR}/package/usr/lib/x86_64-linux-gnu/libisl.so.10.2.2 COMMAND chmod 775 ${CMAKE_CURRENT_SOURCE_DIR}/package/DEBIAN COMMAND chmod 775 ${CMAKE_CURRENT_SOURCE_DIR}/package/DEBIAN/control COMMAND chmod 775 ${CMAKE_CURRENT_SOURCE_DIR}/package/DEBIAN/prerm @@ -19,18 +47,44 @@ add_custom_target( COMMAND dpkg-deb --build ${CMAKE_CURRENT_SOURCE_DIR}/package ${CMAKE_CURRENT_BINARY_DIR}/package.deb WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMENT "Build deb package" + SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/install.sh + ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE + ${CMAKE_CURRENT_SOURCE_DIR}/package/DEBIAN/control + ${CMAKE_CURRENT_SOURCE_DIR}/package/DEBIAN/postrm ) add_custom_target( Installer + COMMAND 7z x ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-win.7z -o ${CMAKE_CURRENT_BINARY_DIR} COMMAND iscc /O"${CMAKE_CURRENT_BINARY_DIR}" ${CMAKE_CURRENT_SOURCE_DIR}/installator.iss COMMENT "Build windows installer" + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/installator.iss + ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE + ${CMAKE_CURRENT_SOURCE_DIR}/README.md ) add_custom_target( choco - COMMAND cp -f ${CMAKE_CURRENT_SOURCE_DIR}/install.ps1 ${CMAKE_CURRENT_SOURCE_DIR}/chocolatey/tools + COMMAND cp -f ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-win.7z ${CMAKE_CURRENT_SOURCE_DIR}/chocolatey/tools COMMAND choco pack WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/chocolatey COMMENT "Build chocolatey package" ) + +add_dependencies( + deb + download_linux +) + +add_dependencies( + choco + download_windows +) + +add_dependencies( + Installer + download_windows +) diff --git a/README.md b/README.md index a041ab3..b35ac97 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,10 @@ ### Linux -Просто запустите `install.sh`. +Просто запустите `install.sh` с аргументом `online`: +``` +./install.sh online +``` Некоторые команды требуют sudo. diff --git a/install.sh b/install.sh index 89502aa..2aca3b0 100755 --- a/install.sh +++ b/install.sh @@ -49,8 +49,6 @@ echo "Installing toolchain to $TOOLCHAIN_DIR" print_msg "Checking utilities..." - - check_utils wget check_utils 7z @@ -64,25 +62,24 @@ sudo mkdir -p $TOOLCHAIN_DIR print_ok "Successfully!" +if ["$1" == "online"]; then + print_msg "Download the kos32-gcc toolchain..." -print_msg "Download the kos32-gcc toolchain..." - -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!" - + sudo wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/x86_64-linux-kos32-5.4.0.7z -q -O /tmp/kos32-toolchain.7z + print_ok "Successfully!" +fi print_msg "Extracting files ..." -cd $TOOLCHAIN_DIR -sudo 7z x -y kos32-toolchain.7z -sudo rm -rf kos32-toolchain.7z +sudo 7z x -y /tmp/kos32-toolchain.7z -o $TOOLCHAIN_DIR +sudo rm -rf /tmp/kos32-toolchain.7z print_ok "Successfully!" + print_msg "Downloading libraries..." cd $TOOLCHAIN_DIR/win32/mingw32 @@ -105,17 +102,20 @@ print_ok "Successfully!" -print_msg "Downloading libisl..." +if ["$1" == "online"]; then + print_msg "Downloading libisl..." -cd /tmp -sudo wget http://board.kolibrios.org/download/file.php?id=8301libisl.so.10.2.2.7z -q -O /tmp/libisl.so.10.2.2.7z -sudo 7z x -y libisl.so.10.2.2.7z + cd /tmp + sudo wget http://board.kolibrios.org/download/file.php?id=8301libisl.so.10.2.2.7z -q -O /tmp/libisl.so.10.2.2.7z + sudo 7z x -y libisl.so.10.2.2.7z -if ! [ -d /usr/lib/x86_64-linux-gnu/ ]; then - sudo mkdir -p /usr/lib/x86_64-linux-gnu/ + if ! [ -d /usr/lib/x86_64-linux-gnu/ ]; then + sudo mkdir -p /usr/lib/x86_64-linux-gnu/ + fi + + sudo mv /tmp/libisl.so.10.2.2 /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2 fi -sudo mv /tmp/libisl.so.10.2.2 /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2 sudo ln -sf /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2 /usr/lib/x86_64-linux-gnu/libisl.so.10 sudo ln -sf /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2 /usr/lib/libisl.so.10 sudo chmod go-w /usr/lib/x86_64-linux-gnu/libisl.so.10 diff --git a/installator.iss b/installator.iss index 0942d36..9df7666 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.5" +#define MyAppVersion "0.1.6" #define MyAppPublisher "Egor00f" #define MyAppURL "https://github.com/Egor00f/kolibrios-gcc-toolchain" @@ -65,11 +65,10 @@ Root: HKLM; Subkey: "SYSTEM\CurrentControlSet\Control\Session Manager\Environmen Check: NeedsAddPath('{app}\win32\bin') [Files] -Source: ".\install.ps1"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: ".\build\libs"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs +Source: ".\build\win32"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs ; NOTE: Don't use "Flags: ignoreversion" on any shared system files -[Run] -Filename: "{app}\install.ps1"; description: "install script"; StatusMsg: "Installing toolchain"; Parameters: "-InstallPath {app}"; Flags: runhidden logoutput [Icons] Name: "{group}\{cm:ProgramOnTheWeb,{#MyAppName}}"; Filename: "{#MyAppURL}" diff --git a/package/DEBIAN/control b/package/DEBIAN/control index b2acc75..cfd9eef 100755 --- a/package/DEBIAN/control +++ b/package/DEBIAN/control @@ -1,5 +1,5 @@ Package: kos32-gcc -Version: 0.1.5 +Version: 0.1.6 Architecture: all Section: devel Depends: libc6-i386:amd64, libmpc3:amd64