Files
haikuports/dev-qt/qt_creator/qt_creator-19.0.0.recipe
2026-04-14 17:27:18 +00:00

157 lines
5.0 KiB
Bash

SUMMARY="A complete IDE for C/C++ development from the makers of Qt"
DESCRIPTION="Qt Creator provides a cross-platform, complete integrated \
development environment (IDE) for application developers to create \
applications for multiple desktop, embedded, and mobile device platforms, \
such as Android and iOS."
HOMEPAGE="https://www.qt.io/ide/"
COPYRIGHT="2026 The Qt Company Ltd"
LICENSE="GNU GPL v3"
REVISION="1"
SOURCE_URI="https://download.qt.io/official_releases/qtcreator/${portVersion%.*}/$portVersion/qt-creator-opensource-src-$portVersion.tar.xz"
CHECKSUM_SHA256="f7f69bd007462a4606787c130e83583db4416df627bf777d33944f23caeacf6d"
SOURCE_DIR="qt-creator-opensource-src-$portVersion"
PATCHES="qt_creator-$portVersion.patchset"
ADDITIONAL_FILES="qt_creator.rdef.in"
ARCHITECTURES="ALL !x86_gcc2"
SECONDARY_ARCHITECTURES="x86"
if [ "$targetArchitecture" = x86_gcc2 ]; then
clangVer="18"
libClangVer="18"
else
clangVer="21"
libClangVer="21.1"
fi
PROVIDES="
qt_creator$secondaryArchSuffix = $portVersion
app:QtCreator = $portVersion
"
REQUIRES="
haiku$secondaryArchSuffix
lib:libarchive$secondaryArchSuffix
lib:libclang$secondaryArchSuffix
lib:libclang_cpp$secondaryArchSuffix
lib:libexecinfo$secondaryArchSuffix
lib:libGL$secondaryArchSuffix
lib:libLLVM$secondaryArchSuffix
lib:libsecret_1$secondaryArchSuffix
lib:libsqlite3$secondaryArchSuffix
lib:libyaml_cpp$secondaryArchSuffix
# Qt6
lib:libQt6Charts$secondaryArchSuffix
lib:libQt6Concurrent$secondaryArchSuffix
lib:libQt6Core$secondaryArchSuffix
lib:libQt6Core5Compat$secondaryArchSuffix
lib:libQt6Designer$secondaryArchSuffix
lib:libQt6DesignerComponents$secondaryArchSuffix
lib:libQt6Gui$secondaryArchSuffix
lib:libQt6Help$secondaryArchSuffix
lib:libQt6Network$secondaryArchSuffix
lib:libQt6OpenGL$secondaryArchSuffix
lib:libQt6PrintSupport$secondaryArchSuffix
lib:libQt6Qml$secondaryArchSuffix
lib:libQt6Quick$secondaryArchSuffix
lib:libQt6Quick3D$secondaryArchSuffix
lib:libQt6QuickWidgets$secondaryArchSuffix
lib:libQt6SerialPort$secondaryArchSuffix
lib:libQt6ShaderTools$secondaryArchSuffix
lib:libQt6Sql$secondaryArchSuffix
lib:libQt6Svg$secondaryArchSuffix
lib:libQt6Widgets$secondaryArchSuffix
lib:libQt6Xml$secondaryArchSuffix
"
BUILD_REQUIRES="
haiku${secondaryArchSuffix}_devel
devel:libarchive$secondaryArchSuffix
devel:libclang$secondaryArchSuffix >= $clangVer
devel:libclang_cpp$secondaryArchSuffix >= $clangVer
devel:libexecinfo$secondaryArchSuffix
devel:libGL$secondaryArchSuffix
devel:libLLVM_$clangVer$secondaryArchSuffix
devel:libsecret_1$secondaryArchSuffix
devel:libsqlite3$secondaryArchSuffix
devel:libyaml_cpp$secondaryArchSuffix >= 0.8
# Qt6
qt6_tools${secondaryArchSuffix}_devel
devel:libQt6Charts$secondaryArchSuffix
devel:libQt6Concurrent$secondaryArchSuffix
devel:libQt6Core$secondaryArchSuffix
devel:libQt6Core5Compat$secondaryArchSuffix
devel:libQt6Designer$secondaryArchSuffix
devel:libQt6DesignerComponents$secondaryArchSuffix
devel:libQt6Gui$secondaryArchSuffix
devel:libQt6Help$secondaryArchSuffix
devel:libQt6Network$secondaryArchSuffix
devel:libQt6OpenGL$secondaryArchSuffix
devel:libQt6PrintSupport$secondaryArchSuffix
devel:libQt6Qml$secondaryArchSuffix
devel:libQt6Quick$secondaryArchSuffix
devel:libQt6Quick3D$secondaryArchSuffix
devel:libQt6QuickWidgets$secondaryArchSuffix
devel:libQt6SerialPort$secondaryArchSuffix
devel:libQt6ShaderTools$secondaryArchSuffix
devel:libQt6Sql$secondaryArchSuffix
devel:libQt6Svg$secondaryArchSuffix
devel:libQt6Widgets$secondaryArchSuffix
devel:libQt6Xml$secondaryArchSuffix
"
if [ "$targetArchitecture" != x86_gcc2 ]; then
BUILD_REQUIRES+="
devel:libomp$secondaryArchSuffix
"
fi
BUILD_PREREQUIRES="
cmd:cmake
cmd:g++$secondaryArchSuffix
cmd:ninja
cmd:perl
cmd:pkg_config$secondaryArchSuffix
cmd:python3.10
cmd:qdoc6$secondaryArchSuffix
cmd:which
"
BUILD()
{
cmake -B build -G Ninja -DCMAKE_BUILD_TYPE=Release \
-DCMAKE_AUTOGEN_PARALLEL=1 \
-DQTC_USE_SYSTEM_LIBARCHIVE=ON \
-DQT_NO_PRIVATE_MODULE_WARNING=ON \
-DBUILD_EXECUTABLE_CMDBRIDGE=OFF \
-Wno-dev
cmake --build build $jobArgs
}
INSTALL()
{
cmake --install build --prefix $appsDir/QtCreator
# Create symlink to libclang
ln -s /system/$relativeDevelopLibDir/libclang.so.$libClangVer $appsDir/QtCreator/lib/qtcreator/
ln -s /system/$relativeDevelopLibDir/libclang.so.$libClangVer $appsDir/QtCreator/libexec/qtcreator/
local APP_SIGNATURE="application/x-vnd.qt6-qtcreator"
local MAJOR="`echo "$portVersion" | cut -d. -f1`"
local MIDDLE="`echo "$portVersion" | cut -d. -f2`"
local MINOR="`echo "$portVersion" | cut -d. -f3`"
local LONG_INFO="$SUMMARY"
sed \
-e "s|@APP_SIGNATURE@|$APP_SIGNATURE|" \
-e "s|@MAJOR@|$MAJOR|" \
-e "s|@MIDDLE@|$MIDDLE|" \
-e "s|@MINOR@|$MINOR|" \
-e "s|@LONG_INFO@|$LONG_INFO|" \
$portDir/additional-files/qt_creator.rdef.in > qt_creator.rdef
addResourcesToBinaries qt_creator.rdef $appsDir/QtCreator/bin/qtcreator
mv $appsDir/QtCreator/bin/qtcreator "$appsDir/QtCreator/bin/Qt Creator"
mkdir -p $dataDir/deskbar/menu/Applications/Qt
addAppDeskbarSymlink "$appsDir/QtCreator/bin/Qt Creator" "Qt/Qt Creator"
}