Use paths rather than flags in kitten extension definitions

This commit is contained in:
Kovid Goyal 2021-09-18 10:08:28 +05:30
parent 2fc972a173
commit 6b576fcf5c
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C

View File

@ -747,16 +747,16 @@ def compile_kittens(compilation_database: CompilationDatabase) -> None:
extra_headers: Sequence[str] = (), extra_headers: Sequence[str] = (),
extra_sources: Sequence[str] = (), extra_sources: Sequence[str] = (),
filter_sources: Optional[Callable[[str], bool]] = None, filter_sources: Optional[Callable[[str], bool]] = None,
cflags: Sequence[str] = (), ldflags: Sequence[str] = (), includes: Sequence[str] = (), libraries: Sequence[str] = (),
) -> Tuple[str, List[str], List[str], str, Sequence[str], Sequence[str]]: ) -> Tuple[str, List[str], List[str], str, Sequence[str], Sequence[str]]:
sources = list(filter(filter_sources, list(extra_sources) + list_files(os.path.join('kittens', kitten, '*.c')))) sources = list(filter(filter_sources, list(extra_sources) + list_files(os.path.join('kittens', kitten, '*.c'))))
headers = list_files(os.path.join('kittens', kitten, '*.h')) + list(extra_headers) headers = list_files(os.path.join('kittens', kitten, '*.h')) + list(extra_headers)
return kitten, sources, headers, 'kittens/{}/{}'.format(kitten, output), cflags, ldflags return kitten, sources, headers, 'kittens/{}/{}'.format(kitten, output), includes, libraries
for kitten, sources, all_headers, dest, cflags, ldflags in ( for kitten, sources, all_headers, dest, includes, libraries in (
files('unicode_input', 'unicode_names'), files('unicode_input', 'unicode_names'),
files('diff', 'diff_speedup'), files('diff', 'diff_speedup'),
files('transfer', 'rsync', ldflags=('-lrsync',)), files('transfer', 'rsync', libraries=('rsync',)),
files( files(
'choose', 'subseq_matcher', 'choose', 'subseq_matcher',
extra_headers=('kitty/charsets.h',), extra_headers=('kitty/charsets.h',),
@ -764,8 +764,8 @@ def compile_kittens(compilation_database: CompilationDatabase) -> None:
filter_sources=lambda x: 'windows_compat.c' not in x), filter_sources=lambda x: 'windows_compat.c' not in x),
): ):
final_env = kenv.copy() final_env = kenv.copy()
final_env.cflags.extend(cflags) final_env.cflags.extend(f'-I{x}' for x in includes)
final_env.ldflags.extend(ldflags) final_env.ldpaths[:0] = list(f'-l{x}' for x in libraries)
compile_c_extension( compile_c_extension(
final_env, dest, compilation_database, sources, all_headers + ['kitty/data-types.h']) final_env, dest, compilation_database, sources, all_headers + ['kitty/data-types.h'])