Update tde_add_project_* macros:

+ Added macros in the tde_conditional_add_project_* variant.
+ Macros can now be used from the project's top directory.
+ Added default processing for simple HTML documentation.
+ Added default processiog for misc directory.

Signed-off-by: Ray-V <ray-v@inbox.lv>
Signed-off-by: Slávek Banko <slavek.banko@axis.cz>
Ray-V 3 years ago committed by Slávek Banko
parent 8f2906a763
commit 4910ccc71a
Signed by: SlavekB
GPG Key ID: 608F5293A04BE668

@ -1656,14 +1656,29 @@ endmacro( tde_add_tdeinit_executable )
#################################################
#####
##### tde_conditional_add_project_translations
##### tde_add_project_translations
#####
##### Macro for standard processing and installation of translations.
##### This is designed for ordinary modules - as an applications, not for core modules.
function( tde_conditional_add_project_translations _cond )
if( ${_cond} )
tde_add_project_translations()
endif()
endfunction()
function( tde_add_project_translations )
file( GLOB_RECURSE po_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.po )
if( ${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${PROJECT_SOURCE_DIR} )
set( TRANSLATIONS_SOURCE_DIR ${PROJECT_SOURCE_DIR}/translations/messages )
else()
set( TRANSLATIONS_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR} )
endif()
file( GLOB_RECURSE po_files RELATIVE ${TRANSLATIONS_SOURCE_DIR} ${TRANSLATIONS_SOURCE_DIR}/*.po )
string( REGEX REPLACE "[ \r\n\t]+" ";" _linguas "$ENV{LINGUAS}" )
foreach( _po ${po_files} )
@ -1674,7 +1689,7 @@ function( tde_add_project_translations )
else( )
set( _component "${PROJECT_NAME}" )
endif( )
tde_create_translation( FILES ${_po} LANG ${_lang} OUTPUT_NAME ${_component} )
tde_create_translation( FILES ${TRANSLATIONS_SOURCE_DIR}/${_po} LANG ${_lang} OUTPUT_NAME ${_component} )
endif( )
endforeach( )
@ -2101,14 +2116,29 @@ endmacro( )
#################################################
#####
##### tde_conditional_add_project_docs
##### tde_add_project_docs
#####
##### Macro for standard processing and installation of documentation and man pages.
##### This is designed for ordinary modules - as an applications, not for core modules.
function( tde_conditional_add_project_docs _cond )
if( ${_cond} )
tde_add_project_docs()
endif()
endfunction()
function( tde_add_project_docs )
file( GLOB_RECURSE _doc_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} * )
if( ${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${PROJECT_SOURCE_DIR} )
set( DOCS_SOURCE_DIR ${PROJECT_SOURCE_DIR}/doc )
else()
set( DOCS_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR} )
endif()
file( GLOB_RECURSE _doc_files RELATIVE ${DOCS_SOURCE_DIR} ${DOCS_SOURCE_DIR}/* )
foreach( _doc_file IN LISTS _doc_files )
get_filename_component( _dir ${_doc_file} PATH )
list( APPEND _dirs ${_dir} )
@ -2129,9 +2159,9 @@ function( tde_add_project_docs )
AND ( ${_lang} STREQUAL "en" OR
"${_linguas}" MATCHES "^;*$" OR
";${_linguas};" MATCHES ";${_lang};" ))
if( EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${_dir}/CMakeLists.txt )
if( EXISTS ${DOCS_SOURCE_DIR}/${_dir}/CMakeLists.txt )
set( _skip_subdir ${_dir} )
add_subdirectory( ${_dir} )
add_subdirectory( ${DOCS_SOURCE_DIR}/${_dir} )
else()
unset( _skip_subdir )
if( ${_dir} MATCHES "/[^/]*/" )
@ -2139,7 +2169,7 @@ function( tde_add_project_docs )
else()
string( REGEX REPLACE "^[^/]*/(.*)" "\\1" _doc_dest "${_dir}/${PROJECT_NAME}" )
endif()
file( GLOB _doc_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/${_dir} ${_dir}/*.docbook )
file( GLOB _doc_files RELATIVE ${DOCS_SOURCE_DIR}/${_dir} ${DOCS_SOURCE_DIR}/${_dir}/*.docbook )
if( _doc_files )
list( FIND _doc_files "index.docbook" _find_index )
if( -1 EQUAL _find_index )
@ -2148,19 +2178,32 @@ function( tde_add_project_docs )
unset( _noindex )
endif()
tde_create_handbook(
SOURCE_BASEDIR ${_dir}
SOURCE_BASEDIR ${DOCS_SOURCE_DIR}/${_dir}
${_noindex}
LANG ${_lang}
DESTINATION ${_doc_dest}
)
else()
file( GLOB _html_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${DOCS_SOURCE_DIR}/${_dir}/*.html )
if( _html_files )
file( GLOB _htmldoc_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
${DOCS_SOURCE_DIR}/${_dir}/*.html
${DOCS_SOURCE_DIR}/${_dir}/*.jpg
${DOCS_SOURCE_DIR}/${_dir}/*.png
)
install(
FILES ${_htmldoc_files}
DESTINATION ${HTML_INSTALL_DIR}/${_lang}/${_doc_dest}
)
endif()
endif()
endif()
endif()
endforeach()
if( EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/man AND
NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/man/CMakeLists.txt )
file( GLOB_RECURSE _man_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} man/* )
if( EXISTS ${DOCS_SOURCE_DIR}/man AND
NOT EXISTS ${DOCS_SOURCE_DIR}/man/CMakeLists.txt )
file( GLOB_RECURSE _man_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${DOCS_SOURCE_DIR}/man/* )
foreach( _man_file IN LISTS _man_files )
if( ${_man_file} MATCHES "\\.[0-9]$" )
string( REGEX REPLACE ".*\\.([0-9])$" "\\1" _man_section "${_man_file}" )
@ -2177,9 +2220,26 @@ function( tde_add_project_docs )
endforeach()
endif()
if( EXISTS ${DOCS_SOURCE_DIR}/misc AND
NOT EXISTS ${DOCS_SOURCE_DIR}/misc/CMakeLists.txt )
file( GLOB _misc_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} ${DOCS_SOURCE_DIR}/misc/* )
foreach( _misc_file IN LISTS _misc_files )
if( ${_misc_file} MATCHES "/Makefile.am" )
list( REMOVE_ITEM _misc_files ${_misc_file} )
endif()
endforeach()
if( _misc_files )
install(
FILES ${_misc_files}
DESTINATION ${SHARE_INSTALL_PREFIX}/doc/${PROJECT_NAME}
COMPONENT doc
)
endif()
endif()
foreach( _dir html man misc )
if( EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${_dir}/CMakeLists.txt )
add_subdirectory( ${_dir} )
if( EXISTS ${DOCS_SOURCE_DIR}/${_dir}/CMakeLists.txt )
add_subdirectory( ${DOCS_SOURCE_DIR}/${_dir} )
endif()
endforeach()

Loading…
Cancel
Save