aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorla-ninpre <leobrekalini@gmail.com>2021-09-10 17:59:04 +0000
committerla-ninpre <leobrekalini@gmail.com>2021-09-10 17:59:04 +0000
commit19f698803f5f7d1a212fe4df872b7cd53055451c (patch)
tree9d3fa3b7dcbab295fcf15d7f117c4878e2f3ab65
parentbdcc9d24189821bfe47521f439430164ede92302 (diff)
downloadnimisewi_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.txt80
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