mirror of
https://review.coreboot.org/flashrom.git
synced 2025-04-26 22:52:34 +02:00

This implements a positive selection choice of which programmers should be built. - Each programmer is represented through an entry in the programmer dictionary - The entry contains: - A list of systems and CPU families where the programmer can run on - A list of required dependencies - A list of sources needed to build the programmer - A list of compiler flags - A flag to determin if the programmer should be build on 'auto' - If an entry is not given it is set to the default value - If a programmer gets selected, an 'active' flag is added to the entry on runtime - All programmers with an 'active' flag will be included in the build - One or more programmers can be selected through '-Dprogrammer=<>' - 'auto' enables all programmers which are available, deps are found and have the 'default' flag - 'all' enables all programmers which are available and deps are found - 'group_***' enables all programmers which are available, deps are found and the programmer belongs to the selected group - '_programmer_name_' forces the programmer to be built or the build will fail. Change-Id: Ib44b26e3748fc71f116184082b4aed0bb208b4c1 Signed-off-by: Thomas Heijligen <thomas.heijligen@secunet.com> Reviewed-on: https://review.coreboot.org/c/flashrom/+/63724 Reviewed-by: Anastasia Klimchuk <aklm@chromium.org> Reviewed-by: Felix Singer <felixsinger@posteo.net> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
124 lines
3.2 KiB
Meson
124 lines
3.2 KiB
Meson
# This file is part of the flashrom project.
|
|
#
|
|
# Copyright 2020 Google LLC
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; version 2 of the License.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
|
|
srcs = [
|
|
'io_mock.c',
|
|
'tests.c',
|
|
'libusb_wraps.c',
|
|
'helpers.c',
|
|
'flashrom.c',
|
|
'spi25.c',
|
|
'lifecycle.c',
|
|
'dummyflasher.c',
|
|
'nicrealtek.c',
|
|
'raiden_debug_spi.c',
|
|
'dediprog.c',
|
|
'linux_mtd.c',
|
|
'linux_spi.c',
|
|
'parade_lspcon.c',
|
|
'mediatek_i2c_spi.c',
|
|
'realtek_mst_i2c_spi.c',
|
|
'layout.c',
|
|
'chip.c',
|
|
'chip_wp.c',
|
|
]
|
|
|
|
if not programmer.get('dummy').get('active')
|
|
srcs += programmer.get('dummy').get('srcs')
|
|
endif
|
|
|
|
mocks = [
|
|
'-Wl,--wrap=strdup',
|
|
'-Wl,--wrap=physunmap',
|
|
'-Wl,--wrap=physmap',
|
|
'-Wl,--wrap=pcidev_init',
|
|
'-Wl,--wrap=pcidev_readbar',
|
|
'-Wl,--wrap=spi_send_command',
|
|
'-Wl,--wrap=sio_write',
|
|
'-Wl,--wrap=sio_read',
|
|
'-Wl,--wrap=open',
|
|
'-Wl,--wrap=open64',
|
|
'-Wl,--wrap=__open64_2',
|
|
'-Wl,--wrap=ioctl',
|
|
'-Wl,--wrap=read',
|
|
'-Wl,--wrap=write',
|
|
'-Wl,--wrap=fopen',
|
|
'-Wl,--wrap=fopen64',
|
|
'-Wl,--wrap=fdopen',
|
|
'-Wl,--wrap=fwrite',
|
|
'-Wl,--wrap=fflush',
|
|
'-Wl,--wrap=stat',
|
|
'-Wl,--wrap=stat64',
|
|
'-Wl,--wrap=__xstat',
|
|
'-Wl,--wrap=__xstat64',
|
|
'-Wl,--wrap=fstat',
|
|
'-Wl,--wrap=fstat64',
|
|
'-Wl,--wrap=__fxstat',
|
|
'-Wl,--wrap=__fxstat64',
|
|
'-Wl,--wrap=fileno',
|
|
'-Wl,--wrap=fsync',
|
|
'-Wl,--wrap=fread',
|
|
'-Wl,--wrap=fgets',
|
|
'-Wl,--wrap=__fgets_chk',
|
|
'-Wl,--wrap=fprintf',
|
|
'-Wl,--wrap=__vfprintf_chk',
|
|
'-Wl,--wrap=fclose',
|
|
'-Wl,--wrap=feof',
|
|
'-Wl,--wrap=ferror',
|
|
'-Wl,--wrap=clearerr',
|
|
'-Wl,--wrap=setvbuf',
|
|
'-Wl,--wrap=rget_io_perms',
|
|
'-Wl,--wrap=OUTB',
|
|
'-Wl,--wrap=INB',
|
|
'-Wl,--wrap=OUTW',
|
|
'-Wl,--wrap=INW',
|
|
'-Wl,--wrap=OUTL',
|
|
'-Wl,--wrap=INL',
|
|
'-Wl,--wrap=usb_dev_get_by_vid_pid_number',
|
|
'-Wl,--wrap=libusb_init',
|
|
'-Wl,--wrap=libusb_open',
|
|
'-Wl,--wrap=libusb_set_auto_detach_kernel_driver',
|
|
'-Wl,--wrap=libusb_detach_kernel_driver',
|
|
'-Wl,--wrap=libusb_attach_kernel_driver',
|
|
'-Wl,--wrap=libusb_get_device_list',
|
|
'-Wl,--wrap=libusb_free_device_list',
|
|
'-Wl,--wrap=libusb_get_bus_number',
|
|
'-Wl,--wrap=libusb_get_device_address',
|
|
'-Wl,--wrap=libusb_get_device_descriptor',
|
|
'-Wl,--wrap=libusb_get_config_descriptor',
|
|
'-Wl,--wrap=libusb_free_config_descriptor',
|
|
'-Wl,--wrap=libusb_get_configuration',
|
|
'-Wl,--wrap=libusb_set_configuration',
|
|
'-Wl,--wrap=libusb_claim_interface',
|
|
'-Wl,--wrap=libusb_control_transfer',
|
|
'-Wl,--wrap=libusb_release_interface',
|
|
'-Wl,--wrap=libusb_ref_device',
|
|
'-Wl,--wrap=libusb_unref_device',
|
|
'-Wl,--wrap=libusb_close',
|
|
'-Wl,--wrap=libusb_exit',
|
|
'-Wl,--gc-sections',
|
|
]
|
|
|
|
flashrom_tests = executable('flashrom_unit_tests',
|
|
srcs,
|
|
c_args : [
|
|
cargs,
|
|
'-ffunction-sections',
|
|
'-fdata-sections',
|
|
],
|
|
export_dynamic : true,
|
|
link_args : mocks,
|
|
dependencies : [cmocka_dep, flashrom_test_dep],
|
|
)
|
|
test('cmocka test flashrom', flashrom_tests)
|