# Template file for 'kicad'
pkgname=kicad
version=8.0.1
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"
changelog="https://www.kicad.org/blog/categories/Release-Notes/"
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="bd67568671d0461c7c85fb1d5979df1c863228ea05d4f0db462b1c93a5a948e5
 2fef2a52377e32a6d8a18a6bfd98ab3e3a75b3f23e13a741491eb9c414ee265b
 5aa3b72d89552069155a538a73fd19428f7dd77ec7bf51814591dd460a88c8d7
 98a11b3a33f18ea02981c95b038138e86c31cb388a8bbd30a1edcc4ad297e0f8
 24e6c9d10869605b83d56ed091e5e56a9f4439de38db73c1d1d34d1cbf3d3272
 77c74fa420373a97aa5dca1bed26b0bed065d1c696010bee5238dc76d06a168b"
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
}

# none of these subpackages contain ELFs, but do contain a bunch of files,
# so skip stripping and elf_in_usrshare lint to speed things up significantly
kicad-doc_package() {
	short_desc+=" - documentation"
	license="GPL-3.0-or-later, CC-BY-3.0"
	depends="${sourcepkg}>=${version}_${revision}"
	nostrip=yes
	ignore_elf_dirs="/usr/share/kicad"
	pkg_install() {
		cd "../${pkgname}-${version}/build" && \
			DESTDIR="${PKGDESTDIR}" ninja install
	}
}

kicad-footprints_package() {
	short_desc+=" - footprint libraries"
	license="CC-BY-SA-4.0"
	depends="${sourcepkg}>=${version}_${revision}"
	nostrip=yes
	ignore_elf_dirs="/usr/share/kicad"
	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="${sourcepkg}>=${version}_${revision}"
	nostrip=yes
	ignore_elf_dirs="/usr/share/kicad"
	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="${sourcepkg}>=${version}_${revision}"
	nostrip=yes
	ignore_elf_dirs="/usr/share/kicad"
	pkg_install() {
		cd "../${pkgname}-${version}/build" && \
			DESTDIR="${PKGDESTDIR}" ninja install
	}
}

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

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