diff options
| author | la-ninpre <leobrekalini@gmail.com> | 2021-09-10 17:59:04 +0000 |
|---|---|---|
| committer | la-ninpre <leobrekalini@gmail.com> | 2021-09-10 17:59:04 +0000 |
| commit | 19f698803f5f7d1a212fe4df872b7cd53055451c (patch) | |
| tree | 9d3fa3b7dcbab295fcf15d7f117c4878e2f3ab65 | |
| parent | bdcc9d24189821bfe47521f439430164ede92302 (diff) | |
| download | nimisewi_c-0.3.2.tar.gz nimisewi_c-0.3.2.zip | |
fixed link flags on linuxv0.3.2
and added comments to all endifs to not confuse this again.
FossilOrigin-Name: d284c4b7ba8baf2fcf9f6bdaa6b072beb8f8f3b67dee848a009445332f0ac198
| -rw-r--r-- | CMakeLists.txt | 80 |
1 files changed, 49 insertions, 31 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 417d85a..6b996f4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,7 +3,7 @@ cmake_minimum_required(VERSION 3.10) # project specification project(nimisewi - VERSION 0.3.1 + VERSION 0.3.2 DESCRIPTION "small program that generates random toki pona noun phrase" HOMEPAGE_URL "https://fsl.aaoth.xyz/nimisewi.c/home") @@ -60,13 +60,13 @@ if(OS_NAME MATCHES "Linux") check_symbol_exists(strlcat "bsd/string.h" HAVE_STRLCAT) if (HAVE_STRLCAT) list(APPEND EXTRA_DEFINITIONS HAVE_BSD_STRING_H HAVE_STRLCAT) - endif() + endif() # HAVE_STRLCAT check_symbol_exists(arc4random_uniform "bsd/stdlib.h" HAVE_ARC4RANDOM_UNIFORM) if (HAVE_ARC4RANDOM_UNIFORM) list(APPEND EXTRA_DEFINITIONS HAVE_BSD_STDLIB_H HAVE_ARC4RANDOM_UNIFORM) - endif() + endif() # HAVE_ARC4RANDOM_UNIFORM # check static libraries set(CMAKE_REQUIRED_LINK_OPTIONS "-static") @@ -94,35 +94,42 @@ if(OS_NAME MATCHES "Linux") AND HAVE_LIBPTHREAD_STATIC AND HAVE_LIBMD_STATIC)) message(WARNING ${WARNING_STATIC_BUILD}) - list(APPEND EXTRA_LIBS bsd pthread md) - endif() + endif() # NOT (HAVE_LIBBSD_STATIC AND ...) + + list(APPEND EXTRA_LIBS bsd pthread md) - else() + else() # NOT ANDROID if(NOT (HAVE_LIBBSD_STATIC)) message(WARNING ${WARNING_STATIC_BUILD}) endif() list(APPEND EXTRA_LIBS bsd) - endif() + endif() # NOT ANDROID unset(CMAKE_REQUIRED_LIBRARIES) unset(CMAKE_REQUIRED_LINK_OPTIONS) - endif() -endif() + + endif() # HAVE_BSD_STRING_H AND HAVE_BSD_STDLIB_H + +endif() # OS_NAME MATCHES "Linux" if(OS_NAME MATCHES "(.*BSD)|(DragonFly)") check_symbol_exists(strlcat "string.h" HAVE_STRLCAT) + if(HAVE_STRLCAT) list(APPEND EXTRA_DEFINITIONS HAVE_STRLCAT) - endif() + endif() # HAVE_STRLCAT + check_symbol_exists(arc4random_uniform "stdlib.h" HAVE_ARC4RANDOM_UNIFORM) if(HAVE_ARC4RANDOM_UNIFORM) list(APPEND EXTRA_DEFINITIONS HAVE_ARC4RANDOM_UNIFORM) - endif() + endif() # HAVE_ARC4RANDOM_UNIFORM + check_symbol_exists(pledge "unistd.h" HAVE_PLEDGE) if(HAVE_PLEDGE) list(APPEND EXTRA_DEFINITIONS HAVE_PLEDGE) - endif() -endif() + endif() # HAVE_PLEDGE + +endif() # OS_NAME MATCHES "(.*BSD)|(DragonFly)" set(CMAKE_REQUIRED_LINK_OPTIONS "-static") check_c_source_compiles( @@ -130,7 +137,7 @@ check_c_source_compiles( ) if(NOT HAVE_LIBC_STATIC) message(WARNING ${WARNING_STATIC_BUILD}) -endif() +endif() # NOT HAVE_LIBC_STATIC target_link_libraries(nimisewi PUBLIC ${EXTRA_LIBS}) target_compile_definitions(nimisewi PRIVATE ${EXTRA_DEFINITIONS}) @@ -140,11 +147,11 @@ if(HAVE_LIBC_STATIC) if(HAVE_BSD_STRING_H AND HAVE_BSD_STDLIB_H) if(HAVE_LIBBSD_STATIC) set(NIMISEWI_CGI_STATIC_BUILD TRUE) - endif() - else() + endif() # HAVE_LIBBSD_STATIC + else() # HAVE_BSD_STRING_H AND ... set(NIMISEWI_CGI_STATIC_BUILD TRUE) - endif() -endif() + endif() # HAVE_BSD_STRING_H AND ... +endif() # HAVE_LIBBSD_STATIC # optional binaries @@ -153,52 +160,62 @@ if(BUILD_CGI) add_executable(nimisewi.cgi cgi.c nimisewi.c ${PROJECT_BINARY_DIR}/nimitoki.c) option(CGI_INSTALL_DIR "specify installation directory of cgi script") + if(CGI_INSTALL_DIR) set_property(TARGET nimisewi.cgi PROPERTY CGI_INSTALL_DIR ${CGI_INSTALL_DIR}) - else() + else() # CGI_INSTALL_DIR set_property(TARGET nimisewi.cgi PROPERTY CGI_INSTALL_DIR "var/www/htdocs/cgi-bin") - endif() + endif() # CGI_INSTALL_DIR + target_include_directories(nimisewi.cgi PUBLIC "${PROJECT_BINARY_DIR}") target_compile_definitions(nimisewi.cgi PRIVATE ${EXTRA_DEFINITIONS}) target_link_libraries(nimisewi.cgi PUBLIC ${EXTRA_LIBS}) + if(NIMISEWI_CGI_STATIC_BUILD) target_link_options(nimisewi.cgi PUBLIC -static) - endif() -endif() + endif() # NIMISEWI_CGI_STATIC_BUILD + +endif() # BUILD_CGI option(BUILD_GEMINI_CGI "build cgi version of nimisewi for gemini protocol" OFF) if(BUILD_GEMINI_CGI) add_executable(nimisewi_gemini.cgi cgi_gemini.c nimisewi.c ${PROJECT_BINARY_DIR}/nimitoki.c) option(GEMINI_CGI_INSTALL_DIR "specify installation directory of cgi script") + if(GEMINI_CGI_INSTALL_DIR) set_property(TARGET nimisewi_gemini.cgi PROPERTY GEMINI_CGI_INSTALL_DIR ${GEMINI_CGI_INSTALL_DIR}) - else() + else() # GEMINI_CGI_INSTALL_DIR set_property(TARGET nimisewi_gemini.cgi PROPERTY GEMINI_CGI_INSTALL_DIR "var/gemini/cgi-bin") - endif() + endif() # GEMINI_CGI_INSTALL_DIR + target_include_directories(nimisewi_gemini.cgi PUBLIC "${PROJECT_BINARY_DIR}") target_compile_definitions(nimisewi_gemini.cgi PRIVATE ${EXTRA_DEFINITIONS}) target_link_libraries(nimisewi_gemini.cgi PUBLIC ${EXTRA_LIBS}) + if(NIMISEWI_CGI_STATIC_BUILD) target_link_options(nimisewi_gemini.cgi PUBLIC -static) - endif() -endif() + endif() # NIMISEWI_CGI_STATIC_BUILD + +endif() # BUILD_GEMINI_CGI # installation install(TARGETS nimisewi DESTINATION bin) + if(BUILD_CGI) install(TARGETS nimisewi.cgi DESTINATION $<TARGET_PROPERTY:nimisewi.cgi,CGI_INSTALL_DIR>) -endif() +endif() # BUILD_CGI + if(BUILD_GEMINI_CGI) install(TARGETS nimisewi_gemini.cgi DESTINATION $<TARGET_PROPERTY:nimisewi_gemini.cgi,GEMINI_CGI_INSTALL_DIR>) -endif() +endif() # BUILD_GEMINI_CGI # packaging @@ -230,16 +247,17 @@ add_test(NAME runs COMMAND nimisewi) add_test(NAME version COMMAND nimisewi -v) set_tests_properties(version PROPERTIES PASS_REGULAR_EXPRESSION - "nimisewi [0-9]\.[0-9]\.[0-9]\n[a-z ]+(\nfeatures:\n([A-Z_]+(\n)?)+)?") + "nimisewi [0-9]\.[0-9]\.[0-9]\n[a-z ]+(\n([A-Z_]+(\n)?)+)?") if(BUILD_CGI) add_test(NAME cgi COMMAND nimisewi.cgi) set_tests_properties(cgi PROPERTIES PASS_REGULAR_EXPRESSION "Status: 200 OK\rContent-Type: text\/html\r\r<.*>") -endif() +endif() # BUILD_CGI + if(BUILD_GEMINI_CGI) add_test(NAME gemini_cgi COMMAND nimisewi_gemini.cgi) set_tests_properties(gemini_cgi PROPERTIES PASS_REGULAR_EXPRESSION "20 text\/gemini\r\n.*") -endif() +endif() # BUILD_GEMINI_CGI |
