]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/libfido2/man/CMakeLists.txt
ldns: Upgrade to 1.8.3.
[FreeBSD/FreeBSD.git] / contrib / libfido2 / man / CMakeLists.txt
1 # Copyright (c) 2018 Yubico AB. All rights reserved.
2 # Use of this source code is governed by a BSD-style
3 # license that can be found in the LICENSE file.
4
5 find_program(MANDOC_PATH mandoc)
6 find_program(GZIP_PATH gzip)
7
8 message(STATUS "MANDOC_PATH: ${MANDOC_PATH}")
9 message(STATUS "GZIP_PATH: ${GZIP_PATH}")
10
11 list(APPEND MAN_SOURCES
12         eddsa_pk_new.3
13         es256_pk_new.3
14         fido2-assert.1
15         fido2-cred.1
16         fido2-token.1
17         fido_init.3
18         fido_assert_new.3
19         fido_assert_allow_cred.3
20         fido_assert_set_authdata.3
21         fido_assert_verify.3
22         fido_bio_dev_get_info.3
23         fido_bio_enroll_new.3
24         fido_bio_info_new.3
25         fido_bio_template.3
26         fido_cbor_info_new.3
27         fido_cred_new.3
28         fido_cred_exclude.3
29         fido_credman_metadata_new.3
30         fido_cred_set_authdata.3
31         fido_cred_verify.3
32         fido_dev_enable_entattest.3
33         fido_dev_get_assert.3
34         fido_dev_get_touch_begin.3
35         fido_dev_info_manifest.3
36         fido_dev_largeblob_get.3
37         fido_dev_make_cred.3
38         fido_dev_open.3
39         fido_dev_set_io_functions.3
40         fido_dev_set_pin.3
41         fido_strerr.3
42         rs256_pk_new.3
43 )
44
45 list(APPEND MAN_ALIAS
46         eddsa_pk_new eddsa_pk_free
47         eddsa_pk_new eddsa_pk_from_EVP_PKEY
48         eddsa_pk_new eddsa_pk_from_ptr
49         eddsa_pk_new eddsa_pk_to_EVP_PKEY
50         es256_pk_new es256_pk_free
51         es256_pk_new es256_pk_from_EC_KEY
52         es256_pk_new es256_pk_from_EVP_PKEY
53         es256_pk_new es256_pk_from_ptr
54         es256_pk_new es256_pk_to_EVP_PKEY
55         fido_assert_new fido_assert_authdata_len
56         fido_assert_new fido_assert_authdata_ptr
57         fido_assert_new fido_assert_blob_len
58         fido_assert_new fido_assert_blob_ptr
59         fido_assert_new fido_assert_clientdata_hash_len
60         fido_assert_new fido_assert_clientdata_hash_ptr
61         fido_assert_new fido_assert_count
62         fido_assert_new fido_assert_flags
63         fido_assert_new fido_assert_free
64         fido_assert_new fido_assert_hmac_secret_len
65         fido_assert_new fido_assert_hmac_secret_ptr
66         fido_assert_new fido_assert_id_len
67         fido_assert_new fido_assert_id_ptr
68         fido_assert_new fido_assert_largeblob_key_len
69         fido_assert_new fido_assert_largeblob_key_ptr
70         fido_assert_new fido_assert_rp_id
71         fido_assert_new fido_assert_sigcount
72         fido_assert_new fido_assert_sig_len
73         fido_assert_new fido_assert_sig_ptr
74         fido_assert_new fido_assert_user_display_name
75         fido_assert_new fido_assert_user_icon
76         fido_assert_new fido_assert_user_id_len
77         fido_assert_new fido_assert_user_id_ptr
78         fido_assert_new fido_assert_user_name
79         fido_assert_set_authdata fido_assert_set_authdata_raw
80         fido_assert_set_authdata fido_assert_set_clientdata
81         fido_assert_set_authdata fido_assert_set_clientdata_hash
82         fido_assert_set_authdata fido_assert_set_count
83         fido_assert_set_authdata fido_assert_set_extensions
84         fido_assert_set_authdata fido_assert_set_hmac_salt
85         fido_assert_set_authdata fido_assert_set_hmac_secret
86         fido_assert_set_authdata fido_assert_set_rp
87         fido_assert_set_authdata fido_assert_set_sig
88         fido_assert_set_authdata fido_assert_set_up
89         fido_assert_set_authdata fido_assert_set_uv
90         fido_bio_dev_get_info fido_bio_dev_enroll_begin
91         fido_bio_dev_get_info fido_bio_dev_enroll_cancel
92         fido_bio_dev_get_info fido_bio_dev_enroll_continue
93         fido_bio_dev_get_info fido_bio_dev_enroll_remove
94         fido_bio_dev_get_info fido_bio_dev_get_template_array
95         fido_bio_dev_get_info fido_bio_dev_set_template_name
96         fido_bio_enroll_new fido_bio_enroll_free
97         fido_bio_enroll_new fido_bio_enroll_last_status
98         fido_bio_enroll_new fido_bio_enroll_remaining_samples
99         fido_bio_info_new fido_bio_info_free
100         fido_bio_info_new fido_bio_info_max_samples
101         fido_bio_info_new fido_bio_info_type
102         fido_bio_template fido_bio_template_array_count
103         fido_bio_template fido_bio_template_array_free
104         fido_bio_template fido_bio_template_array_new
105         fido_bio_template fido_bio_template_free
106         fido_bio_template fido_bio_template_id_len
107         fido_bio_template fido_bio_template_id_ptr
108         fido_bio_template fido_bio_template_name
109         fido_bio_template fido_bio_template_new
110         fido_bio_template fido_bio_template_set_id
111         fido_bio_template fido_bio_template_set_name
112         fido_cbor_info_new fido_cbor_info_aaguid_len
113         fido_cbor_info_new fido_cbor_info_aaguid_ptr
114         fido_cbor_info_new fido_cbor_info_algorithm_cose
115         fido_cbor_info_new fido_cbor_info_algorithm_count
116         fido_cbor_info_new fido_cbor_info_algorithm_type
117         fido_cbor_info_new fido_cbor_info_extensions_len
118         fido_cbor_info_new fido_cbor_info_extensions_ptr
119         fido_cbor_info_new fido_cbor_info_free
120         fido_cbor_info_new fido_cbor_info_maxmsgsiz
121         fido_cbor_info_new fido_cbor_info_maxcredbloblen
122         fido_cbor_info_new fido_cbor_info_maxcredcntlst
123         fido_cbor_info_new fido_cbor_info_maxcredidlen
124         fido_cbor_info_new fido_cbor_info_fwversion
125         fido_cbor_info_new fido_cbor_info_options_len
126         fido_cbor_info_new fido_cbor_info_options_name_ptr
127         fido_cbor_info_new fido_cbor_info_options_value_ptr
128         fido_cbor_info_new fido_cbor_info_protocols_len
129         fido_cbor_info_new fido_cbor_info_protocols_ptr
130         fido_cbor_info_new fido_cbor_info_transports_len
131         fido_cbor_info_new fido_cbor_info_transports_ptr
132         fido_cbor_info_new fido_cbor_info_versions_len
133         fido_cbor_info_new fido_cbor_info_versions_ptr
134         fido_cbor_info_new fido_dev_get_cbor_info
135         fido_cred_new fido_cred_aaguid_len
136         fido_cred_new fido_cred_aaguid_ptr
137         fido_cred_new fido_cred_attstmt_len
138         fido_cred_new fido_cred_attstmt_ptr
139         fido_cred_new fido_cred_authdata_len
140         fido_cred_new fido_cred_authdata_ptr
141         fido_cred_new fido_cred_authdata_raw_len
142         fido_cred_new fido_cred_authdata_raw_ptr
143         fido_cred_new fido_cred_clientdata_hash_len
144         fido_cred_new fido_cred_clientdata_hash_ptr
145         fido_cred_new fido_cred_display_name
146         fido_cred_new fido_cred_flags
147         fido_cred_new fido_cred_fmt
148         fido_cred_new fido_cred_free
149         fido_cred_new fido_cred_id_len
150         fido_cred_new fido_cred_id_ptr
151         fido_cred_new fido_cred_largeblob_key_len
152         fido_cred_new fido_cred_largeblob_key_ptr
153         fido_cred_new fido_cred_pin_minlen
154         fido_cred_new fido_cred_prot
155         fido_cred_new fido_cred_pubkey_len
156         fido_cred_new fido_cred_pubkey_ptr
157         fido_cred_new fido_cred_rp_id
158         fido_cred_new fido_cred_rp_name
159         fido_cred_new fido_cred_sigcount
160         fido_cred_new fido_cred_sig_len
161         fido_cred_new fido_cred_sig_ptr
162         fido_cred_new fido_cred_type
163         fido_cred_new fido_cred_user_id_len
164         fido_cred_new fido_cred_user_id_ptr
165         fido_cred_new fido_cred_user_name
166         fido_cred_new fido_cred_x5c_len
167         fido_cred_new fido_cred_x5c_ptr
168         fido_cred_verify fido_cred_verify_self
169         fido_credman_metadata_new fido_credman_del_dev_rk
170         fido_credman_metadata_new fido_credman_get_dev_metadata
171         fido_credman_metadata_new fido_credman_get_dev_rk
172         fido_credman_metadata_new fido_credman_get_dev_rp
173         fido_credman_metadata_new fido_credman_metadata_free
174         fido_credman_metadata_new fido_credman_rk
175         fido_credman_metadata_new fido_credman_rk_count
176         fido_credman_metadata_new fido_credman_rk_existing
177         fido_credman_metadata_new fido_credman_rk_free
178         fido_credman_metadata_new fido_credman_rk_new
179         fido_credman_metadata_new fido_credman_rk_remaining
180         fido_credman_metadata_new fido_credman_rp_count
181         fido_credman_metadata_new fido_credman_rp_free
182         fido_credman_metadata_new fido_credman_rp_id
183         fido_credman_metadata_new fido_credman_rp_id_hash_len
184         fido_credman_metadata_new fido_credman_rp_id_hash_ptr
185         fido_credman_metadata_new fido_credman_rp_name
186         fido_credman_metadata_new fido_credman_rp_new
187         fido_credman_metadata_new fido_credman_set_dev_rk
188         fido_cred_set_authdata fido_cred_set_attstmt
189         fido_cred_set_authdata fido_cred_set_authdata_raw
190         fido_cred_set_authdata fido_cred_set_blob
191         fido_cred_set_authdata fido_cred_set_clientdata
192         fido_cred_set_authdata fido_cred_set_clientdata_hash
193         fido_cred_set_authdata fido_cred_set_extensions
194         fido_cred_set_authdata fido_cred_set_fmt
195         fido_cred_set_authdata fido_cred_set_id
196         fido_cred_set_authdata fido_cred_set_pin_minlen
197         fido_cred_set_authdata fido_cred_set_prot
198         fido_cred_set_authdata fido_cred_set_rk
199         fido_cred_set_authdata fido_cred_set_rp
200         fido_cred_set_authdata fido_cred_set_sig
201         fido_cred_set_authdata fido_cred_set_type
202         fido_cred_set_authdata fido_cred_set_user
203         fido_cred_set_authdata fido_cred_set_uv
204         fido_cred_set_authdata fido_cred_set_x509
205         fido_dev_enable_entattest fido_dev_toggle_always_uv
206         fido_dev_enable_entattest fido_dev_force_pin_change
207         fido_dev_enable_entattest fido_dev_set_pin_minlen
208         fido_dev_enable_entattest fido_dev_set_pin_minlen_rpid
209         fido_dev_get_touch_begin fido_dev_get_touch_status
210         fido_dev_info_manifest fido_dev_info_free
211         fido_dev_info_manifest fido_dev_info_manufacturer_string
212         fido_dev_info_manifest fido_dev_info_new
213         fido_dev_info_manifest fido_dev_info_path
214         fido_dev_info_manifest fido_dev_info_product
215         fido_dev_info_manifest fido_dev_info_product_string
216         fido_dev_info_manifest fido_dev_info_ptr
217         fido_dev_info_manifest fido_dev_info_set
218         fido_dev_info_manifest fido_dev_info_vendor
219         fido_dev_open fido_dev_build
220         fido_dev_open fido_dev_cancel
221         fido_dev_open fido_dev_close
222         fido_dev_open fido_dev_flags
223         fido_dev_open fido_dev_force_fido2
224         fido_dev_open fido_dev_force_u2f
225         fido_dev_open fido_dev_free
226         fido_dev_open fido_dev_has_pin
227         fido_dev_open fido_dev_has_uv
228         fido_dev_open fido_dev_is_fido2
229         fido_dev_open fido_dev_is_winhello
230         fido_dev_open fido_dev_major
231         fido_dev_open fido_dev_minor
232         fido_dev_open fido_dev_new
233         fido_dev_open fido_dev_new_with_info
234         fido_dev_open fido_dev_open_with_info
235         fido_dev_open fido_dev_protocol
236         fido_dev_open fido_dev_supports_cred_prot
237         fido_dev_open fido_dev_supports_credman
238         fido_dev_open fido_dev_supports_permissions
239         fido_dev_open fido_dev_supports_pin
240         fido_dev_open fido_dev_supports_uv
241         fido_dev_set_pin fido_dev_get_retry_count
242         fido_dev_set_pin fido_dev_get_uv_retry_count
243         fido_dev_set_pin fido_dev_reset
244         fido_dev_set_io_functions fido_dev_io_handle
245         fido_dev_set_io_functions fido_dev_set_sigmask
246         fido_dev_set_io_functions fido_dev_set_timeout
247         fido_dev_set_io_functions fido_dev_set_transport_functions
248         fido_dev_largeblob_get fido_dev_largeblob_set
249         fido_dev_largeblob_get fido_dev_largeblob_remove
250         fido_dev_largeblob_get fido_dev_largeblob_get_array
251         fido_dev_largeblob_get fido_dev_largeblob_set_array
252         fido_init fido_set_log_handler
253         rs256_pk_new rs256_pk_free
254         rs256_pk_new rs256_pk_from_ptr
255         rs256_pk_new rs256_pk_from_EVP_PKEY
256         rs256_pk_new rs256_pk_from_RSA
257         rs256_pk_new rs256_pk_to_EVP_PKEY
258 )
259
260 list(LENGTH MAN_ALIAS MAN_ALIAS_LEN)
261 math(EXPR MAN_ALIAS_MAX "${MAN_ALIAS_LEN} - 2")
262
263 # man_copy
264 foreach(f ${MAN_SOURCES})
265         add_custom_command(OUTPUT ${f}
266                 COMMAND cp -f ${CMAKE_SOURCE_DIR}/man/${f} .
267                 DEPENDS ${f})
268         list(APPEND COPY_FILES ${f})
269 endforeach()
270
271 # man_lint
272 foreach(f ${MAN_SOURCES})
273         add_custom_command(OUTPUT ${f}.lint
274                 COMMAND mandoc -T lint -W warning ${f} > ${f}.lint
275                 DEPENDS ${f})
276         list(APPEND LINT_FILES ${f}.lint)
277 endforeach()
278
279 # man_html
280 foreach(f ${MAN_SOURCES})
281         string(REGEX REPLACE ".[13]" "" g ${f})
282         add_custom_command(OUTPUT ${g}.html
283                 COMMAND mandoc -T html -O man="%N.html",style=style.css -I os="Yubico AB" ${f} > ${g}.html
284                 DEPENDS ${f})
285         list(APPEND HTML_FILES ${g}.html)
286 endforeach()
287
288 # man_html_partial
289 foreach(f ${MAN_SOURCES})
290         string(REGEX REPLACE ".[13]" "" g ${f})
291         add_custom_command(OUTPUT ${g}.partial
292                 COMMAND cat ${CMAKE_SOURCE_DIR}/man/dyc.css > ${g}.partial
293                 COMMAND mandoc -T html -O man="%N.html",fragment ${f} >> ${g}.partial
294                 DEPENDS ${f})
295         list(APPEND HTML_PARTIAL_FILES ${g}.partial)
296 endforeach()
297
298 # man_gzip
299 foreach(f ${MAN_SOURCES})
300         add_custom_command(OUTPUT ${f}.gz
301                 COMMAND gzip -cn ${f} > ${f}.gz
302                 DEPENDS ${f})
303         list(APPEND GZ_FILES ${f}.gz)
304 endforeach()
305
306 macro(define_symlink_target NAME EXT)
307         foreach(i RANGE 0 ${MAN_ALIAS_MAX} 2)
308                 math(EXPR j "${i} + 1")
309                 list(GET MAN_ALIAS ${i} SRC)
310                 list(GET MAN_ALIAS ${j} DST)
311                 add_custom_command(OUTPUT ${DST}.${EXT}
312                         COMMAND ln -sf ${SRC}.${EXT} ${DST}.${EXT})
313                 list(APPEND ${NAME}_LINK_FILES ${DST}.${EXT})
314         endforeach()
315         add_custom_target(${NAME} DEPENDS ${${NAME}_LINK_FILES})
316 endmacro()
317
318 add_custom_target(man_copy DEPENDS ${COPY_FILES})
319 add_custom_target(man_lint DEPENDS ${LINT_FILES})
320 add_custom_target(man_html DEPENDS ${HTML_FILES})
321 add_custom_target(man_html_partial DEPENDS ${HTML_PARTIAL_FILES})
322 add_custom_target(man_gzip DEPENDS ${GZ_FILES})
323
324 define_symlink_target(man_symlink 3)
325 define_symlink_target(man_symlink_html html)
326 define_symlink_target(man_symlink_html_partial partial)
327 define_symlink_target(man_symlink_gzip 3.gz)
328
329 add_dependencies(man_symlink man_copy)
330 add_dependencies(man_lint man_symlink)
331 add_dependencies(man_html man_lint)
332 add_dependencies(man_symlink_html man_html)
333 add_dependencies(man_html_partial man_lint)
334 add_dependencies(man_symlink_html_partial man_html_partial)
335 add_custom_target(man ALL)
336
337 if(MANDOC_PATH)
338         add_dependencies(man man_symlink_html)
339         add_dependencies(man_gzip man_lint)
340         install(FILES ${CMAKE_SOURCE_DIR}/man/style.css
341                 DESTINATION "${CMAKE_INSTALL_DOCDIR}/html")
342         foreach(f ${MAN_SOURCES})
343                 string(REGEX REPLACE ".[13]" "" f ${f})
344                 install(FILES ${CMAKE_BINARY_DIR}/man/${f}.html
345                         DESTINATION "${CMAKE_INSTALL_DOCDIR}/html")
346         endforeach()
347         foreach(i RANGE 0 ${MAN_ALIAS_MAX} 2)
348                 math(EXPR j "${i} + 1")
349                 list(GET MAN_ALIAS ${j} DST)
350                 install(FILES ${CMAKE_BINARY_DIR}/man/${DST}.html
351                         DESTINATION "${CMAKE_INSTALL_DOCDIR}/html")
352         endforeach()
353 endif()
354
355 if(GZIP_PATH)
356         add_dependencies(man_gzip man_copy)
357         add_dependencies(man_symlink_gzip man_gzip)
358         add_dependencies(man man_symlink_gzip)
359         foreach(f ${MAN_SOURCES})
360                 if (${f} MATCHES ".1$")
361                         install(FILES ${CMAKE_BINARY_DIR}/man/${f}.gz
362                                 DESTINATION "${CMAKE_INSTALL_MANDIR}/man1")
363                 elseif(${f} MATCHES ".3$")
364                         install(FILES ${CMAKE_BINARY_DIR}/man/${f}.gz
365                                 DESTINATION "${CMAKE_INSTALL_MANDIR}/man3")
366                 endif()
367         endforeach()
368         foreach(i RANGE 0 ${MAN_ALIAS_MAX} 2)
369                 math(EXPR j "${i} + 1")
370                 list(GET MAN_ALIAS ${j} DST)
371                 install(FILES ${CMAKE_BINARY_DIR}/man/${DST}.3.gz
372                         DESTINATION "${CMAKE_INSTALL_MANDIR}/man3")
373         endforeach()
374 elseif(NOT MSVC)
375         add_dependencies(man man_symlink)
376         foreach(f ${MAN_SOURCES})
377                 if (${f} MATCHES ".1$")
378                         install(FILES ${CMAKE_BINARY_DIR}/man/${f}
379                                 DESTINATION "${CMAKE_INSTALL_MANDIR}/man1")
380                 elseif(${f} MATCHES ".3$")
381                         install(FILES ${CMAKE_BINARY_DIR}/man/${f}
382                                 DESTINATION "${CMAKE_INSTALL_MANDIR}/man3")
383                 endif()
384         endforeach()
385         foreach(i RANGE 0 ${MAN_ALIAS_MAX} 2)
386                 math(EXPR j "${i} + 1")
387                 list(GET MAN_ALIAS ${j} DST)
388                 install(FILES ${CMAKE_BINARY_DIR}/man/${DST}.3
389                         DESTINATION "${CMAKE_INSTALL_MANDIR}/man3")
390         endforeach()
391 endif()