diff options
Diffstat (limited to 'doc/man/CMakeLists.txt')
-rw-r--r-- | doc/man/CMakeLists.txt | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/doc/man/CMakeLists.txt b/doc/man/CMakeLists.txt new file mode 100644 index 0000000..60c7e44 --- /dev/null +++ b/doc/man/CMakeLists.txt @@ -0,0 +1,42 @@ + +file( GLOB_RECURSE _man_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} * ) +unset( _dirs ) +foreach( _man_file IN LISTS _man_files ) + get_filename_component( _dir ${_man_file} PATH ) + list( APPEND _dirs ${_dir} ) +endforeach() +if( _dirs ) + list( SORT _dirs ) + list( REMOVE_DUPLICATES _dirs ) +endif() + +string( REGEX REPLACE "[ \r\n\t]+" ";" _linguas "$ENV{LINGUAS}" ) + +foreach( _dir IN LISTS _dirs ) + string( REGEX REPLACE "/.*" "" _lang ${_dir} ) + if( ${_lang} STREQUAL "en" OR + "${_linguas}" MATCHES "^;*$" OR + ";${_linguas};" MATCHES ";${_lang};" ) + + file( GLOB_RECURSE _man_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${_lang}/* ) + foreach( _man_file IN LISTS _man_files ) + if( ${_man_file} MATCHES "\\.[0-9]$" ) + string( REGEX REPLACE ".*\\.([0-9])$" "\\1" _man_section "${_man_file}" ) + list( APPEND _man_files_${_man_section} "${_man_file}" ) + list( APPEND _man_sections "${_man_section}" ) + endif() + endforeach() + if( ${_lang} STREQUAL "en" ) + set( _lang_dir "" ) + else() + set( _lang_dir "/${_lang}" ) + endif() + foreach( _man_section IN LISTS _man_sections ) + INSTALL( + FILES ${_man_files_${_man_section}} + DESTINATION ${MAN_INSTALL_DIR}${_lang_dir}/man${_man_section} + COMPONENT doc + ) + endforeach() + endif() +endforeach() |