diff --git a/CMakeLists.txt b/CMakeLists.txt index ce7668567..9887610ef 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,12 +2,30 @@ cmake_minimum_required(VERSION 3.0) project(fastfetch) +execute_process( + COMMAND git rev-list --count HEAD + WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" + OUTPUT_VARIABLE GIT_REV_LIST + OUTPUT_STRIP_TRAILING_WHITESPACE +) +execute_process( + COMMAND git rev-parse --short HEAD + WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" + OUTPUT_VARIABLE GIT_REV_PARSE + OUTPUT_STRIP_TRAILING_WHITESPACE +) + +set(PROJECT_VERSION "r${GIT_REV_LIST}.${GIT_REV_PARSE}") + include (${CMAKE_ROOT}/Modules/FindX11.cmake) -# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -march=native -O3 -pipe -fno-plt") # for testing +#set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -march=native -O3 -pipe -fno-plt") # for testing set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -march=native -O3 -pipe -fno-plt") -add_executable(fastfetch +configure_file(src/fastfetch_config.h.in fastfetch_config.h) +include_directories(${PROJECT_BINARY_DIR}) + +add_executable(${PROJECT_NAME} src/fastfetch.c src/break.c src/logo.c @@ -34,7 +52,7 @@ add_executable(fastfetch src/colors.c ) -target_link_libraries(fastfetch +target_link_libraries(${PROJECT_NAME} ${X11_LIBRARIES} pci ) \ No newline at end of file diff --git a/src/fastfetch.c b/src/fastfetch.c index 1fb85594c..c94a4a910 100644 --- a/src/fastfetch.c +++ b/src/fastfetch.c @@ -1,4 +1,5 @@ #include "fastfetch.h" +#include "fastfetch_config.h" #include #include @@ -8,7 +9,7 @@ void ffPrintKey(FFstate* state, const char* key) { - printf("%s"FASTFETCH_TEXT_MODIFIER_BOLT"%s"FASTFETCH_TEXT_MODIFIER_RESET": ", state->color, key); + printf(FASTFETCH_TEXT_MODIFIER_BOLT"%s%s"FASTFETCH_TEXT_MODIFIER_RESET": ", state->color, key); } void ffPrintLogoAndKey(FFstate* state, const char* key) @@ -176,6 +177,7 @@ static void printHelp() "\n" " -h, --help: shows this message and exits\n" " -h , --help : shows help for a specific command and exits\n" + " -v --version prints the version of fastfetch and exits\n" " -l , --logo : sets the shown logo. Also changes the main color accordingly\n" " -c , --color : sets the color of the keys. Must be a linux console color code\n" " -s , --seperator : sets the distance between logo and text\n" @@ -226,7 +228,7 @@ static void parseArguments(int argc, char** argv, FFstate* state) { for(int i = 1; i < argc; i++) { - if(strcmp(argv[i], "--help") == 0 || strcmp(argv[i], "-h") == 0) + if(strcmp(argv[i], "-h") == 0 || strcmp(argv[i], "--help") == 0) { if(i == argc - 1) printHelp(); @@ -235,6 +237,11 @@ static void parseArguments(int argc, char** argv, FFstate* state) exit(0); } + else if(strcmp(argv[i], "-v") == 0 || strcmp(argv[i], "--version") == 0) + { + puts(FASTFETCH_PROJECT_NAME" "FASTFETCH_PROJECT_VER); + exit(0); + } else if(strcmp(argv[i], "--list-logos") == 0) { ffListLogos(); @@ -249,7 +256,7 @@ static void parseArguments(int argc, char** argv, FFstate* state) { state->showErrors = true; } - else if(strcmp(argv[i], "--logo") == 0 || strcmp(argv[i], "-l") == 0) + else if(strcmp(argv[i], "-l") == 0 || strcmp(argv[i], "--logo") == 0) { if(i == argc - 1) { diff --git a/src/fastfetch_config.h.in b/src/fastfetch_config.h.in new file mode 100644 index 000000000..19bae2c89 --- /dev/null +++ b/src/fastfetch_config.h.in @@ -0,0 +1,11 @@ +#ifndef FASTFETCH_INDLUDED_fastfetch_config_h_in +#define FASTFETCH_INDLUDED_fastfetch_config_h_in + +#define FASTFETCH_PROJECT_NAME "@PROJECT_NAME@" +#define FASTFETCH_PROJECT_VER "@PROJECT_VERSION@" + +// #define FASTFETCH_PROJECT_VER_MAJOR "@PROJECT_VERSION_MAJOR@" +// #define FASTFETCH_PROJECT_VER_MINOR "@PROJECT_VERSION_MINOR@" +// #define FASTFETCH_PTOJECT_VER_PATCH "@PROJECT_VERSION_PATCH@" + +#endif // FASTFETCH_INDLUDED_fastfetch_config_h_in \ No newline at end of file diff --git a/src/title.c b/src/title.c index 9e5e1bfee..7a055c4b3 100644 --- a/src/title.c +++ b/src/title.c @@ -11,7 +11,7 @@ void ffPrintTitle(FFstate* state) ffPrintLogoLine(state); - printf("%s"FASTFETCH_TEXT_MODIFIER_BOLT"%s"FASTFETCH_TEXT_MODIFIER_RESET"@%s"FASTFETCH_TEXT_MODIFIER_BOLT"%s"FASTFETCH_TEXT_MODIFIER_RESET"\n", + printf(FASTFETCH_TEXT_MODIFIER_BOLT"%s%s"FASTFETCH_TEXT_MODIFIER_RESET"@"FASTFETCH_TEXT_MODIFIER_BOLT"%s%s"FASTFETCH_TEXT_MODIFIER_RESET"\n", state->color, state->passwd->pw_name, state->color, hostname ); } \ No newline at end of file