diff options
| -rw-r--r-- | CMakeLists.txt | 46 | ||||
| -rw-r--r-- | main.c | 2 |
2 files changed, 38 insertions, 10 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 6b996f4..2a3278f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,9 +3,10 @@ cmake_minimum_required(VERSION 3.10) # project specification project(nimisewi - VERSION 0.3.2 + VERSION 0.3.3 DESCRIPTION "small program that generates random toki pona noun phrase" - HOMEPAGE_URL "https://fsl.aaoth.xyz/nimisewi.c/home") + HOMEPAGE_URL "https://fsl.aaoth.xyz/nimisewi.c/home" + LANGUAGES C) # get compiler name and version @@ -20,6 +21,11 @@ list(POP_FRONT PROJECT_C_COMPILER_STRING PROJECT_C_COMPILER_VERSION) configure_file(config.h.in config.h) +# warnings + +add_compile_options(-g -W -Wall -Wextra -pedantic -Wmissing-prototypes + -Wstrict-prototypes -Wwrite-strings) + # main executable add_executable(nimisewi main.c nimisewi.c @@ -58,13 +64,13 @@ if(OS_NAME MATCHES "Linux") set(CMAKE_REQUIRED_LIBRARIES "bsd") check_symbol_exists(strlcat "bsd/string.h" HAVE_STRLCAT) - if (HAVE_STRLCAT) + if(HAVE_STRLCAT) list(APPEND EXTRA_DEFINITIONS HAVE_BSD_STRING_H HAVE_STRLCAT) endif() # HAVE_STRLCAT check_symbol_exists(arc4random_uniform "bsd/stdlib.h" HAVE_ARC4RANDOM_UNIFORM) - if (HAVE_ARC4RANDOM_UNIFORM) + if(HAVE_ARC4RANDOM_UNIFORM) list(APPEND EXTRA_DEFINITIONS HAVE_BSD_STDLIB_H HAVE_ARC4RANDOM_UNIFORM) endif() # HAVE_ARC4RANDOM_UNIFORM @@ -90,19 +96,27 @@ if(OS_NAME MATCHES "Linux") "#include<sha2.h>\nint main(void){return 0;}" HAVE_LIBMD_STATIC) - if(NOT (HAVE_LIBBSD_STATIC - AND HAVE_LIBPTHREAD_STATIC - AND HAVE_LIBMD_STATIC)) - message(WARNING ${WARNING_STATIC_BUILD}) - endif() # NOT (HAVE_LIBBSD_STATIC AND ...) + if(NOT HAVE_LIBBSD_STATIC) + list(APPEND _MISSING_STATIC_LIBS libbsd) + if(NOT HAVE_LIBPTHREAD_STATIC) + list(APPEND _MISSING_STATIC_LIBS libpthread) + if(NOT HAVE_LIBMD_STATIC) + list(APPEND _MISSING_STATIC_LIBS libmd) + message(WARNING ${WARNING_STATIC_BUILD}) + endif() # NOT HAVE_LIBMD_STATIC + endif() # NOT HAVE_LIBPTHREAD_STATIC + endif() # NOT HAVE_LIBBSD_STATIC list(APPEND EXTRA_LIBS bsd pthread md) else() # NOT ANDROID + if(NOT (HAVE_LIBBSD_STATIC)) + list(APPEND _MISSING_STATIC_LIBS libbsd) message(WARNING ${WARNING_STATIC_BUILD}) endif() list(APPEND EXTRA_LIBS bsd) + endif() # NOT ANDROID unset(CMAKE_REQUIRED_LIBRARIES) @@ -136,6 +150,7 @@ check_c_source_compiles( "#include<stdio.h>\nint main(void){return 0;}" HAVE_LIBC_STATIC ) if(NOT HAVE_LIBC_STATIC) + list(APPEND _MISSING_STATIC_LIBS libc) message(WARNING ${WARNING_STATIC_BUILD}) endif() # NOT HAVE_LIBC_STATIC @@ -153,6 +168,19 @@ if(HAVE_LIBC_STATIC) endif() # HAVE_BSD_STRING_H AND ... endif() # HAVE_LIBBSD_STATIC +# options + +option(NIMISEWI_STATIC_BUILD "build static version of nimisewi" OFF) +if(NIMISEWI_STATIC_BUILD) + if(NIMISEWI_CGI_STATIC_BUILD) + target_link_options(nimisewi.cgi PUBLIC -static) + else() # NIMISEWI_CGI_STATIC_BUILD + message(SEND_ERROR + "missing ${_MISSING_STATIC_LIBS}. will not link statically. \ + consider installing such libraries or switching off this option") + endif() # NIMISEWI_CGI_STATIC_BUILD +endif() # NIMISEWI_STATIC_BUILD + # optional binaries option(BUILD_CGI "build cgi version of nimisewi" OFF) @@ -43,7 +43,7 @@ main(int argc, char *argv[]) if (!strcmp(argv[1], "--version") || !strcmp(argv[1], "-v")) { printf("%s\n", PACKAGE_STRING); printf("%s\n", PACKAGE_DESCRIPTION); - printf("compiled on %s %s using %s (%d-bit)\n", + printf("compiled on %s %s using %s (%lu-bit)\n", __DATE__, __TIME__, COMPILER_NAME, sizeof(void*)*8); #ifdef HAVE_PLEDGE printf("HAVE_PLEDGE\n"); |
