From 2d542a6c14625efa1b2c6249972bd36e117e3fa8 Mon Sep 17 00:00:00 2001 From: la-ninpre Date: Fri, 10 Sep 2021 17:08:07 +0000 Subject: added compiler info to nimisewi also removed error checks from nimisewi, nimisewi.cgi and nimisewi_gemini.cgi because this error check has to happen inside nimi_sewi() and not in those programs. FossilOrigin-Name: 2fd4c9495753569c904132ee83cd5f14662389c69399c27f289e0e3ae35aa0cb --- CMakeLists.txt | 25 ++++++++++++++++++++++++- cgi.c | 11 ++++------- cgi_gemini.c | 11 ++++------- config.h.in | 1 + main.c | 14 +++++--------- nimisewi.c | 2 +- 6 files changed, 39 insertions(+), 25 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6ae0628..417d85a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,16 +1,33 @@ cmake_minimum_required(VERSION 3.10) +# project specification + project(nimisewi - VERSION 0.3.0 + VERSION 0.3.1 DESCRIPTION "small program that generates random toki pona noun phrase" HOMEPAGE_URL "https://fsl.aaoth.xyz/nimisewi.c/home") +# get compiler name and version + +execute_process(COMMAND ${CMAKE_C_COMPILER} "--version" + OUTPUT_VARIABLE _PROJECT_C_COMPILER_VERSION) +string(REGEX REPLACE "\n" ";" + PROJECT_C_COMPILER_VERSION ${_PROJECT_C_COMPILER_VERSION}) +list(APPEND PROJECT_C_COMPILER_STRING ${PROJECT_C_COMPILER_VERSION}) +list(POP_FRONT PROJECT_C_COMPILER_STRING PROJECT_C_COMPILER_VERSION) + +# configuration header + configure_file(config.h.in config.h) +# main executable + add_executable(nimisewi main.c nimisewi.c ${PROJECT_BINARY_DIR}/nimitoki.c) target_include_directories(nimisewi PUBLIC "${PROJECT_BINARY_DIR}") +# supplementary executable + add_executable(makenimitoki makenimitoki.c) target_include_directories(makenimitoki PUBLIC "${PROJECT_BINARY_DIR}") @@ -20,10 +37,14 @@ add_custom_command( COMMAND makenimitoki ${PROJECT_SOURCE_DIR}/nimitoki.txt DEPENDS makenimitoki) +# includes + include(CheckIncludeFile) include(CheckSymbolExists) include(CheckCSourceCompiles) +# warning message + set(WARNING_STATIC_BUILD "static build won't work here") # check libraries @@ -179,6 +200,8 @@ if(BUILD_GEMINI_CGI) DESTINATION $) endif() +# packaging + include(InstallRequiredSystemLibraries) set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE") set(CPACK_PROJECT_VERSION_MAJOR ${nimisewi_VERSION_MAJOR}) diff --git a/cgi.c b/cgi.c index 976bad9..e71df22 100644 --- a/cgi.c +++ b/cgi.c @@ -75,26 +75,23 @@ print_html_footer(void) int main(void) { + char *ns; + #ifdef HAVE_PLEDGE if (pledge("stdio", NULL) == -1) { err(EXIT_FAILURE, "pledge"); } #endif - char *ns; - ns = nimi_sewi(); - if (ns == NULL) { - err(EXIT_FAILURE, "memory allocation failed"); - } - print_response_header(); print_html_header(); printf("

"); + ns = nimi_sewi(); printf("%s", ns); + weka_e_nimi_sewi(ns); printf("

\n"); - weka_e_nimi_sewi(ns); print_html_footer(); diff --git a/cgi_gemini.c b/cgi_gemini.c index d2bd866..171011e 100644 --- a/cgi_gemini.c +++ b/cgi_gemini.c @@ -9,22 +9,19 @@ int main(void) { + char *ns; + #ifdef HAVE_PLEDGE if (pledge("stdio", NULL) == -1) { err(EXIT_FAILURE, "pledge failed"); } #endif - char *ns; - - ns = nimi_sewi(); - if (ns == NULL) { - err(EXIT_FAILURE, "memory allocation failed"); - } - printf("20 text/gemini\r\n"); printf("sina o lukin e nimi sewi:\n\n"); + ns = nimi_sewi(); printf("# %s\n", ns); + weka_e_nimi_sewi(ns); return EXIT_SUCCESS; } diff --git a/config.h.in b/config.h.in index c0ff135..08ca98c 100644 --- a/config.h.in +++ b/config.h.in @@ -1,3 +1,4 @@ #define NIMISEWI_VERSION "@nimisewi_VERSION@" #define PACKAGE_STRING "@CMAKE_PROJECT_NAME@" " " NIMISEWI_VERSION #define PACKAGE_DESCRIPTION "@nimisewi_DESCRIPTION@" +#define COMPILER_NAME "@PROJECT_C_COMPILER_VERSION@" diff --git a/main.c b/main.c index 8c87c54..d4ce701 100644 --- a/main.c +++ b/main.c @@ -32,6 +32,8 @@ int main(int argc, char *argv[]) { + char *ns; + #ifdef HAVE_PLEDGE if (pledge("stdio", NULL) == -1) { err(EXIT_FAILURE, "pledge"); @@ -41,9 +43,8 @@ main(int argc, char *argv[]) if (!strcmp(argv[1], "--version") || !strcmp(argv[1], "-v")) { printf("%s\n", PACKAGE_STRING); printf("%s\n", PACKAGE_DESCRIPTION); -#if defined(HAVE_PLEDGE) || defined(HAVE_STRLCAT) - printf("features:\n"); -#endif + printf("compiled on %s %s using %s (%d-bit)\n", + __DATE__, __TIME__, COMPILER_NAME, sizeof(void*)*8); #ifdef HAVE_PLEDGE printf("HAVE_PLEDGE\n"); #endif @@ -56,14 +57,9 @@ main(int argc, char *argv[]) return EXIT_SUCCESS; } } - char *ns; - ns = nimi_sewi(); - if (ns == NULL) { - err(EXIT_FAILURE, "memory allocation failed"); - } + ns = nimi_sewi(); printf("%s\n", ns); - weka_e_nimi_sewi(ns); return EXIT_SUCCESS; diff --git a/nimisewi.c b/nimisewi.c index 989e227..28d79a6 100644 --- a/nimisewi.c +++ b/nimisewi.c @@ -218,7 +218,7 @@ char nimi_pana = calloc(nn->suli_pi_nimi_sewi + 1, sizeof(char)); if (nimi_pana == NULL) { weka_e_nanpa_nimi(nn); - return NULL; + err(EXIT_FAILURE, "memory allocation failed"); } for (i = 0; i < nn->nanpa_nimi; i++) { -- cgit v1.2.3