From a64471ed41cae090e17cb7d1261f4d6f349137f2 Mon Sep 17 00:00:00 2001 From: nplk84 Date: Thu, 12 Oct 2023 12:16:59 +0200 Subject: [PATCH] Aufgabe 1 Beendet --- .idea/ninja.iml | 8 +------- CMakeLists.txt | 15 ++++++++++----- config.h.in | 1 + njvm.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 54 insertions(+), 12 deletions(-) create mode 100644 config.h.in diff --git a/.idea/ninja.iml b/.idea/ninja.iml index bc2cd87..f08604b 100644 --- a/.idea/ninja.iml +++ b/.idea/ninja.iml @@ -1,8 +1,2 @@ - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 3a0316d..7d00741 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,12 @@ -# cmake_minimum_required(VERSION ) -project(ninja C) - -set(CMAKE_C_STANDARD 11) +cmake_minimum_required(VERSION 3.0) +project(ninja LANGUAGES C) +set(CMAKE_C_STANDARD 99) +set(PROJECT_VERSION 0) +configure_file( + ${CMAKE_SOURCE_DIR}/config.h.in + ${CMAKE_BINARY_DIR}/config.h +) +include_directories(${CMAKE_BINARY_DIR}) add_executable(ninja - njvm.c) + njvm.c config.h.in) diff --git a/config.h.in b/config.h.in new file mode 100644 index 0000000..ae08216 --- /dev/null +++ b/config.h.in @@ -0,0 +1 @@ +#define PROJECT_VERSION @PROJECT_VERSION@ \ No newline at end of file diff --git a/njvm.c b/njvm.c index 8b13789..95cf57c 100644 --- a/njvm.c +++ b/njvm.c @@ -1 +1,43 @@ +#include +#include +#include "config.h" +void version() { + printf("Ninja Virtual Machine version %i (compiled %s, %s)\n", PROJECT_VERSION, __DATE__, __TIME__); +} + +void help() { + printf("usage: ./njvm [option] [option] ...\n\t--version\tshow version and exit\n\t--help\t\tshow this help and exit"); +} +void printArgs(int argc, char *argv[]){ + for (int i = 0; i < argc; ++i) { + printf("%s\n", argv[i]); + } +} +void useption(int argc, char *argv[]){ + if (argc > 1) { + if (strcmp(argv[1], "--version") == 0) { + version(); + } else if (strcmp(argv[1], "--help") == 0) { + help(); + } else if (argc != 0) { + printf("unknown command line argument '%s', try './njvm --help'", argv[1]); + } + } +} + +int main(int argc, char *argv[]) { + printArgs(argc,argv); + if (argc > 1) useption(argc,argv); + else { + +// Started + printf("Ninja Virtual Machine started\n"); + + + +// Stopped + printf("Ninja Virtual Machine stopped\n"); + return 0; + } +} \ No newline at end of file