# Copyright 2026 mva
# Distributed under the terms of the Public Domain or CC0 License
EAPI=8
inherit desktop wrapper
MY_PN="SweetHome3D"
DESCRIPTION="Sweet Home 3D is a free interior design application."
HOMEPAGE="https://sweethome3d.com/"
SF_URI="https://downloads.sourceforge.net/${PN//-bin}/${MY_PN}/${MY_PN}-${PV}/${MY_PN}-${PV}-linux"
SRC_URI="
amd64? ( ${SF_URI}-x64.tgz )
x86? ( ${SF_URI}-x86.tgz )
"
S="${WORKDIR}/${MY_PN}-${PV}"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="gtk3"
RDEPEND="virtual/jre"
# QA_PREBUILT="*java3d.*.so"
src_prepare() {
rm THIRDPARTY-LICENSE-* LICENSE.TXT COPYING.TXT || die
rm -r lib/java3d-* || die # or maybe remove another ones, and keep it?
rm -r runtime || die # bundled JRE
rm "${MY_PN}"{,-Java3D*} || die # upstream-generated wrappers
# mv "${MY_PN}Icon.png" "${MY_PN}.png"
default
}
src_install() {
inst_path="/usr/share/${PF}"
clp=$(find lib -name '*jar' | xargs | sed -e "s@lib/@${inst_path}/lib/@g" -e "s@ @:@g")
java_vars=( "\${JAVA_HOME}/bin/java" "\${_JAVA_OPTIONS}" )
if use gtk3; then
java_vars+=(
"-Dawt.useSystemAAFontSettings=gasp"
"-Dswing.aatext=true"
"-Dsun.java2d.xrender=true"
"-Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel"
)
fi
# Only compatible with openjdk>=17 (and also the only way to make it work there)
# But OTOH, I don't know how to make it compatible with <17 and >=17 at the same time 🤷
# ref: https://sourceforge.net/p/sweethome3d/bugs/1021/
java_vars+=( "--add-opens=java.desktop/sun.awt=ALL-UNNAMED" )
insinto "${inst_path}"
doins -r *
make_wrapper "${MY_PN}" "${java_vars[*]} -Xmx2g -classpath \"${clp}\" -Djava.library.path=${inst_path}/lib:${inst_path}/lib/yafaray -Djogamp.gluegen.UseTempJarCache=false -Dcom.eteks.sweethome3d.applicationId=SweetHome3D#Installer com.eteks.sweethome3d.SweetHome3D -open"
doicon "${MY_PN}Icon.png"
make_desktop_entry "${MY_PN}" "${MY_PN}" "${MY_PN}"
# dosym "${PN}" /usr/bin/sweethome3d
}