diff options
| author | Garrett D'Amore <garrett@damore.org> | 2018-05-18 22:21:28 -0700 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2018-05-18 22:21:28 -0700 |
| commit | 0c3178860cb14b095e809676d5c4401cf65f5f58 (patch) | |
| tree | 9841a2af627afede8e245126f533d528c3b7a258 | |
| parent | 6bbe0ac937556de0bda5344842957b8c9e8c226b (diff) | |
| download | nng-0c3178860cb14b095e809676d5c4401cf65f5f58.tar.gz nng-0c3178860cb14b095e809676d5c4401cf65f5f58.tar.bz2 nng-0c3178860cb14b095e809676d5c4401cf65f5f58.zip | |
fixes #444 Stop looking for asciidoctor by default
While here, we have actually cleaned this up and enabled documentation
building to work, for folks that want it. We default to off, because
frankly folks should just use the website and be happy.
If docs are enabled, then both man pages and html are generated.
The man pages are noticably inferior (only so much you can do with
80 columns of text), but some people have indicated they prefer to
be able to type "man" something.
| -rw-r--r-- | CMakeLists.txt | 58 | ||||
| -rw-r--r-- | docs/man/CMakeLists.txt | 358 |
2 files changed, 359 insertions, 57 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index f277c653..bf08ca90 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -86,7 +86,6 @@ endif() # User-defined options. -option (NNG_ENABLE_DOC "Enable building documentation." ON) option (NNG_TESTS "Build and run tests" ON) option (NNG_TOOLS "Build extra tools" ON) option (NNG_ENABLE_NNGCAT "Enable building nngcat utility." ${NNG_TOOLS}) @@ -420,62 +419,7 @@ if (NNG_ENABLE_NNGCAT) add_subdirectory (tools/nngcat) endif () -if (NNG_ENABLE_DOC) - find_program (ASCIIDOCTOR_EXE asciidoctor) - if (NOT ASCIIDOCTOR_EXE) - message (WARNING "Could not find asciidoctor: skipping docs") - set (NNG_ENABLE_DOC OFF) - else () - message (STATUS "Using asciidoctor at ${ASCIIDOCTOR_EXE}") - endif () -endif () - - -# Build the documenation -if (NNG_ENABLE_DOC) - - set (NNG_DOCDIR ${CMAKE_CURRENT_SOURCE_DIR}/doc) - set (NNG_STYLESHEET ${NNG_DOCDIR}/stylesheet.css) - set (NNG_TITLE ${PROJECT_NAME} ${NNG_PACKAGE_VERSION}) - set (NNG_A2M ${ASCIIDOCTOR_EXE} -b manpage -amanmanual='${NNG_TITLE}') - set (NNG_A2H ${ASCIIDOCTOR_EXE} -d manpage -b html5 -a stylesheeet=${NNG_STYLESHEET} -aversion-label=${PROJECT_NAME} -arevnumber=${NNG_PACKAGE_VERSION}) - - macro (add_libnng_man NAME SECT) - add_custom_command ( - OUTPUT ${NAME}.${SECT} - COMMAND ${NNG_A2M} -o ${NAME}.${SECT} ${NNG_DOCDIR}/${NAME}.adoc - MAIN_DEPENDENCY ${NNG_DOCDIR}/${NAME}.adoc - ) - - add_custom_command ( - OUTPUT ${NAME}.html - COMMAND ${NNG_A2H} -o ${NAME}.html ${NNG_DOCDIR}/${NAME}.adoc - DEPENDS ${NNG_STYLESHEET} - MAIN_DEPENDENCY ${NNG_DOCDIR}/${NAME}.adoc - ) - - set(NNG_MANS ${NNG_MANS} ${NAME}.${SECT}) - set(NNG_HTMLS ${NNG_HTMLS} ${NAME}.html) - - install ( - FILES ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.html - DESTINATION ${CMAKE_INSTALL_DOCDIR} - ) - install ( - FILES ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.${SECT} - DESTINATION ${CMAKE_INSTALL_MANDIR}/man${SECT} - ) - - endmacro (add_libnng_man) - - #add_libnng_man (nn_errno 3) - - #add_libnng_man (nanomsg 7) - - #add_custom_target (man ALL DEPENDS ${NNG_MANS}) - #add_custom_target (html ALL DEPENDS ${NNG_HTMLS}) - -endif () +add_subdirectory (docs/man) set (CPACK_PACKAGE_NAME ${PROJECT_NAME}) set (CPACK_PACKAGE_VERSION ${NNG_PACKAGE_VERSION}) diff --git a/docs/man/CMakeLists.txt b/docs/man/CMakeLists.txt new file mode 100644 index 00000000..66421553 --- /dev/null +++ b/docs/man/CMakeLists.txt @@ -0,0 +1,358 @@ +# +# Copyright 2018 Capitar IT Group BV <info@capitar.com> +# Copyright 2018 Staysail Systems, Inc. <info@staysail.tech> +# +# This software is supplied under the terms of the MIT License, a +# copy of which should be located in the distribution where this +# file was obtained (LICENSE.txt). A copy of the license may also be +# found online at https://opensource.org/licenses/MIT. + +# We default to off here. +option (NNG_ENABLE_DOC "Enable building documentation." OFF) + +if (NNG_ENABLE_DOC) + find_program (ASCIIDOCTOR asciidoctor) + if (NOT ASCIIDOCTOR) + message (WARNING "Could not find asciidoctor: skipping docs") + set (NNG_ENABLE_DOC OFF) + else () + message (STATUS "Using asciidoctor at ${ASCIIDOCTOR}") + endif () +endif () + +if (NNG_ENABLE_DOC) + set (NNG_DOCDIR ${CMAKE_CURRENT_SOURCE_DIR}) + + set (NNG_A2M ${ASCIIDOCTOR} -b manpage -amanmanual='NNG Reference Manual') + set (NNG_A2H ${ASCIIDOCTOR} -a nofooter -atoc=left -aicons=font -d manpage -b html5) + + macro (nng_man NAME SECT) + + add_custom_command ( + OUTPUT ${NAME}.${SECT} + COMMAND ${NNG_A2M} -o ${NAME}.${SECT} ${NNG_DOCDIR}/${NAME}.${SECT}.adoc + MAIN_DEPENDENCY ${NNG_DOCDIR}/${NAME}.${SECT}.adoc + ) + + add_custom_command ( + OUTPUT ${NAME}.${SECT}.html + COMMAND ${NNG_A2H} -o ${NAME}.html ${NNG_DOCDIR}/${NAME}.${SECT}.adoc + MAIN_DEPENDENCY ${NNG_DOCDIR}/${NAME}.${SECT}.adoc + ) + + set(NNG_MANS ${NNG_MANS} ${NAME}.${SECT}) + set(NNG_HTMLS ${NNG_HTMLS} ${NAME}.${SECT}.html) + + install ( + FILES ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.{SECT}.html + DESTINATION ${CMAKE_INSTALL_DOCDIR} + ) + install ( + FILES ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.${SECT} + DESTINATION ${CMAKE_INSTALL_MANDIR}/man${SECT} + ) + + endmacro (nng_man) + + set (NNG_MAN1 + nngcat + ) + + set (NNG_MAN3 + libnng + nng_aio_abort + nng_aio_alloc + nng_aio_cancel + nng_aio_count + nng_aio_finish + nng_aio_free + nng_aio_get_input + nng_aio_get_msg + nng_aio_get_output + nng_aio_result + nng_aio_set_input + nng_aio_set_iov + nng_aio_set_msg + nng_aio_set_output + nng_aio_set_timeout + nng_aio_stop + nng_aio_wait + nng_alloc + nng_bus_open + nng_close + nng_ctx_close + nng_ctx_getopt + nng_ctx_id + nng_ctx_open + nng_ctx_recv + nng_ctx_send + nng_ctx_setopt + nng_device + nng_dial + nng_dialer_close + nng_dialer_create + nng_dialer_getopt + nng_dialer_id + nng_dialer_setopt + nng_dialer_start + nng_free + nng_getopt + nng_inproc_register + nng_ipc_register + nng_listen + nng_listener_close + nng_listener_create + nng_listener_getopt + nng_listener_id + nng_listener_setopt + nng_listener_start + nng_msg_alloc + nng_msg_append + nng_msg_body + nng_msg_chop + nng_msg_clear + nng_msg_dup + nng_msg_free + nng_msg_get_pipe + nng_msg_header + nng_msg_header_append + nng_msg_header_chop + nng_msg_header_clear + nng_msg_header_insert + nng_msg_header_len + nng_msg_header_trim + nng_msg_insert + nng_msg_len + nng_msg_realloc + nng_msg_set_pipe + nng_msg_trim + nng_pair_open + nng_pipe_close + nng_pipe_dialer + nng_pipe_getopt + nng_pipe_id + nng_pipe_listener + nng_pipe_notify + nng_pipe_socket + nng_pub_open + nng_pull_open + nng_push_open + nng_recv + nng_recv_aio + nng_recvmsg + nng_rep_open + nng_req_open + nng_respondent_open + nng_send + nng_send_aio + nng_sendmsg + nng_setopt + nng_sleep_aio + nng_socket_id + nng_strdup + nng_strerror + nng_strfree + nng_sub_open + nng_surveyor_open + nng_tcp_register + nng_tls_register + nng_url_clone + nng_url_free + nng_url_parse + nng_version + nng_ws_register + nng_wss_register + nng_zt_register + ) + + set(NNG_MAN3COMPAT + nn_allocmsg + nn_bind + nn_close + nn_cmsg + nn_connect + nn_device + nn_errno + nn_freemsg + nn_get_statistic + nn_getsockopt + nn_poll + nn_reallocmsg + nn_recv + nn_recvmsg + nn_send + nn_sendmsg + nn_setsockopt + nn_shutdown + nn_socket + nn_strerror + nn_term + nng_compat + ) + + set(NNG_MAN3HTTP + nng_http_client_alloc + nng_http_client_connect + nng_http_client_free + nng_http_client_get_tls + nng_http_client_set_tls + nng_http_conn_close + nng_http_conn_read + nng_http_conn_read_all + nng_http_conn_read_req + nng_http_conn_read_res + nng_http_conn_write + nng_http_conn_write_all + nng_http_conn_write_req + nng_http_conn_write_res + nng_http_handler_alloc + nng_http_handler_free + nng_http_handler_get_data + nng_http_handler_set_data + nng_http_handler_set_host + nng_http_handler_set_method + nng_http_handler_set_tree + nng_http_hijack + nng_http_req_add_header + nng_http_req_alloc + nng_http_req_copy_data + nng_http_req_del_header + nng_http_req_free + nng_http_req_get_header + nng_http_req_get_method + nng_http_req_get_uri + nng_http_req_get_version + nng_http_req_set_data + nng_http_req_set_header + nng_http_req_set_method + nng_http_req_set_uri + nng_http_req_set_version + nng_http_res_add_header + nng_http_res_alloc + nng_http_res_alloc_error + nng_http_res_copy_data + nng_http_res_del_header + nng_http_res_free + nng_http_res_get_header + nng_http_res_get_reason + nng_http_res_get_status + nng_http_res_get_version + nng_http_res_set_data + nng_http_res_set_header + nng_http_res_set_reason + nng_http_res_set_status + nng_http_res_set_version + nng_http_server_add_handler + nng_http_server_del_handler + nng_http_server_get_tls + nng_http_server_hold + nng_http_server_release + nng_http_server_set_tls + nng_http_server_start + nng_http_server_stop + ) + + set(NNG_MAN3SUPP + nng_clock + nng_cv_alloc + nng_cv_free + nng_cv_until + nng_cv_wait + nng_cv_wake + nng_cv_wake1 + nng_msleep + nng_mtx_alloc + nng_mtx_free + nng_mtx_lock + nng_mtx_unlock + nng_opts_parse + nng_random + nng_thread_create + nng_thread_destroy + ) + + set(NNG_MAN3TLS + nng_tls_config_alloc + nng_tls_config_auth_mode + nng_tls_config_ca_chain + nng_tls_config_ca_file + nng_tls_config_cert_key_file + nng_tls_config_free + nng_tls_config_own_cert + nng_tls_config_server_name + ) + + set(NNG_MAN5 + nng_aio + nng_ctx + nng_dialer + nng_duration + nng_iov + nng_listener + nng_msg + nng_options + nng_pipe + nng_sockaddr + nng_sockaddr_in + nng_sockaddr_in6 + nng_sockaddr_inproc + nng_sockaddr_ipc + nng_sockaddr_zt + nng_socket + ) + + set(NNG_MAN7 + nng + nng_bus + nng_inproc + nng_ipc + nng_pair + nng_pub + nng_pull + nng_push + nng_rep + nng_req + nng_respondent + nng_sub + nng_surveyor + nng_tcp + nng_tls + nng_ws + nng_zerotier + ) + + foreach(F ${NNG_MAN1}) + nng_man(${F} 1) + endforeach() + + foreach(F ${NNG_MAN3}) + nng_man(${F} 3) + endforeach() + + foreach(F ${NNG_MAN3COMPAT}) + nng_man(${F} 3compat) + endforeach() + + foreach(F ${NNG_MAN3HTTP}) + nng_man(${F} 3http) + endforeach() + + foreach(F ${NNG_MAN3SUPP}) + nng_man(${F} 3supp) + endforeach() + + foreach(F ${NNG_MAN3TLS}) + nng_man(${F} 3tls) + endforeach() + + foreach(F ${NNG_MAN5}) + nng_man(${F} 5) + endforeach() + + foreach(F ${NNG_MAN7}) + nng_man(${F} 7) + endforeach() + + add_custom_target (man ALL DEPENDS ${NNG_MANS}) + add_custom_target (html ALL DEPENDS ${NNG_HTMLS}) +endif () |
