start make offline installers

Changes:
+ downloading archives in building
This commit is contained in:
2024-12-05 17:47:59 +00:00
parent 4a24012df0
commit baf6e3b0b5
7 changed files with 91 additions and 26 deletions

1
.gitignore vendored
View File

@@ -6,3 +6,4 @@ build/
chocolatey/kos32-gcc*.nupkg
chocolatey/install.ps1
chocolatey/tools/install.ps1
*.7z

10
.vscode/settings.json vendored
View File

@@ -6,5 +6,13 @@
"msys",
"kolibrios",
"Egor"
]
],
"cSpell.ignorePaths": [
"vscode-extension",
".git/objects",
".vscode",
".vscode-insiders",
"package/DEBIAN"
],
"cmake.parallelJobs": 1
}

View File

@@ -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
)

View File

@@ -10,7 +10,10 @@
### Linux
Просто запустите `install.sh`.
Просто запустите `install.sh` с аргументом `online`:
```
./install.sh online
```
Некоторые команды требуют sudo.

View File

@@ -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..."
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
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,6 +102,7 @@ print_ok "Successfully!"
if ["$1" == "online"]; then
print_msg "Downloading libisl..."
cd /tmp
@@ -116,6 +114,8 @@ if ! [ -d /usr/lib/x86_64-linux-gnu/ ]; then
fi
sudo mv /tmp/libisl.so.10.2.2 /usr/lib/x86_64-linux-gnu/libisl.so.10.2.2
fi
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

View File

@@ -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}"

View File

@@ -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