]> Nishi Git Mirror - dataworks.git/commitdiff
added function to get compiler version
authornishi <nishi@d4a5a174-5a4a-5b4b-b672-37683c10d7d5>
Sat, 22 Jun 2024 00:01:14 +0000 (00:01 +0000)
committernishi <nishi@d4a5a174-5a4a-5b4b-b672-37683c10d7d5>
Sat, 22 Jun 2024 00:01:14 +0000 (00:01 +0000)
git-svn-id: file:///raid/svn-main/nishi-dataworks/trunk@414 d4a5a174-5a4a-5b4b-b672-37683c10d7d5

Client/client.c
Library/dataworks.c
Library/dataworks.h

index 5e412fc42f43299507c5e132f73de8503013f7d0..cec322c119fb24ce0e45ea65e20d6fea733b11db 100644 (file)
@@ -145,8 +145,11 @@ int main(int argc, char** argv) {
        }
        if(banner) {
                printf("DataWorks  version %s  %s %s\n", dataworks_get_version(), dataworks_get_compile_date(), dataworks_get_platform());
-               printf("Using Yacc: %s\n", dataworks_get_yacc_version());
-               printf("       Lex: %s\n", dataworks_get_lex_version());
+               char* comp = dataworks_get_compiler();
+               printf("    Using Yacc: %s\n", dataworks_get_yacc_version());
+               printf("           Lex: %s\n", dataworks_get_lex_version());
+               printf("Compiled using: %s\n", comp);
+               free(comp);
                if(dataworks_get_endian() == 'L') {
                        printf("This system is little-endian.\n");
                } else {
index b82a39eee7801ad18a81e90b7f820ed46077b74a..8b889bcdf08d5b17d7b9797d881b8e676f8055c0 100644 (file)
@@ -33,6 +33,8 @@
 
 #include <stdbool.h>
 #include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
 
 const char* dataworks_version = "0.1.1";
 const char* dataworks_compile_date = __DATE__;
@@ -94,6 +96,25 @@ const char* dataworks_get_copyright(void) { return dataworks_copyright; }
 
 int yywrap() { return 1; }
 
+char* dataworks_get_compiler(void) {
+       char* ver = malloc(513);
+       memset(ver, 0, 513);
+#if defined(__WATCOMC__)
+       sprintf(ver, "Open Watcom %d.%d", __WATCOMC__ / 100, __WATCOMC__ % 100);
+#elif defined(__clang__)
+       sprintf(ver, "%s", __VERSION__);
+#elif defined(__PCC__)
+       sprintf(ver, "%s", __VERSION__);
+#elif defined(__VBCC__)
+       sprintf(ver, "VBCC");
+#elif defined(__GNUC__)
+       sprintf(ver, "GCC %s", __VERSION__);
+#else
+       sprintf(ver, "Unsupported compiler");
+#endif
+       return ver;
+}
+
 int yyerror(const char* err) {
        fprintf(stderr, "Parser error: %s\n", err);
        return 0;
index e16ab52f2b9589976c97cad292d76c9b177fb9c4..bf23669b1efb2f3ccb053289d92f024a164b0133 100644 (file)
@@ -69,6 +69,14 @@ const char* dataworks_get_yacc_version(void);
  */
 const char* dataworks_get_lex_version(void);
 
+/**
+ * @~english
+ * @brief Get the compiler which was used to compile DataWorks
+ * @return Compiler which was used to compile DataWorks
+ *
+ */
+char* dataworks_get_compiler(void);
+
 /**
  * @~english
  * @brief Get the compilation date of DataWorks