# Template file for 'kicad'
pkgname=kicad
version=8.0.0
revision=1
build_style=cmake
build_helper="cmake-wxWidgets-gtk3"
build_wrksrc="${pkgname}-${version}"
configure_args="-DKICAD_SCRIPTING_WXPYTHON=ON -DKICAD_USE_EGL=ON
 -DKICAD_BUILD_I18N=ON -DKICAD_I18N_UNIX_STRICT_PATH=ON -DLEMON_EXE=/usr/bin/lemon"
hostmakedepends="pkg-config swig wxWidgets-gtk3-devel tar gettext
 python3 python3-setuptools ruby-asciidoctor po4a sqlite-lemon"
makedepends="wxWidgets-gtk3-devel wxPython python3-devel glew-devel
 cairo-devel boost-devel libcurl-devel glm libgomp-devel libfreeglut-devel
 gtk+3-devel unixodbc-devel occt-devel ngspice-devel libgit2-devel
 libsecret-devel"
depends="wxPython"
checkdepends="python3-pytest python3-cairosvg"
short_desc="Electronic schematic and PCB design software"
maintainer="classabbyamp <void@placeviolette.net>"
license="GPL-3.0-or-later"
homepage="http://kicad.org"
distfiles="https://gitlab.com/kicad/code/kicad/-/archive/${version}/kicad-${version}.tar.gz
 https://gitlab.com/kicad/services/kicad-doc/-/archive/${version}/kicad-doc-${version}.tar.gz
 https://gitlab.com/kicad/libraries/kicad-templates/-/archive/${version}/kicad-templates-${version}.tar.gz
 https://gitlab.com/kicad/libraries/kicad-symbols/-/archive/${version}/kicad-symbols-${version}.tar.gz
 https://gitlab.com/kicad/libraries/kicad-footprints/-/archive/${version}/kicad-footprints-${version}.tar.gz
 https://gitlab.com/kicad/libraries/kicad-packages3D/-/archive/${version}/kicad-packages3D-${version}.tar.gz"
checksum="9b8cc1ab7de9d7f913223dbb2fe1be61c254fe478921d4c1fa5f60f30bb6efa7
 cf1db5bb4d1f33d239250804ca18a0a0d9d14fefe30a48c7258b919f729fdb4c
 f373cd9a28c9c94146a69a4a9e7eae88f601117f89d4ed44de84f7f35615e691
 6e2d76df42c46d830f54fc1a760455c8fc849592f43b6804a35863eaca0eaf22
 c674e624def9a550514765d295266945379267d8196908ef6ebba92eff2fe299
 d9e59a50a43b02b19e2564e73110c1ca461494986171b10f6b0a389acd8cf778"
python_version=3
replaces="kicad-i18n>=0"
patch_args="-Np1 -d ${build_wrksrc}"
# one test appears to be flaky
# https://gitlab.com/kicad/code/kicad/-/blob/7.0.0/qa/unittests/eeschema/test_netlist_exporter_spice.h#L195-197
#make_check=ci-skip

if [ "$CROSS_BUILD" ]; then
	hostmakedepends+=" wxPython"
	configure_args+=" -DPYTHON_DEST=/${py3_sitelib}"
fi

CXXFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"

post_patch() {
	# python struct.calcsize('@P') return pointer size of build systems.
	sed -i 's/CMAKE_SIZEOF_VOID_P AND/FALSE AND &/' \
		thirdparty/pybind11/tools/FindPythonLibsNew.cmake
}

post_configure() {
	for subpkg in doc footprints packages3D symbols templates; do
		msg_normal "${pkgname}-${subpkg}-${version}_${revision}: running do_configure ...\n"
		(
			build_wrksrc="${pkgname}-${subpkg}-${version}"
			configure_args="-DBUILD_FORMATS=html"
			cd "../${build_wrksrc}" && do_configure
		)
	done
}

post_build() {
	for subpkg in doc footprints packages3D symbols templates; do
		msg_normal "${pkgname}-${subpkg}-${version}_${revision}: running do_build ...\n"
		(
			cd "../${pkgname}-${subpkg}-${version}" && do_build
		)
	done
}

kicad-doc_package() {
	short_desc+=" - documentation"
	license="GPL-3.0-or-later, CC-BY-3.0"
	depends="kicad>=${version}"
	pkg_install() {
		cd "../${pkgname}-${version}/build" && \
			DESTDIR="${PKGDESTDIR}" ninja install
	}
}

kicad-footprints_package() {
	short_desc+=" - footprint libraries"
	license="CC-BY-SA-4.0"
	depends="kicad>=${version}"
	pkg_install() {
		cd "../${pkgname}-${version}/build" && \
			DESTDIR="${PKGDESTDIR}" ninja install
	}
}

kicad-packages3D_package() {
	short_desc+=" - 3D model libraries"
	license="CC-BY-SA-4.0"
	depends="kicad>=${version}"
	pkg_install() {
		cd "../${pkgname}-${version}/build" && \
			DESTDIR="${PKGDESTDIR}" ninja install
	}
}

kicad-symbols_package() {
	short_desc+=" - schematic symbol libraries"
	license="CC-BY-SA-4.0"
	depends="kicad>=${version}"
	pkg_install() {
		cd "../${pkgname}-${version}/build" && \
			DESTDIR="${PKGDESTDIR}" ninja install
	}
}

kicad-templates_package() {
	short_desc+=" - project templates"
	license="CC-BY-SA-4.0"
	depends="kicad>=${version}"
	pkg_install() {
		cd "../${pkgname}-${version}/build" && \
			DESTDIR="${PKGDESTDIR}" ninja install
	}
}

kicad-library_package() {
	short_desc+=" - all libraries"
	depends="kicad-footprints>=${version} kicad-packages3D>=${version}
	 kicad-symbols>=${version} kicad-templates>=${version}"
	build_style="meta"
}
