Choose format of installed documentation based on available tools. Can be selected using the DOCUMENTATION_FORMAT cmake variable. Update NEWS file.
diff --git a/CMakeLists.txt b/CMakeLists.txt index 1723ccd..3455cc6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt
@@ -39,6 +39,18 @@ OPTION(BUILD_SHARED_LIBS "Build shared libraries" ON) +FIND_PROGRAM(MDOCTOOL NAMES mandoc groff) +IF (MDOCTOOL) + SET(DOCUMENTATION_FORMAT "mdoc" CACHE STRING "Documentation format") +ELSE() + FIND_PROGRAM(MANTOOL NAMES nroff) + IF (MANTOOL) + SET(DOCUMENTATION_FORMAT "man" CACHE STRING "Documentation format") + ELSE() + SET(DOCUMENTATION_FORMAT "html" CACHE STRING "Documentation format") + ENDIF() +ENDIF() + SET(PACKAGE "libzip") SET(PACKAGE_NAME ${PACKAGE}) SET(PACKAGE_VERSION_MAJOR "1") @@ -192,7 +204,7 @@ ENDIF() IF (NOT HAVE_CRYPTO) - MESSAGE(WARNING "-- neither openssl nor gnutls found; AES support disabled") + MESSAGE(WARNING "-- neither OpenSSL nor GnuTLS found; AES support disabled") ENDIF() IF(MSVC) @@ -215,7 +227,7 @@ IF(NOT CMAKE_SYSTEM_NAME MATCHES Linux) SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) -ENDIF(NOT CMAKE_SYSTEM_NAME MATCHES Linux) +ENDIF() # Testing ENABLE_TESTING()
diff --git a/INSTALL.md b/INSTALL.md index e3960c6..5db156e 100644 --- a/INSTALL.md +++ b/INSTALL.md
@@ -34,6 +34,9 @@ - `BUILD_SHARED_LIBS`: set to `ON` or `OFF` to enable/disable building of shared libraries, defaults to `ON` - `CMAKE_INSTALL_PREFIX`: for setting the installation path +- `DOCUMENTATION_FORMAT`: choose one of 'man', 'mdoc', and 'html' for + the installed documentation (default: decided by cmake depending on + available tools) You can get verbose build output with by passing `VERBOSE=1` to `make`.
diff --git a/NEWS.md b/NEWS.md index a4bc5f9..98eff26 100644 --- a/NEWS.md +++ b/NEWS.md
@@ -1,3 +1,14 @@ +1.5.x [2018-xx-xx] +================== + +* Choose format of installed documentation based on available tools. +* Fix visibility of symbols. +* Fix zipcmp directory support. +* Don't set RPATH on Linux. +* Use Libs.private for link dependencies in pkg-config file. +* Fix build with LibreSSL. +* Various bugfixes. + 1.5.0 [2018-03-11] ==================
diff --git a/TODO.md b/TODO.md index 95b18c7..2a5bcf8 100644 --- a/TODO.md +++ b/TODO.md
@@ -26,6 +26,8 @@ - read/write: total byte count so far - state of source (opened, EOF reached, ...) +* add license to generated documentation (man, html) + # Later ## macOS / iOS framework
diff --git a/man/CMakeLists.txt b/man/CMakeLists.txt index 4f5feeb..5d7325a 100644 --- a/man/CMakeLists.txt +++ b/man/CMakeLists.txt
@@ -97,15 +97,14 @@ ziptool.1 ) -IF(CMAKE_SYSTEM_NAME MATCHES BSD) - SET(MANFMT mdoc) -ELSE() - SET(MANFMT man) -ENDIF() - FOREACH(MAN_PAGE ${MAN_PAGES}) - STRING(REGEX REPLACE "[1-9]$" "${MANFMT}" SOURCE_FILE ${MAN_PAGE}) - STRING(REGEX REPLACE ".*(.)$" "man\\1" SUBDIR ${MAN_PAGE}) + STRING(REGEX REPLACE "[1-9]$" "${DOCUMENTATION_FORMAT}" SOURCE_FILE ${MAN_PAGE}) + IF (DOCUMENTATION_FORMAT MATCHES "html") + INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${MAN_PAGE} DESTINATION ${CMAKE_INSTALL_DOCDIR} RENAME ${SOURCE_FILE}) + ELSE() + STRING(REGEX REPLACE ".*(.)$" "man\\1" SUBDIR ${MAN_PAGE}) + INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${MAN_PAGE} DESTINATION ${CMAKE_INSTALL_MANDIR}/${SUBDIR}) + ENDIF() # CONFIGURE_FILE does not find out about updates to the sources, and it does not provide a target #CONFIGURE_FILE(${SOURCE_FILE} ${MAN_PAGE} COPYONLY) ADD_CUSTOM_COMMAND(OUTPUT ${MAN_PAGE} @@ -113,7 +112,6 @@ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_SOURCE_DIR}/${SOURCE_FILE} ${CMAKE_CURRENT_BINARY_DIR}/${MAN_PAGE} COMMENT "Preparing ${MAN_PAGE}" ) - INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${MAN_PAGE} DESTINATION ${CMAKE_INSTALL_MANDIR}/${SUBDIR}) STRING(REGEX REPLACE "[1-9]$" "html" HTML_FILE ${MAN_PAGE}) STRING(REGEX REPLACE "[1-9]$" "man" MAN_FILE ${MAN_PAGE}) @@ -140,7 +138,13 @@ FILE(STRINGS links MANPAGE_LINKS) FOREACH(LINKS_LINE ${MANPAGE_LINKS}) IF(${LINKS_LINE} MATCHES "(.*) (.*)") - INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_MATCH_1}.3 DESTINATION ${CMAKE_INSTALL_MANDIR}/man3 RENAME ${CMAKE_MATCH_2}.3) + SET(SOURCE ${CMAKE_MATCH_1}) + SET(TARGET ${CMAKE_MATCH_2}) + IF (DOCUMENTATION_FORMAT MATCHES "html") + INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE}.3 DESTINATION ${CMAKE_INSTALL_DOCDIR} RENAME ${TARGET}.html) + ELSE() + INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${SOURCE}.3 DESTINATION ${CMAKE_INSTALL_MANDIR}/man3 RENAME ${TARGET}.3) + ENDIF() ENDIF() ENDFOREACH()