build system: fix quoting of fragments list passed to ldgen

pull/8117/head
Ivan Grokhotkov 2020-10-09 19:06:33 +02:00
rodzic 6b361d923c
commit 29489a3303
2 zmienionych plików z 27 dodań i 12 usunięć

Wyświetl plik

@ -53,23 +53,24 @@ function(__ldgen_process_template template output)
if($ENV{LDGEN_CHECK_MAPPING})
set(ldgen_check "--check-mapping"
"--check-mapping-exceptions=${idf_path}/tools/ci/check_ldgen_mapping_exceptions.txt")
"--check-mapping-exceptions" "${idf_path}/tools/ci/check_ldgen_mapping_exceptions.txt")
message(STATUS "Mapping check enabled in ldgen")
endif()
add_custom_command(
OUTPUT ${output}
COMMAND ${python} ${idf_path}/tools/ldgen/ldgen.py
--config ${sdkconfig}
--fragments "$<JOIN:${ldgen_fragment_files},\t>"
--input ${template}
--output ${output}
--kconfig ${root_kconfig}
COMMAND ${python} "${idf_path}/tools/ldgen/ldgen.py"
--config "${sdkconfig}"
--fragments-list "${ldgen_fragment_files}"
--input "${template}"
--output "${output}"
--kconfig "${root_kconfig}"
--env-file "${config_env_path}"
--libraries-file ${build_dir}/ldgen_libraries
--objdump ${CMAKE_OBJDUMP}
--libraries-file "${build_dir}/ldgen_libraries"
--objdump "${CMAKE_OBJDUMP}"
${ldgen_check}
DEPENDS ${template} ${ldgen_fragment_files} ${ldgen_depends} ${SDKCONFIG}
VERBATIM
)
get_filename_component(_name ${output} NAME)

Wyświetl plik

@ -50,11 +50,20 @@ def main():
help='Linker template file',
type=argparse.FileType('r'))
argparser.add_argument(
fragments_group = argparser.add_mutually_exclusive_group()
fragments_group.add_argument(
'--fragments', '-f',
type=argparse.FileType('r'),
help='Input fragment files',
nargs='+')
nargs='+'
)
fragments_group.add_argument(
'--fragments-list',
help='Input fragment files as a semicolon-separated list',
type=str
)
argparser.add_argument(
'--libraries-file',
@ -102,13 +111,18 @@ def main():
args = argparser.parse_args()
input_file = args.input
fragment_files = [] if not args.fragments else args.fragments
libraries_file = args.libraries_file
config_file = args.config
output_path = args.output
kconfig_file = args.kconfig
objdump = args.objdump
fragment_files = []
if args.fragments_list:
fragment_files = args.fragments_list.split(';')
elif args.fragments:
fragment_files = args.fragments
check_mapping = args.check_mapping
if args.check_mapping_exceptions:
check_mapping_exceptions = [line.strip() for line in args.check_mapping_exceptions]