diff options
Diffstat (limited to 'man/CMakeLists.txt')
-rw-r--r-- | man/CMakeLists.txt | 314 |
1 files changed, 314 insertions, 0 deletions
diff --git a/man/CMakeLists.txt b/man/CMakeLists.txt new file mode 100644 index 0000000..c903ab8 --- /dev/null +++ b/man/CMakeLists.txt | |||
@@ -0,0 +1,314 @@ | |||
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 | message(STATUS "MANDOC_PATH: ${MANDOC_PATH}") | ||
7 | |||
8 | if(CMAKE_SYSTEM_NAME STREQUAL "Linux") | ||
9 | find_program(GZIP_PATH gzip) | ||
10 | message(STATUS "GZIP_PATH: ${GZIP_PATH}") | ||
11 | endif() | ||
12 | |||
13 | list(APPEND MAN_SOURCES | ||
14 | eddsa_pk_new.3 | ||
15 | es256_pk_new.3 | ||
16 | fido2-assert.1 | ||
17 | fido2-cred.1 | ||
18 | fido2-token.1 | ||
19 | fido_init.3 | ||
20 | fido_assert_new.3 | ||
21 | fido_assert_allow_cred.3 | ||
22 | fido_assert_set_authdata.3 | ||
23 | fido_assert_verify.3 | ||
24 | fido_bio_dev_get_info.3 | ||
25 | fido_bio_enroll_new.3 | ||
26 | fido_bio_info_new.3 | ||
27 | fido_bio_template.3 | ||
28 | fido_cbor_info_new.3 | ||
29 | fido_cred_new.3 | ||
30 | fido_cred_exclude.3 | ||
31 | fido_credman_metadata_new.3 | ||
32 | fido_cred_set_authdata.3 | ||
33 | fido_cred_verify.3 | ||
34 | fido_dev_get_assert.3 | ||
35 | fido_dev_info_manifest.3 | ||
36 | fido_dev_make_cred.3 | ||
37 | fido_dev_open.3 | ||
38 | fido_dev_set_io_functions.3 | ||
39 | fido_dev_set_pin.3 | ||
40 | fido_strerr.3 | ||
41 | rs256_pk_new.3 | ||
42 | ) | ||
43 | |||
44 | list(APPEND MAN_ALIAS | ||
45 | eddsa_pk_new eddsa_pk_free | ||
46 | eddsa_pk_new eddsa_pk_from_ptr | ||
47 | eddsa_pk_new eddsa_pk_to_EVP_PKEY | ||
48 | es256_pk_new es256_pk_free | ||
49 | es256_pk_new es256_pk_from_EC_KEY | ||
50 | es256_pk_new es256_pk_from_ptr | ||
51 | es256_pk_new es256_pk_to_EVP_PKEY | ||
52 | fido_assert_new fido_assert_authdata_len | ||
53 | fido_assert_new fido_assert_authdata_ptr | ||
54 | fido_assert_new fido_assert_clientdata_hash_len | ||
55 | fido_assert_new fido_assert_clientdata_hash_ptr | ||
56 | fido_assert_new fido_assert_count | ||
57 | fido_assert_new fido_assert_free | ||
58 | fido_assert_new fido_assert_hmac_secret_len | ||
59 | fido_assert_new fido_assert_hmac_secret_ptr | ||
60 | fido_assert_new fido_assert_sigcount | ||
61 | fido_assert_new fido_assert_sig_len | ||
62 | fido_assert_new fido_assert_sig_ptr | ||
63 | fido_assert_new fido_assert_user_display_name | ||
64 | fido_assert_new fido_assert_user_icon | ||
65 | fido_assert_new fido_assert_user_id_len | ||
66 | fido_assert_new fido_assert_user_id_ptr | ||
67 | fido_assert_new fido_assert_user_name | ||
68 | fido_assert_set_authdata fido_assert_set_clientdata_hash | ||
69 | fido_assert_set_authdata fido_assert_set_count | ||
70 | fido_assert_set_authdata fido_assert_set_extensions | ||
71 | fido_assert_set_authdata fido_assert_set_hmac_salt | ||
72 | fido_assert_set_authdata fido_assert_set_rp | ||
73 | fido_assert_set_authdata fido_assert_set_sig | ||
74 | fido_assert_set_authdata fido_assert_set_up | ||
75 | fido_assert_set_authdata fido_assert_set_uv | ||
76 | fido_bio_dev_get_info fido_bio_dev_enroll_begin | ||
77 | fido_bio_dev_get_info fido_bio_dev_enroll_cancel | ||
78 | fido_bio_dev_get_info fido_bio_dev_enroll_continue | ||
79 | fido_bio_dev_get_info fido_bio_dev_enroll_remove | ||
80 | fido_bio_dev_get_info fido_bio_dev_get_template_array | ||
81 | fido_bio_dev_get_info fido_bio_dev_set_template_name | ||
82 | fido_bio_enroll_new fido_bio_enroll_free | ||
83 | fido_bio_enroll_new fido_bio_enroll_last_status | ||
84 | fido_bio_enroll_new fido_bio_enroll_remaining_samples | ||
85 | fido_bio_info_new fido_bio_info_free | ||
86 | fido_bio_info_new fido_bio_info_max_samples | ||
87 | fido_bio_info_new fido_bio_info_type | ||
88 | fido_bio_template fido_bio_template_array_count | ||
89 | fido_bio_template fido_bio_template_array_free | ||
90 | fido_bio_template fido_bio_template_array_new | ||
91 | fido_bio_template fido_bio_template_free | ||
92 | fido_bio_template fido_bio_template_id_len | ||
93 | fido_bio_template fido_bio_template_id_ptr | ||
94 | fido_bio_template fido_bio_template_name | ||
95 | fido_bio_template fido_bio_template_new | ||
96 | fido_bio_template fido_bio_template_set_id | ||
97 | fido_bio_template fido_bio_template_set_name | ||
98 | fido_cbor_info_new fido_cbor_info_aaguid_len | ||
99 | fido_cbor_info_new fido_cbor_info_aaguid_ptr | ||
100 | fido_cbor_info_new fido_cbor_info_extensions_len | ||
101 | fido_cbor_info_new fido_cbor_info_extensions_ptr | ||
102 | fido_cbor_info_new fido_cbor_info_free | ||
103 | fido_cbor_info_new fido_cbor_info_maxmsgsiz | ||
104 | fido_cbor_info_new fido_cbor_info_options_len | ||
105 | fido_cbor_info_new fido_cbor_info_options_name_ptr | ||
106 | fido_cbor_info_new fido_cbor_info_options_value_ptr | ||
107 | fido_cbor_info_new fido_cbor_info_protocols_len | ||
108 | fido_cbor_info_new fido_cbor_info_protocols_ptr | ||
109 | fido_cbor_info_new fido_cbor_info_versions_len | ||
110 | fido_cbor_info_new fido_cbor_info_versions_ptr | ||
111 | fido_cbor_info_new fido_dev_get_cbor_info | ||
112 | fido_cred_new fido_cred_authdata_len | ||
113 | fido_cred_new fido_cred_authdata_ptr | ||
114 | fido_cred_new fido_cred_clientdata_hash_len | ||
115 | fido_cred_new fido_cred_clientdata_hash_ptr | ||
116 | fido_cred_new fido_cred_fmt | ||
117 | fido_cred_new fido_cred_free | ||
118 | fido_cred_new fido_cred_id_len | ||
119 | fido_cred_new fido_cred_id_ptr | ||
120 | fido_cred_new fido_cred_pubkey_len | ||
121 | fido_cred_new fido_cred_pubkey_ptr | ||
122 | fido_cred_new fido_cred_sig_len | ||
123 | fido_cred_new fido_cred_sig_ptr | ||
124 | fido_cred_new fido_cred_x5c_len | ||
125 | fido_cred_new fido_cred_x5c_ptr | ||
126 | fido_credman_metadata_new fido_credman_del_dev_rk | ||
127 | fido_credman_metadata_new fido_credman_get_dev_metadata | ||
128 | fido_credman_metadata_new fido_credman_get_dev_rk | ||
129 | fido_credman_metadata_new fido_credman_get_dev_rp | ||
130 | fido_credman_metadata_new fido_credman_metadata_free | ||
131 | fido_credman_metadata_new fido_credman_rk | ||
132 | fido_credman_metadata_new fido_credman_rk_count | ||
133 | fido_credman_metadata_new fido_credman_rk_existing | ||
134 | fido_credman_metadata_new fido_credman_rk_free | ||
135 | fido_credman_metadata_new fido_credman_rk_new | ||
136 | fido_credman_metadata_new fido_credman_rk_remaining | ||
137 | fido_credman_metadata_new fido_credman_rp_count | ||
138 | fido_credman_metadata_new fido_credman_rp_free | ||
139 | fido_credman_metadata_new fido_credman_rp_id | ||
140 | fido_credman_metadata_new fido_credman_rp_id_hash_len | ||
141 | fido_credman_metadata_new fido_credman_rp_id_hash_ptr | ||
142 | fido_credman_metadata_new fido_credman_rp_name | ||
143 | fido_credman_metadata_new fido_credman_rp_new | ||
144 | fido_cred_set_authdata fido_cred_set_authdata_raw | ||
145 | fido_cred_set_authdata fido_cred_set_clientdata_hash | ||
146 | fido_cred_set_authdata fido_cred_set_extensions | ||
147 | fido_cred_set_authdata fido_cred_set_fmt | ||
148 | fido_cred_set_authdata fido_cred_set_rk | ||
149 | fido_cred_set_authdata fido_cred_set_rp | ||
150 | fido_cred_set_authdata fido_cred_set_sig | ||
151 | fido_cred_set_authdata fido_cred_set_type | ||
152 | fido_cred_set_authdata fido_cred_set_user | ||
153 | fido_cred_set_authdata fido_cred_set_uv | ||
154 | fido_cred_set_authdata fido_cred_set_x509 | ||
155 | fido_dev_info_manifest fido_dev_info_free | ||
156 | fido_dev_info_manifest fido_dev_info_manufacturer_string | ||
157 | fido_dev_info_manifest fido_dev_info_new | ||
158 | fido_dev_info_manifest fido_dev_info_path | ||
159 | fido_dev_info_manifest fido_dev_info_product | ||
160 | fido_dev_info_manifest fido_dev_info_product_string | ||
161 | fido_dev_info_manifest fido_dev_info_ptr | ||
162 | fido_dev_info_manifest fido_dev_info_vendor | ||
163 | fido_dev_open fido_dev_build | ||
164 | fido_dev_open fido_dev_cancel | ||
165 | fido_dev_open fido_dev_close | ||
166 | fido_dev_open fido_dev_flags | ||
167 | fido_dev_open fido_dev_force_fido2 | ||
168 | fido_dev_open fido_dev_force_u2f | ||
169 | fido_dev_open fido_dev_free | ||
170 | fido_dev_open fido_dev_is_fido2 | ||
171 | fido_dev_open fido_dev_major | ||
172 | fido_dev_open fido_dev_minor | ||
173 | fido_dev_open fido_dev_new | ||
174 | fido_dev_open fido_dev_protocol | ||
175 | fido_dev_set_pin fido_dev_get_retry_count | ||
176 | fido_dev_set_pin fido_dev_reset | ||
177 | rs256_pk_new rs256_pk_free | ||
178 | rs256_pk_new rs256_pk_from_ptr | ||
179 | rs256_pk_new rs256_pk_from_RSA | ||
180 | rs256_pk_new rs256_pk_to_EVP_PKEY | ||
181 | ) | ||
182 | |||
183 | list(LENGTH MAN_ALIAS MAN_ALIAS_LEN) | ||
184 | math(EXPR MAN_ALIAS_MAX "${MAN_ALIAS_LEN} - 2") | ||
185 | |||
186 | # man_copy | ||
187 | foreach(f ${MAN_SOURCES}) | ||
188 | add_custom_command(OUTPUT ${f} | ||
189 | COMMAND cp -f ${CMAKE_SOURCE_DIR}/man/${f} . | ||
190 | DEPENDS ${f}) | ||
191 | list(APPEND COPY_FILES ${f}) | ||
192 | endforeach() | ||
193 | |||
194 | # man_lint | ||
195 | foreach(f ${MAN_SOURCES}) | ||
196 | add_custom_command(OUTPUT ${f}.lint | ||
197 | COMMAND mandoc -T lint -W warning ${f} > ${f}.lint | ||
198 | DEPENDS ${f}) | ||
199 | list(APPEND LINT_FILES ${f}.lint) | ||
200 | endforeach() | ||
201 | |||
202 | # man_html | ||
203 | foreach(f ${MAN_SOURCES}) | ||
204 | string(REGEX REPLACE ".[13]" "" g ${f}) | ||
205 | add_custom_command(OUTPUT ${g}.html | ||
206 | COMMAND mandoc -T html -O man="%N.html",style=style.css -I os="Yubico AB" ${f} > ${g}.html | ||
207 | DEPENDS ${f}) | ||
208 | list(APPEND HTML_FILES ${g}.html) | ||
209 | endforeach() | ||
210 | |||
211 | # man_html_partial | ||
212 | foreach(f ${MAN_SOURCES}) | ||
213 | string(REGEX REPLACE ".[13]" "" g ${f}) | ||
214 | add_custom_command(OUTPUT ${g}.partial | ||
215 | COMMAND cat ${CMAKE_SOURCE_DIR}/man/dyc.css > ${g}.partial | ||
216 | COMMAND mandoc -T html -O man="%N.html",fragment ${f} >> ${g}.partial | ||
217 | DEPENDS ${f}) | ||
218 | list(APPEND HTML_PARTIAL_FILES ${g}.partial) | ||
219 | endforeach() | ||
220 | |||
221 | # man_gzip | ||
222 | foreach(f ${MAN_SOURCES}) | ||
223 | add_custom_command(OUTPUT ${f}.gz | ||
224 | COMMAND gzip -c ${f} > ${f}.gz | ||
225 | DEPENDS ${f}) | ||
226 | list(APPEND GZ_FILES ${f}.gz) | ||
227 | endforeach() | ||
228 | |||
229 | macro(define_symlink_target NAME EXT) | ||
230 | foreach(i RANGE 0 ${MAN_ALIAS_MAX} 2) | ||
231 | math(EXPR j "${i} + 1") | ||
232 | list(GET MAN_ALIAS ${i} SRC) | ||
233 | list(GET MAN_ALIAS ${j} DST) | ||
234 | add_custom_command(OUTPUT ${DST}.${EXT} | ||
235 | COMMAND ln -sf ${SRC}.${EXT} ${DST}.${EXT}) | ||
236 | list(APPEND ${NAME}_LINK_FILES ${DST}.${EXT}) | ||
237 | endforeach() | ||
238 | add_custom_target(${NAME} DEPENDS ${${NAME}_LINK_FILES}) | ||
239 | endmacro() | ||
240 | |||
241 | add_custom_target(man_copy DEPENDS ${COPY_FILES}) | ||
242 | add_custom_target(man_lint DEPENDS ${LINT_FILES}) | ||
243 | add_custom_target(man_html DEPENDS ${HTML_FILES}) | ||
244 | add_custom_target(man_html_partial DEPENDS ${HTML_PARTIAL_FILES}) | ||
245 | add_custom_target(man_gzip DEPENDS ${GZ_FILES}) | ||
246 | |||
247 | define_symlink_target(man_symlink 3) | ||
248 | define_symlink_target(man_symlink_html html) | ||
249 | define_symlink_target(man_symlink_html_partial partial) | ||
250 | define_symlink_target(man_symlink_gzip 3.gz) | ||
251 | |||
252 | add_dependencies(man_symlink man_copy) | ||
253 | add_dependencies(man_lint man_symlink) | ||
254 | add_dependencies(man_html man_lint) | ||
255 | add_dependencies(man_symlink_html man_html) | ||
256 | add_dependencies(man_html_partial man_lint) | ||
257 | add_dependencies(man_symlink_html_partial man_html_partial) | ||
258 | add_custom_target(man ALL) | ||
259 | |||
260 | if(MANDOC_PATH) | ||
261 | add_dependencies(man man_symlink_html) | ||
262 | add_dependencies(man_gzip man_lint) | ||
263 | install(FILES ${CMAKE_SOURCE_DIR}/man/style.css | ||
264 | DESTINATION ${CMAKE_INSTALL_PREFIX}/share/doc/libfido2) | ||
265 | foreach(f ${MAN_SOURCES}) | ||
266 | string(REGEX REPLACE ".[13]" "" f ${f}) | ||
267 | install(FILES ${CMAKE_BINARY_DIR}/man/${f}.html | ||
268 | DESTINATION ${CMAKE_INSTALL_PREFIX}/share/doc/libfido2) | ||
269 | endforeach() | ||
270 | foreach(i RANGE 0 ${MAN_ALIAS_MAX} 2) | ||
271 | math(EXPR j "${i} + 1") | ||
272 | list(GET MAN_ALIAS ${j} DST) | ||
273 | install(FILES ${CMAKE_BINARY_DIR}/man/${DST}.html | ||
274 | DESTINATION ${CMAKE_INSTALL_PREFIX}/share/doc/libfido2) | ||
275 | endforeach() | ||
276 | endif() | ||
277 | |||
278 | if(GZIP_PATH) | ||
279 | add_dependencies(man_gzip man_copy) | ||
280 | add_dependencies(man_symlink_gzip man_gzip) | ||
281 | add_dependencies(man man_symlink_gzip) | ||
282 | foreach(f ${MAN_SOURCES}) | ||
283 | if (${f} MATCHES ".1$") | ||
284 | install(FILES ${CMAKE_BINARY_DIR}/man/${f}.gz | ||
285 | DESTINATION "${CMAKE_INSTALL_PREFIX}/share/man/man1") | ||
286 | elseif(${f} MATCHES ".3$") | ||
287 | install(FILES ${CMAKE_BINARY_DIR}/man/${f}.gz | ||
288 | DESTINATION "${CMAKE_INSTALL_PREFIX}/share/man/man3") | ||
289 | endif() | ||
290 | endforeach() | ||
291 | foreach(i RANGE 0 ${MAN_ALIAS_MAX} 2) | ||
292 | math(EXPR j "${i} + 1") | ||
293 | list(GET MAN_ALIAS ${j} DST) | ||
294 | install(FILES ${CMAKE_BINARY_DIR}/man/${DST}.3.gz | ||
295 | DESTINATION ${CMAKE_INSTALL_PREFIX}/share/man/man3) | ||
296 | endforeach() | ||
297 | elseif(NOT MSVC) | ||
298 | add_dependencies(man man_symlink) | ||
299 | foreach(f ${MAN_SOURCES}) | ||
300 | if (${f} MATCHES ".1$") | ||
301 | install(FILES ${CMAKE_BINARY_DIR}/man/${f} | ||
302 | DESTINATION "${CMAKE_INSTALL_PREFIX}/man/man1") | ||
303 | elseif(${f} MATCHES ".3$") | ||
304 | install(FILES ${CMAKE_BINARY_DIR}/man/${f} | ||
305 | DESTINATION "${CMAKE_INSTALL_PREFIX}/man/man3") | ||
306 | endif() | ||
307 | endforeach() | ||
308 | foreach(i RANGE 0 ${MAN_ALIAS_MAX} 2) | ||
309 | math(EXPR j "${i} + 1") | ||
310 | list(GET MAN_ALIAS ${j} DST) | ||
311 | install(FILES ${CMAKE_BINARY_DIR}/man/${DST}.3 | ||
312 | DESTINATION ${CMAKE_INSTALL_PREFIX}/man/man3) | ||
313 | endforeach() | ||
314 | endif() | ||