mirror of
https://github.com/frida/tinycc
synced 2024-11-25 09:10:53 +03:00
Win: Enable use "*.def + *.c" files as library instead of *.a by "-l" option
example: "-lshell32" will try "shell32.def + shell32.c" Add lib type "%s/%s.c" for tcc_add_library() ('-l' option parse) So tcc can use all files as scripts.
This commit is contained in:
parent
d316836008
commit
7a3f6d4941
11
libtcc.c
11
libtcc.c
@ -1300,7 +1300,7 @@ ST_FUNC int tcc_add_crt(TCCState *s, const char *filename)
|
||||
LIBTCCAPI int tcc_add_library(TCCState *s, const char *libraryname)
|
||||
{
|
||||
#ifdef TCC_TARGET_PE
|
||||
const char *libs[] = { "%s/%s.def", "%s/lib%s.def", "%s/%s.dll", "%s/lib%s.dll", "%s/lib%s.a", NULL };
|
||||
const char *libs[] = { "%s/%s.def", "%s/lib%s.def", "%s/%s.dll", "%s/lib%s.dll", "%s/lib%s.a", "%s/%s.c", NULL };
|
||||
const char **pp = s->static_link ? libs + 4 : libs;
|
||||
#else
|
||||
const char *libs[] = { "%s/lib%s.so", "%s/lib%s.a", NULL };
|
||||
@ -1308,8 +1308,15 @@ LIBTCCAPI int tcc_add_library(TCCState *s, const char *libraryname)
|
||||
#endif
|
||||
while (*pp) {
|
||||
if (0 == tcc_add_library_internal(s, *pp,
|
||||
libraryname, 0, s->library_paths, s->nb_library_paths))
|
||||
libraryname, 0, s->library_paths, s->nb_library_paths)) {
|
||||
#ifdef TCC_TARGET_PE
|
||||
/* extra search for *.c file together with *.def file */
|
||||
if (pp < libs + 2)
|
||||
tcc_add_library_internal(s, *(libs + 5), libraryname, 0,
|
||||
s->library_paths, s->nb_library_paths);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
++pp;
|
||||
}
|
||||
return -1;
|
||||
|
Loading…
Reference in New Issue
Block a user