EAPI=8 inherit desktop flag-o-matic xdg wrapper inherit cmake DESCRIPTION="Open Source 2D CAD" HOMEPAGE="http://www.qcad.org/" SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${PN}-${PV}.tar.gz https://github.com/${PN}/${PN}jsapi/archive/v${PV}.tar.gz -> ${PN}jsapi-${PV}.tar.gz https://github.com/${PN}/qtjsapi/archive/v${PV}.tar.gz -> qtjsapi-${PV}.tar.gz" LICENSE="GPL-3" SLOT="0" KEYWORDS="amd64 x86" L10N=( de en es fr it ja nl pl pt ru sl sk sv fi hr hu zh_CN cs TW lt ) IUSE="" for lingua in ${L10N[*]}; do IUSE+=" l10n_${lingua}" done DEPEND=" dev-libs/glib media-libs/glu media-libs/mesa dev-qt/qtbase:6=[gui,opengl,sql] dev-qt/qttools:6=[assistant] " RDEPEND="${DEPEND}" BDEPEND="dev-util/patchelf" CMAKE_IN_SOURCE_BUILD=myHovercraftIsFullOfEels CMAKE_USE_DIR=${WORKDIR}/${PN} src_prepare() { # qcad is split into three repos and hardcodes in the repos the directory names(!) for the other repos ln -s ${PN}-${PV} ../${PN} ln -s ${PN}jsapi-${PV} ../${PN}jsapi ln -s qtjsapi-${PV} ../qtjsapi CMAKE_USE_DIR=${WORKDIR}/${PN} cmake_src_prepare CMAKE_USE_DIR=${WORKDIR}/qtjsapi cmake_src_prepare CMAKE_USE_DIR=${WORKDIR}/${PN}jsapi cmake_src_prepare default } src_configure() { # -Werror=strict-aliasing append-flags -fno-strict-aliasing -fPIC # 931904 filter-lto CMAKE_USE_DIR=${WORKDIR}/${PN} cmake_src_configure CMAKE_USE_DIR=${WORKDIR}/qtjsapi cmake_src_configure CMAKE_USE_DIR=${WORKDIR}/${PN}jsapi cmake_src_configure } src_compile() { CMAKE_USE_DIR=${WORKDIR}/${PN} cmake_src_compile CMAKE_USE_DIR=${WORKDIR}/qtjsapi cmake_src_compile CMAKE_USE_DIR=${WORKDIR}/${PN}jsapi cmake_src_compile } src_install() { # WARNING: ${BUILD_DIR} is set now to …/qcadjsapi (that was last dir to work with) # Create Wayland desktop entry cp qcad.desktop qcad-wayland.desktop || die sed -i 's/Exec=qcad/Exec=qcad -platform xcb/g' qcad-wayland.desktop || die sed -i 's/Name=QCAD/Name=QCAD (Wayland)/g' qcad-wayland.desktop || die domenu qcad.desktop qcad-wayland.desktop doicon "scripts/${PN}_icon.svg" doicon --size 256 "scripts/${PN}_icon.png" for lingua in "${L10N[@]}"; do if ! use "l10n_${lingua}"; then find . -type f -name "*_${lingua}.*" -delete || die fi done insinto "/usr/$(get_libdir)/${PN}/" doins -r scripts fonts patterns linetypes themes insopts -m0755 if [[ "${CMAKE_BUILD_TYPE}" == Release ]]; then doins -r release/*.so doins release/qcad-bin else doins -r debug/*.so doins debug/qcad-bin fi make_wrapper "${PN}" "/usr/$(get_libdir)/${PN}/qcad-bin" "" "/usr/$(get_libdir)/${PN}:/usr/$(get_libdir)/${PN}/plugins" doins -r plugins doins src/3rdparty/dxflib/libdxflib.so doins src/3rdparty/stemmer/libstemmer.so patchelf --set-rpath "\$ORIGIN:\$ORIGIN/plugins" "${ED}/usr/$(get_libdir)/${PN}"/{qcad-bin,*.so} || die patchelf --set-rpath "\$ORIGIN:\$ORIGIN/.." "${ED}/usr/$(get_libdir)/${PN}/plugins"/*.so || die patchelf --set-rpath "\$ORIGIN:\$ORIGIN/../.." "${ED}/usr/$(get_libdir)/${PN}/plugins/designer"/*.so || die docinto examples dodoc -r examples/* docompress -x "/usr/share/doc/${PF}/examples" } pkg_postinst() { xdg_pkg_postinst }