Warning, /sdk/pology/cmake/EpydocTools.cmake is written in an unsupported language. File is not indexed.
0001 # TODO: Add doc comments for all this stuff. 0002 0003 if(NOT EPYDOC_EXECUTABLE) 0004 find_package(Epydoc 3.0) 0005 endif() 0006 0007 if(NOT epyt_target_count) 0008 set(epyt_target_count 1) 0009 endif() 0010 0011 0012 function(GET_ABSOLUTE_PATHS abspathsvar absroot) 0013 set(paths ${ARGN}) 0014 0015 set(abspaths) 0016 foreach(path ${paths}) 0017 if(NOT IS_ABSOLUTE ${path}) 0018 set(path ${absroot}/${path}) 0019 endif() 0020 set(abspaths ${abspaths} ${path}) 0021 endforeach() 0022 0023 set(${abspathsvar} ${abspaths} PARENT_SCOPE) 0024 0025 endfunction() 0026 0027 0028 macro(EPYDOC_TO_HTML) 0029 0030 set(optargs) 0031 set(svalargs PYPKGDIR OUTDIR DESTINATION TARGET) 0032 set(mvalargs EPYOPTS) 0033 cmake_parse_arguments(EPYT_H 0034 "${optargs}" "${svalargs}" "${mvalargs}" ${ARGN}) 0035 if(EPYT_H_UNPARSED_ARGUMENTS) 0036 string(REPLACE ";" " " badargs "${EPYT_H_UNPARSED_ARGUMENTS}") 0037 message(FATAL_ERROR "Unknown arguments: ${badargs}") 0038 endif() 0039 if(NOT EPYT_H_OUTDIR) 0040 message(FATAL_ERROR "Output directory for HTML pages not set (OUTDIR).") 0041 endif() 0042 if(NOT EPYT_H_DESTINATION) 0043 message(FATAL_ERROR "Install directory not set (DESTINATION).") 0044 endif() 0045 0046 get_absolute_paths(pypkgdir ${CMAKE_CURRENT_SOURCE_DIR} ${EPYT_H_PYPKGDIR}) 0047 get_absolute_paths(outdir ${CMAKE_CURRENT_BINARY_DIR} ${EPYT_H_OUTDIR}) 0048 0049 if(NOT EPYT_H_TARGET) 0050 string(REPLACE ${CMAKE_SOURCE_DIR}/ "" srcsubdir 0051 ${CMAKE_CURRENT_SOURCE_DIR}) 0052 string(REPLACE "/" "-" targbase ${srcsubdir}) 0053 set(target "${targbase}-epyt${epyt_target_count}-epydoc-to-html") 0054 math(EXPR epyt_target_count "${epyt_target_count} + 1") 0055 else() 0056 set(target ${EPYT_H_TARGET}) 0057 endif() 0058 0059 file(GLOB_RECURSE pyfiles "${pypkgdir}/*.py") # evil 0060 set(targfilebase ${target}-buildstamp) 0061 set(targfile ${outdir}/${targfilebase}) 0062 add_custom_command( 0063 OUTPUT ${targfile} 0064 COMMAND find ${pypkgdir} -iname *.pyc -print0 | xargs -0r rm -rf 0065 COMMAND rm -rf ${outdir} && mkdir -p ${outdir} 0066 COMMAND PYTHONDONTWRITEBYTECODE=1 # do not pollute srcdir with *.pyc files 0067 ${EPYDOC_EXECUTABLE} ${pypkgdir}/ -o ${outdir} 0068 ${EPYT_H_EPYOPTS} 0069 COMMAND touch ${targfile} 0070 DEPENDS ${pyfiles} 0071 ) 0072 add_custom_target(${target} ALL DEPENDS ${targfile}) 0073 install(DIRECTORY ${outdir} DESTINATION ${EPYT_H_DESTINATION} 0074 PATTERN ${targfilebase} EXCLUDE) 0075 0076 endmacro() 0077 0078