diff --git a/.clang-format b/.clang-format new file mode 100644 index 0000000..eb9d30c --- /dev/null +++ b/.clang-format @@ -0,0 +1,24 @@ +--- +UseTab: Always +TabWidth: 8 +AlignConsecutiveAssignments: + Enabled: true +AlignConsecutiveDeclarations: + Enabled: true +AccessModifierOffset: -4 +NamespaceIndentation: All +IndentWidth: 8 +PointerAlignment: Left +ColumnLimit: 0 +AllowShortIfStatementsOnASingleLine: Always +AllowShortBlocksOnASingleLine: Never +AllowShortFunctionsOnASingleLine: Empty +AllowShortLoopsOnASingleLine: true +BreakBeforeBraces: Custom +BraceWrapping: + AfterCaseLabel: true +SpaceBeforeParens: Never +AlignEscapedNewlines: DontAlign +SortIncludes: false +AllowShortEnumsOnASingleLine: false +#IndentPPDirectives: AfterHash diff --git a/GNUmakefile b/GNUmakefile index 769031d..cf7fef6 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -32,7 +32,7 @@ OBJS += external/duktape/duktape.o external/stb/stb_ds.o NAME = rev | cut -d/ -f1 | rev | cut -d. -f1 -.PHONY: all clean mk maint +.PHONY: all clean mk format maint .SUFFIXES: .c .o all: pmake$(EXE) @@ -52,6 +52,9 @@ mk/js.mk: mk: mk/js.mk +format: + clang-format --verbose -i src/*/*.js `find src -name "*.c" -or -name "*.h"` + maint: rm -f mk/*.mk $(MAKE) mk @@ -62,16 +65,13 @@ src/config.h: echo "#ifndef __CONFIG_H__" > $@ echo "#define __CONFIG_H__" >> $@ echo "" >> $@ - echo "#define COMPILERS \\" >> $@ - find src/compiler -name "*.js" | while read js; do \ - echo " X(`echo $$js | $(NAME)`) \\" ; \ - done >> $@ - echo "" >> $@ - echo "#define ACTIONS \\" >> $@ - find src/action -name "*.js" | while read js; do \ - echo " X(`echo $$js | $(NAME)`) \\" ; \ - done >> $@ - echo "" >> $@ + for i in compiler action; do \ + echo "#define `echo $$i | tr '[:lower:]' '[:upper:]'`S \\" >> $@ ; \ + find src/$$i -name "*.js" | while read js; do \ + echo " X(`echo $$js | $(NAME)`, $$i) \\" ; \ + done >> $@ ; \ + echo "" >> $@ ; \ + done echo "#define JS \\" >> $@ echo " COMPILERS \\" >> $@ echo " ACTIONS" >> $@ diff --git a/src/compiler/gcc.js b/src/compiler/gcc.js index 0fa93d6..d151bb8 100644 --- a/src/compiler/gcc.js +++ b/src/compiler/gcc.js @@ -1,5 +1,6 @@ const GCC = pmake.inherit(Compiler); +GCC.name = "GCC"; GCC.description = "GCC/Clang"; pmake.register(GCC); diff --git a/src/compiler/watcom.js b/src/compiler/watcom.js index 6b29ca4..7e3e6d8 100644 --- a/src/compiler/watcom.js +++ b/src/compiler/watcom.js @@ -1,5 +1,6 @@ const Watcom = pmake.inherit(Compiler); +Watcom.name = "Watcom"; Watcom.description = "Open Watcom"; pmake.register(Watcom); diff --git a/src/config.h b/src/config.h index 0afd2a4..b41cac3 100644 --- a/src/config.h +++ b/src/config.h @@ -2,11 +2,11 @@ #define __CONFIG_H__ #define COMPILERS \ - X(watcom) \ - X(gcc) \ + X(watcom, compiler) \ + X(gcc, compiler) #define ACTIONS \ - X(gmake) \ + X(gmake, action) #define JS \ COMPILERS \ diff --git a/src/js.c b/src/js.c index 45a2f67..308fb7a 100644 --- a/src/js.c +++ b/src/js.c @@ -5,20 +5,20 @@ duk_context* js_ctx; LOAD(js_core); LOAD(js_cmdline); -static duk_ret_t js_console_log(duk_context* self){ +static duk_ret_t js_console_log(duk_context* self) { printf("%s\n", duk_to_string(self, 0)); return 0; } -static void js_argv_init(int argc, char** argv){ +static void js_argv_init(int argc, char** argv) { int arr; int i; duk_push_global_object(js_ctx); arr = duk_push_array(js_ctx); - for(i = 0; i < argc; i++){ + for(i = 0; i < argc; i++) { duk_push_string(js_ctx, argv[i]); duk_put_prop_index(js_ctx, arr, i); } @@ -28,7 +28,7 @@ static void js_argv_init(int argc, char** argv){ duk_pop(js_ctx); } -static void js_console_init(void){ +static void js_console_init(void) { int obj; duk_push_global_object(js_ctx); @@ -42,24 +42,24 @@ static void js_console_init(void){ duk_pop(js_ctx); } -static duk_ret_t js_process_exit(duk_context* self){ +static duk_ret_t js_process_exit(duk_context* self) { duk_idx_t argc = duk_get_top(self); - int ex; + int ex; - if(argc > 1){ + if(argc > 1) { return duk_error(self, DUK_ERR_TYPE_ERROR, "needs 0 or 1 argument(s)"); } - if(argc == 1){ + if(argc == 1) { ex = duk_to_number(self, 0); - }else{ + } else { ex = 0; } exit(ex); } -static void js_process_init(void){ +static void js_process_init(void) { int obj; duk_push_global_object(js_ctx); @@ -73,27 +73,27 @@ static void js_process_init(void){ duk_pop(js_ctx); } -int js_init(int argc, char** argv){ +int js_init(int argc, char** argv) { js_ctx = duk_create_heap_default(); js_argv_init(argc, argv); js_console_init(); js_process_init(); - if(duk_peval_lstring(js_ctx, js_core, js_core_len) != 0){ + if(duk_peval_lstring(js_ctx, js_core, js_core_len) != 0) { printf("error: js/core.js: %s\n", duk_safe_to_string(js_ctx, -1)); return 1; } -#define X(name) \ - if(duk_peval_lstring(js_ctx, compiler_ ## name, compiler_ ## name ## _len) != 0){ \ - printf("error: %s: %s\n", "compiler/" #name ".js", duk_safe_to_string(js_ctx, -1)); \ +#define X(name, prefix) \ + if(duk_peval_lstring(js_ctx, prefix##_##name, prefix##_##name##_len) != 0) { \ + printf("error: %s: %s\n", #prefix "/" #name ".js", duk_safe_to_string(js_ctx, -1)); \ return 1; \ } - COMPILERS; + JS; #undef X - if(duk_peval_lstring(js_ctx, js_cmdline, js_cmdline_len) != 0){ + if(duk_peval_lstring(js_ctx, js_cmdline, js_cmdline_len) != 0) { printf("error: js/cmdline.js: %s\n", duk_safe_to_string(js_ctx, -1)); return 1; } @@ -101,6 +101,6 @@ int js_init(int argc, char** argv){ return 0; } -void js_uninit(void){ +void js_uninit(void) { duk_destroy_heap(js_ctx); } diff --git a/src/js/cmdline.js b/src/js/cmdline.js index 49fd118..7d43e4c 100644 --- a/src/js/cmdline.js +++ b/src/js/cmdline.js @@ -1,18 +1,18 @@ -if(ARGV.length == 1){ +if(ARGV.length == 1) { console.log("Type '" + ARGV[0] + " --help' for help"); process.exit(1); } -for(var i = 1; i < ARGV.length; i++){ - if(ARGV[i] == "--help"){ +for(var i = 1; i < ARGV.length; i++) { + if(ARGV[i] == "--help") { console.log("PMake " + pmake.VERSION + " - Pyrite's build script generator"); console.log(""); console.log("Usage: " + ARGV[0] + " [options] action [arguments]"); process.exit(0); - }else if(ARGV[i].startsWith("--")){ + } else if(ARGV[i].startsWith("--")) { console.log("Error: invalid option '" + ARGV[i].substr(2) + "'"); process.exit(1); - }else{ + } else { console.log("Error: no such action '" + ARGV[i] + "'"); process.exit(1); } diff --git a/src/js/core.js b/src/js/core.js index 4d31e83..f3205d4 100644 --- a/src/js/core.js +++ b/src/js/core.js @@ -1,31 +1,31 @@ const pmake = { - VERSION: "0.0" + VERSION : "0.0" }; -pmake.inherit = function(base){ - const func = function(){}; +pmake.inherit = function(base) { + const func = function() {}; Object.setPrototypeOf(func.prototype, base.prototype); return func; }; -pmake.inherited = function(base, parent){ +pmake.inherited = function(base, parent) { var proto = base.prototype; - while(proto){ + while(proto) { if(proto == parent.prototype) return true; proto = Object.getPrototypeOf(proto); } return false; -} +}; -pmake.register = function(base){ - if(pmake.inherited(base, Compiler)){ +pmake.register = function(base) { + if(pmake.inherited(base, Compiler)) { } -} +}; -function Compiler(){ +function Compiler() { } diff --git a/src/main.c b/src/main.c index a50818c..dc8e50a 100644 --- a/src/main.c +++ b/src/main.c @@ -1,6 +1,6 @@ #include "pmake.h" -int main(int argc, char** argv){ +int main(int argc, char** argv) { int st; if((st = js_init(argc, argv)) != 0) return st; diff --git a/src/pmake.h b/src/pmake.h index 7448d18..e23ad85 100644 --- a/src/pmake.h +++ b/src/pmake.h @@ -12,15 +12,15 @@ #define LOAD(name) \ extern unsigned char name[]; \ - extern unsigned int name ## _len; + extern unsigned int name##_len; -#define X(name) LOAD(compiler_ ## name) +#define X(name, prefix) LOAD(prefix##_##name) JS; #undef X /* js.c */ extern duk_context* js_context; -int js_init(int argc, char** argv); -void js_uninit(void); +int js_init(int argc, char** argv); +void js_uninit(void); #endif