File: test_build.sh

package info (click to toggle)
flashrom 1.6.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 9,268 kB
  • sloc: ansic: 67,220; sh: 1,118; python: 104; makefile: 97
file content (53 lines) | stat: -rwxr-xr-x 1,582 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/usr/bin/env sh
set -e

# This script will only work on Linux with all dependencies installed.

is_scan_build_env=0

meson_programmer_opts="all auto group_ftdi group_i2c group_jlink group_pci group_serial group_usb	\
			atahpt atapromise atavia buspirate_spi ch341a_spi ch347_spi dediprog		\
			developerbox_spi digilent_spi dirtyjtag_spi drkaiser dummy ft2232_spi		\
			gfxnvidia internal it8212 jlink_spi linux_mtd linux_spi parade_lspcon		\
			mediatek_i2c_spi mstarddc_spi nic3com nicintel nicintel_eeprom nicintel_spi	\
			nicnatsemi nicrealtek ogp_spi pickit2_spi pony_spi raiden_debug_spi rayer_spi	\
			realtek_mst_i2c_spi satamv satasii serprog spidriver stlinkv3_spi usbblaster_spi\
			asm106x"


if [ "$(basename "${CC}")" = "ccc-analyzer" ] || [ -n "${COVERITY_OUTPUT}" ]; then
	is_scan_build_env=1
fi


run_linter() {
	./util/lint/lint-extended-020-signed-off-by
}


build_meson () {
	build_dir=out
	meson_opts="-Dtests=enabled -Drpmc=enabled -Dman-pages=enabled -Ddocumentation=enabled -Dgenerate_authors_list=enabled"
	ninja_opts="-j $(nproc)"

	rm -rf ${build_dir}

	for programmer in ${meson_programmer_opts}; do
		programmer_dir="${build_dir}/${programmer}"

		# In case of clang analyzer we don't want to run it on
		# each programmer individually. Thus, just return here.
		if [ ${is_scan_build_env} -eq 1 ] && [ "${programmer}" != "all" ]; then
			return
		fi

		meson setup ${programmer_dir} ${meson_opts} -Dprogrammer=${programmer}
		ninja ${ninja_opts} -C ${programmer_dir}
		ninja ${ninja_opts} -C ${programmer_dir} test
	done
}


run_linter

build_meson