docs: m2r BUGS.md issues.rst
[awesomized/libmemcached] / docs / source / CMakeLists.txt
1 find_program(M2R NAMES m2r m2r-3)
2
3 function(DefaultRstPath MDFILE RSTFILE_VAR)
4 string(REGEX REPLACE "\\.md$" ".rst" FILEPATH ${MDFILE})
5 get_filename_component(FILENAME ${FILEPATH} NAME)
6 set(${RSTFILE_VAR} "${CMAKE_CURRENT_SOURCE_DIR}/${FILENAME}" PARENT_SCOPE)
7 endfunction()
8
9 function(UpdateRstFromMd RSTFILE MDFILE)
10 if(${MDFILE} IS_NEWER_THAN ${RSTFILE})
11 message("-- Processing ${MDFILE} ...")
12 execute_process(
13 COMMAND ${M2R} --overwrite --parse-relative-links ${MDFILE}
14 RESULTS_VARIABLE M2R_STATUS
15 )
16 if(M2R_STATUS)
17 message(" Failed to update ${RSTFILE}: ${M2R_STATUS}")
18 else()
19 string(REGEX REPLACE "\\.md$" ".rst" FILEPATH ${MDFILE})
20 file(RENAME ${FILEPATH} ${RSTFILE} )
21 message(" Updated ${RSTFILE}: OK")
22 endif()
23 endif()
24 endfunction()
25
26 if(M2R)
27 message("-- Checking ChangeLogs, BUGS, etc...")
28 file(GLOB CHANGELOGS "${CMAKE_SOURCE_DIR}/ChangeLog-*.md")
29 foreach(CHANGELOG IN LISTS CHANGELOGS)
30 DefaultRstPath(${CHANGELOG} RESTFILE)
31 UpdateRstFromMd(${RESTFILE} ${CHANGELOG})
32 endforeach()
33 UpdateRstFromMd(issues.rst "${CMAKE_SOURCE_DIR}/BUGS.md")
34 endif()