gebs_needs_rebuild_many() macro
This commit is contained in:
4
gebs.c
4
gebs.c
@ -9,10 +9,14 @@ int main(int argc, char ** argv)
|
|||||||
gebs_mkdir("build");
|
gebs_mkdir("build");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (gebs_needs_rebuild_many("build/self_rebuild", "example/self_rebuild.c")) {
|
||||||
if (GEBS_CMD("gcc", "-ggdb", "-o", "build/self_rebuild", "example/self_rebuild.c") != 0)
|
if (GEBS_CMD("gcc", "-ggdb", "-o", "build/self_rebuild", "example/self_rebuild.c") != 0)
|
||||||
return 1;
|
return 1;
|
||||||
|
}
|
||||||
|
if (gebs_needs_rebuild_many("build/arena", "example/arena.c")) {
|
||||||
if (GEBS_CMD("gcc", "-ggdb", "-o", "build/arena", "example/arena.c") != 0)
|
if (GEBS_CMD("gcc", "-ggdb", "-o", "build/arena", "example/arena.c") != 0)
|
||||||
return 1;
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
10
gebs.h
10
gebs.h
@ -236,6 +236,16 @@ void gebs_rebuild_self1_alloc(Gebs_Allocator *alloc, int argc, char ** argv,
|
|||||||
sizeof(__argv)/sizeof(__argv[0]), (char**)__argv, __FILE__); \
|
sizeof(__argv)/sizeof(__argv[0]), (char**)__argv, __FILE__); \
|
||||||
} while(0)
|
} while(0)
|
||||||
|
|
||||||
|
#define gebs_needs_rebuild_many(out, ...) \
|
||||||
|
({ \
|
||||||
|
const char *__deps[] = { __VA_ARGS__ }; \
|
||||||
|
bool __ok = true; \
|
||||||
|
for (size_t __i = 0; __i < sizeof(__deps)/sizeof(__deps[0]); __i++) { \
|
||||||
|
__ok = __ok && gebs_needs_rebuild((out), __deps[__i]); \
|
||||||
|
} \
|
||||||
|
__ok; \
|
||||||
|
})
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// Scratch arena
|
// Scratch arena
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
Reference in New Issue
Block a user