Path: blob/main/contrib/libfido2/man/CMakeLists.txt
39586 views
# Copyright (c) 2018-2022 Yubico AB. All rights reserved.1# Use of this source code is governed by a BSD-style2# license that can be found in the LICENSE file.3# SPDX-License-Identifier: BSD-2-Clause45find_program(MANDOC_PATH mandoc)6find_program(GZIP_PATH gzip)78message(STATUS "MANDOC_PATH: ${MANDOC_PATH}")9message(STATUS "GZIP_PATH: ${GZIP_PATH}")1011list(APPEND MAN_SOURCES12eddsa_pk_new.313es256_pk_new.314es384_pk_new.315fido2-assert.116fido2-cred.117fido2-token.118fido_init.319fido_assert_new.320fido_assert_allow_cred.321fido_assert_set_authdata.322fido_assert_verify.323fido_bio_dev_get_info.324fido_bio_enroll_new.325fido_bio_info_new.326fido_bio_template.327fido_cbor_info_new.328fido_cred_new.329fido_cred_exclude.330fido_credman_metadata_new.331fido_cred_set_authdata.332fido_cred_verify.333fido_dev_enable_entattest.334fido_dev_get_assert.335fido_dev_get_touch_begin.336fido_dev_info_manifest.337fido_dev_largeblob_get.338fido_dev_make_cred.339fido_dev_open.340fido_dev_set_io_functions.341fido_dev_set_pin.342fido_strerr.343rs256_pk_new.344)4546list(APPEND MAN_ALIAS47eddsa_pk_new eddsa_pk_free48eddsa_pk_new eddsa_pk_from_EVP_PKEY49eddsa_pk_new eddsa_pk_from_ptr50eddsa_pk_new eddsa_pk_to_EVP_PKEY51es256_pk_new es256_pk_free52es256_pk_new es256_pk_from_EC_KEY53es256_pk_new es256_pk_from_EVP_PKEY54es256_pk_new es256_pk_from_ptr55es256_pk_new es256_pk_to_EVP_PKEY56es384_pk_new es384_pk_free57es384_pk_new es384_pk_from_EC_KEY58es384_pk_new es384_pk_from_EVP_PKEY59es384_pk_new es384_pk_from_ptr60es384_pk_new es384_pk_to_EVP_PKEY61fido_assert_allow_cred fido_assert_empty_allow_list62fido_assert_new fido_assert_authdata_len63fido_assert_new fido_assert_authdata_ptr64fido_assert_new fido_assert_authdata_raw_len65fido_assert_new fido_assert_authdata_raw_ptr66fido_assert_new fido_assert_blob_len67fido_assert_new fido_assert_blob_ptr68fido_assert_new fido_assert_clientdata_hash_len69fido_assert_new fido_assert_clientdata_hash_ptr70fido_assert_new fido_assert_count71fido_assert_new fido_assert_flags72fido_assert_new fido_assert_free73fido_assert_new fido_assert_hmac_secret_len74fido_assert_new fido_assert_hmac_secret_ptr75fido_assert_new fido_assert_id_len76fido_assert_new fido_assert_id_ptr77fido_assert_new fido_assert_largeblob_key_len78fido_assert_new fido_assert_largeblob_key_ptr79fido_assert_new fido_assert_rp_id80fido_assert_new fido_assert_sigcount81fido_assert_new fido_assert_sig_len82fido_assert_new fido_assert_sig_ptr83fido_assert_new fido_assert_user_display_name84fido_assert_new fido_assert_user_icon85fido_assert_new fido_assert_user_id_len86fido_assert_new fido_assert_user_id_ptr87fido_assert_new fido_assert_user_name88fido_assert_set_authdata fido_assert_set_authdata_raw89fido_assert_set_authdata fido_assert_set_clientdata90fido_assert_set_authdata fido_assert_set_clientdata_hash91fido_assert_set_authdata fido_assert_set_count92fido_assert_set_authdata fido_assert_set_extensions93fido_assert_set_authdata fido_assert_set_hmac_salt94fido_assert_set_authdata fido_assert_set_hmac_secret95fido_assert_set_authdata fido_assert_set_rp96fido_assert_set_authdata fido_assert_set_sig97fido_assert_set_authdata fido_assert_set_up98fido_assert_set_authdata fido_assert_set_uv99fido_assert_set_authdata fido_assert_set_winhello_appid100fido_bio_dev_get_info fido_bio_dev_enroll_begin101fido_bio_dev_get_info fido_bio_dev_enroll_cancel102fido_bio_dev_get_info fido_bio_dev_enroll_continue103fido_bio_dev_get_info fido_bio_dev_enroll_remove104fido_bio_dev_get_info fido_bio_dev_get_template_array105fido_bio_dev_get_info fido_bio_dev_set_template_name106fido_bio_enroll_new fido_bio_enroll_free107fido_bio_enroll_new fido_bio_enroll_last_status108fido_bio_enroll_new fido_bio_enroll_remaining_samples109fido_bio_info_new fido_bio_info_free110fido_bio_info_new fido_bio_info_max_samples111fido_bio_info_new fido_bio_info_type112fido_bio_template fido_bio_template_array_count113fido_bio_template fido_bio_template_array_free114fido_bio_template fido_bio_template_array_new115fido_bio_template fido_bio_template_free116fido_bio_template fido_bio_template_id_len117fido_bio_template fido_bio_template_id_ptr118fido_bio_template fido_bio_template_name119fido_bio_template fido_bio_template_new120fido_bio_template fido_bio_template_set_id121fido_bio_template fido_bio_template_set_name122fido_cbor_info_new fido_cbor_info_aaguid_len123fido_cbor_info_new fido_cbor_info_aaguid_ptr124fido_cbor_info_new fido_cbor_info_algorithm_cose125fido_cbor_info_new fido_cbor_info_algorithm_count126fido_cbor_info_new fido_cbor_info_algorithm_type127fido_cbor_info_new fido_cbor_info_certs_len128fido_cbor_info_new fido_cbor_info_certs_name_ptr129fido_cbor_info_new fido_cbor_info_certs_value_ptr130fido_cbor_info_new fido_cbor_info_extensions_len131fido_cbor_info_new fido_cbor_info_extensions_ptr132fido_cbor_info_new fido_cbor_info_free133fido_cbor_info_new fido_cbor_info_fwversion134fido_cbor_info_new fido_cbor_info_maxcredbloblen135fido_cbor_info_new fido_cbor_info_maxcredcntlst136fido_cbor_info_new fido_cbor_info_maxcredidlen137fido_cbor_info_new fido_cbor_info_maxlargeblob138fido_cbor_info_new fido_cbor_info_maxmsgsiz139fido_cbor_info_new fido_cbor_info_maxrpid_minpinlen140fido_cbor_info_new fido_cbor_info_minpinlen141fido_cbor_info_new fido_cbor_info_new_pin_required142fido_cbor_info_new fido_cbor_info_options_len143fido_cbor_info_new fido_cbor_info_options_name_ptr144fido_cbor_info_new fido_cbor_info_options_value_ptr145fido_cbor_info_new fido_cbor_info_protocols_len146fido_cbor_info_new fido_cbor_info_protocols_ptr147fido_cbor_info_new fido_cbor_info_rk_remaining148fido_cbor_info_new fido_cbor_info_transports_len149fido_cbor_info_new fido_cbor_info_transports_ptr150fido_cbor_info_new fido_cbor_info_uv_attempts151fido_cbor_info_new fido_cbor_info_uv_modality152fido_cbor_info_new fido_cbor_info_versions_len153fido_cbor_info_new fido_cbor_info_versions_ptr154fido_cbor_info_new fido_dev_get_cbor_info155fido_cred_exclude fido_cred_empty_exclude_list156fido_cred_new fido_cred_aaguid_len157fido_cred_new fido_cred_aaguid_ptr158fido_cred_new fido_cred_attstmt_len159fido_cred_new fido_cred_attstmt_ptr160fido_cred_new fido_cred_authdata_len161fido_cred_new fido_cred_authdata_ptr162fido_cred_new fido_cred_authdata_raw_len163fido_cred_new fido_cred_authdata_raw_ptr164fido_cred_new fido_cred_clientdata_hash_len165fido_cred_new fido_cred_clientdata_hash_ptr166fido_cred_new fido_cred_display_name167fido_cred_new fido_cred_flags168fido_cred_new fido_cred_fmt169fido_cred_new fido_cred_free170fido_cred_new fido_cred_id_len171fido_cred_new fido_cred_id_ptr172fido_cred_new fido_cred_largeblob_key_len173fido_cred_new fido_cred_largeblob_key_ptr174fido_cred_new fido_cred_pin_minlen175fido_cred_new fido_cred_prot176fido_cred_new fido_cred_pubkey_len177fido_cred_new fido_cred_pubkey_ptr178fido_cred_new fido_cred_rp_id179fido_cred_new fido_cred_rp_name180fido_cred_new fido_cred_sigcount181fido_cred_new fido_cred_sig_len182fido_cred_new fido_cred_sig_ptr183fido_cred_new fido_cred_type184fido_cred_new fido_cred_user_id_len185fido_cred_new fido_cred_user_id_ptr186fido_cred_new fido_cred_user_name187fido_cred_new fido_cred_x5c_len188fido_cred_new fido_cred_x5c_ptr189fido_cred_verify fido_cred_verify_self190fido_credman_metadata_new fido_credman_del_dev_rk191fido_credman_metadata_new fido_credman_get_dev_metadata192fido_credman_metadata_new fido_credman_get_dev_rk193fido_credman_metadata_new fido_credman_get_dev_rp194fido_credman_metadata_new fido_credman_metadata_free195fido_credman_metadata_new fido_credman_rk196fido_credman_metadata_new fido_credman_rk_count197fido_credman_metadata_new fido_credman_rk_existing198fido_credman_metadata_new fido_credman_rk_free199fido_credman_metadata_new fido_credman_rk_new200fido_credman_metadata_new fido_credman_rk_remaining201fido_credman_metadata_new fido_credman_rp_count202fido_credman_metadata_new fido_credman_rp_free203fido_credman_metadata_new fido_credman_rp_id204fido_credman_metadata_new fido_credman_rp_id_hash_len205fido_credman_metadata_new fido_credman_rp_id_hash_ptr206fido_credman_metadata_new fido_credman_rp_name207fido_credman_metadata_new fido_credman_rp_new208fido_credman_metadata_new fido_credman_set_dev_rk209fido_cred_set_authdata fido_cred_set_attstmt210fido_cred_set_authdata fido_cred_set_authdata_raw211fido_cred_set_authdata fido_cred_set_blob212fido_cred_set_authdata fido_cred_set_clientdata213fido_cred_set_authdata fido_cred_set_clientdata_hash214fido_cred_set_authdata fido_cred_set_extensions215fido_cred_set_authdata fido_cred_set_fmt216fido_cred_set_authdata fido_cred_set_id217fido_cred_set_authdata fido_cred_set_pin_minlen218fido_cred_set_authdata fido_cred_set_prot219fido_cred_set_authdata fido_cred_set_rk220fido_cred_set_authdata fido_cred_set_rp221fido_cred_set_authdata fido_cred_set_sig222fido_cred_set_authdata fido_cred_set_type223fido_cred_set_authdata fido_cred_set_user224fido_cred_set_authdata fido_cred_set_uv225fido_cred_set_authdata fido_cred_set_x509226fido_dev_enable_entattest fido_dev_toggle_always_uv227fido_dev_enable_entattest fido_dev_force_pin_change228fido_dev_enable_entattest fido_dev_set_pin_minlen229fido_dev_enable_entattest fido_dev_set_pin_minlen_rpid230fido_dev_get_touch_begin fido_dev_get_touch_status231fido_dev_info_manifest fido_dev_info_free232fido_dev_info_manifest fido_dev_info_manufacturer_string233fido_dev_info_manifest fido_dev_info_new234fido_dev_info_manifest fido_dev_info_path235fido_dev_info_manifest fido_dev_info_product236fido_dev_info_manifest fido_dev_info_product_string237fido_dev_info_manifest fido_dev_info_ptr238fido_dev_info_manifest fido_dev_info_set239fido_dev_info_manifest fido_dev_info_vendor240fido_dev_open fido_dev_build241fido_dev_open fido_dev_cancel242fido_dev_open fido_dev_close243fido_dev_open fido_dev_flags244fido_dev_open fido_dev_force_fido2245fido_dev_open fido_dev_force_u2f246fido_dev_open fido_dev_free247fido_dev_open fido_dev_has_pin248fido_dev_open fido_dev_has_uv249fido_dev_open fido_dev_is_fido2250fido_dev_open fido_dev_is_winhello251fido_dev_open fido_dev_major252fido_dev_open fido_dev_minor253fido_dev_open fido_dev_new254fido_dev_open fido_dev_new_with_info255fido_dev_open fido_dev_open_with_info256fido_dev_open fido_dev_protocol257fido_dev_open fido_dev_supports_cred_prot258fido_dev_open fido_dev_supports_credman259fido_dev_open fido_dev_supports_permissions260fido_dev_open fido_dev_supports_pin261fido_dev_open fido_dev_supports_uv262fido_dev_set_pin fido_dev_get_retry_count263fido_dev_set_pin fido_dev_get_uv_retry_count264fido_dev_set_pin fido_dev_reset265fido_dev_set_io_functions fido_dev_io_handle266fido_dev_set_io_functions fido_dev_set_sigmask267fido_dev_set_io_functions fido_dev_set_timeout268fido_dev_set_io_functions fido_dev_set_transport_functions269fido_dev_largeblob_get fido_dev_largeblob_set270fido_dev_largeblob_get fido_dev_largeblob_remove271fido_dev_largeblob_get fido_dev_largeblob_get_array272fido_dev_largeblob_get fido_dev_largeblob_set_array273fido_init fido_set_log_handler274rs256_pk_new rs256_pk_free275rs256_pk_new rs256_pk_from_ptr276rs256_pk_new rs256_pk_from_EVP_PKEY277rs256_pk_new rs256_pk_from_RSA278rs256_pk_new rs256_pk_to_EVP_PKEY279)280281list(LENGTH MAN_ALIAS MAN_ALIAS_LEN)282math(EXPR MAN_ALIAS_MAX "${MAN_ALIAS_LEN} - 2")283284# man_copy285foreach(f ${MAN_SOURCES})286add_custom_command(OUTPUT ${f}287COMMAND cp -f ${PROJECT_SOURCE_DIR}/man/${f} .288DEPENDS ${f})289list(APPEND COPY_FILES ${f})290endforeach()291292# man_lint293foreach(f ${MAN_SOURCES})294add_custom_command(OUTPUT ${f}.lint295COMMAND mandoc -T lint -W warning ${f} > ${f}.lint296DEPENDS ${f})297list(APPEND LINT_FILES ${f}.lint)298endforeach()299300# man_html301foreach(f ${MAN_SOURCES})302string(REGEX REPLACE "\\.[13]$" "" g ${f})303add_custom_command(OUTPUT ${g}.html304COMMAND mandoc -T html -O man="%N.html",style=style.css -I os="Yubico AB" ${f} > ${g}.html305DEPENDS ${f})306list(APPEND HTML_FILES ${g}.html)307endforeach()308309# man_html_partial310foreach(f ${MAN_SOURCES})311string(REGEX REPLACE "\\.[13]$" "" g ${f})312add_custom_command(OUTPUT ${g}.partial313COMMAND cat ${PROJECT_SOURCE_DIR}/man/dyc.css > ${g}.partial314COMMAND mandoc -T html -O man="%N.html",fragment ${f} >> ${g}.partial315DEPENDS ${f})316list(APPEND HTML_PARTIAL_FILES ${g}.partial)317endforeach()318319# man_gzip320foreach(f ${MAN_SOURCES})321add_custom_command(OUTPUT ${f}.gz322COMMAND gzip -cn ${f} > ${f}.gz323DEPENDS ${f})324list(APPEND GZ_FILES ${f}.gz)325endforeach()326327macro(define_symlink_target NAME EXT)328foreach(i RANGE 0 ${MAN_ALIAS_MAX} 2)329math(EXPR j "${i} + 1")330list(GET MAN_ALIAS ${i} SRC)331list(GET MAN_ALIAS ${j} DST)332add_custom_command(OUTPUT ${DST}.${EXT}333COMMAND ln -sf ${SRC}.${EXT} ${DST}.${EXT})334list(APPEND ${NAME}_LINK_FILES ${DST}.${EXT})335endforeach()336add_custom_target(${NAME} DEPENDS ${${NAME}_LINK_FILES})337endmacro()338339add_custom_target(man_copy DEPENDS ${COPY_FILES})340add_custom_target(man_lint DEPENDS ${LINT_FILES})341add_custom_target(man_html DEPENDS ${HTML_FILES})342add_custom_target(man_html_partial DEPENDS ${HTML_PARTIAL_FILES})343add_custom_target(man_gzip DEPENDS ${GZ_FILES})344345define_symlink_target(man_symlink 3)346define_symlink_target(man_symlink_html html)347define_symlink_target(man_symlink_html_partial partial)348define_symlink_target(man_symlink_gzip 3.gz)349350add_dependencies(man_symlink man_copy)351add_dependencies(man_lint man_symlink)352add_dependencies(man_html man_lint)353add_dependencies(man_symlink_html man_html)354add_dependencies(man_html_partial man_lint)355add_dependencies(man_symlink_html_partial man_html_partial)356add_custom_target(man ALL)357358if(MANDOC_PATH)359add_dependencies(man man_symlink_html)360add_dependencies(man_gzip man_lint)361install(FILES ${PROJECT_SOURCE_DIR}/man/style.css362DESTINATION "${CMAKE_INSTALL_DOCDIR}/html")363foreach(f ${MAN_SOURCES})364string(REGEX REPLACE "\\.[13]$" "" f ${f})365install(FILES ${PROJECT_BINARY_DIR}/man/${f}.html366DESTINATION "${CMAKE_INSTALL_DOCDIR}/html")367endforeach()368foreach(i RANGE 0 ${MAN_ALIAS_MAX} 2)369math(EXPR j "${i} + 1")370list(GET MAN_ALIAS ${j} DST)371install(FILES ${PROJECT_BINARY_DIR}/man/${DST}.html372DESTINATION "${CMAKE_INSTALL_DOCDIR}/html")373endforeach()374endif()375376if(GZIP_PATH)377add_dependencies(man_gzip man_copy)378add_dependencies(man_symlink_gzip man_gzip)379add_dependencies(man man_symlink_gzip)380foreach(f ${MAN_SOURCES})381if (${f} MATCHES ".1$")382install(FILES ${PROJECT_BINARY_DIR}/man/${f}.gz383DESTINATION "${CMAKE_INSTALL_MANDIR}/man1")384elseif(${f} MATCHES ".3$")385install(FILES ${PROJECT_BINARY_DIR}/man/${f}.gz386DESTINATION "${CMAKE_INSTALL_MANDIR}/man3")387endif()388endforeach()389foreach(i RANGE 0 ${MAN_ALIAS_MAX} 2)390math(EXPR j "${i} + 1")391list(GET MAN_ALIAS ${j} DST)392install(FILES ${PROJECT_BINARY_DIR}/man/${DST}.3.gz393DESTINATION "${CMAKE_INSTALL_MANDIR}/man3")394endforeach()395elseif(NOT MSVC)396add_dependencies(man man_symlink)397foreach(f ${MAN_SOURCES})398if (${f} MATCHES ".1$")399install(FILES ${PROJECT_BINARY_DIR}/man/${f}400DESTINATION "${CMAKE_INSTALL_MANDIR}/man1")401elseif(${f} MATCHES ".3$")402install(FILES ${PROJECT_BINARY_DIR}/man/${f}403DESTINATION "${CMAKE_INSTALL_MANDIR}/man3")404endif()405endforeach()406foreach(i RANGE 0 ${MAN_ALIAS_MAX} 2)407math(EXPR j "${i} + 1")408list(GET MAN_ALIAS ${j} DST)409install(FILES ${PROJECT_BINARY_DIR}/man/${DST}.3410DESTINATION "${CMAKE_INSTALL_MANDIR}/man3")411endforeach()412endif()413414415