files
kolibrios-gcc-toolchain/CMakeLists.txt
2025-02-04 11:47:02 +00:00

118 lines
3.9 KiB
CMake

CMAKE_MINIMUM_REQUIRED(VERSION 2.8.12)
project(
KolibriOS-gcc-Toolchain-installer
DESCRIPTION "Installer of gcc toolchain for KolibriOS"
)
add_custom_target(
download_libraries
COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/libs
COMMAND wget http://ftp.kolibrios.org/users/Serge/new/Toolchain/sdk-28-10-16.7z -q -O ${CMAKE_CURRENT_BINARY_DIR}/libs/sdk-28-10-16.7z
COMMAND wget -r --no-parent -q http://builds.kolibrios.org/en_US/data/contrib/sdk/lib -O ${CMAKE_CURRENT_BINARY_DIR}/libs/builds.kolibrios.org
COMMAND 7z x -y ${CMAKE_CURRENT_BINARY_DIR}/libs/sdk-28-10-16.7z
COMMAND mv ${CMAKE_CURRENT_BINARY_DIR}/libs/builds.kolibrios.org/en_US/data/contrib/sdk/lib/* ${CMAKE_CURRENT_BINARY_DIR}/libs
COMMAND rm -R ${CMAKE_CURRENT_BINARY_DIR}/libs/builds.kolibrios.org
COMMENT "Download libraries"
)
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(
extract_linux
COMMENT "Extract linux archives"
COMMAND 7z x ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2.7z
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
add_custom_target(
configureDebPackage
COMMENT "Setup debian package"
COMMAND cp -rf ${CMAKE_CURRENT_SOURCE_DIR}/package/ ${CMAKE_CURRENT_BINARY_DIR}/package
COMMAND chmod -R 775 ${CMAKE_CURRENT_BINARY_DIR}/package
COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/package/usr/lib/x86_64-linux-gnu
COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/package/home/autobuild/tools
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
SOURCES
${CMAKE_CURRENT_SOURCE_DIR}/package/
)
add_custom_target(
debOffline
COMMAND cp -f ${CMAKE_CURRENT_BINARY_DIR}/libisl.so.10.2.2 ${CMAKE_CURRENT_BINARY_DIR}/package/usr/lib/x86_64-linux-gnu/libisl.so.10.2.2
COMMAND cp -f ${CMAKE_CURRENT_BINARY_DIR}/kos32-toolchain-linux.7z ${CMAKE_CURRENT_BINARY_DIR}/package/home/autobuild/tools
COMMAND dpkg-deb --build ${CMAKE_CURRENT_BINARY_DIR}/package ${CMAKE_CURRENT_BINARY_DIR}/package.deb
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMENT "Build deb offline package"
)
add_custom_target(
debOnline
COMMAND cp -f ${CMAKE_CURRENT_SOURCE_DIR}/install.sh ${CMAKE_CURRENT_BINARY_DIR}/package/DEBIAN/postinst
COMMAND cp -f ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE ${CMAKE_CURRENT_BINARY_DIR}/package/DEBIAN/copyright
COMMAND dpkg-deb --build ${CMAKE_CURRENT_BINARY_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
)
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_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(
debOnline
configureDebPackage
)
add_dependencies(
debOffline
configureDebPackage
)
add_dependencies(
configureDebPackage
download_linux
)
add_dependencies(
choco
download_windows
)
add_dependencies(
Installer
download_windows
)