6b84c94e0446f43cb36a3f72afb0ec138dac033c
[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(NOT IS_ABSOLUTE ${MDFILE})
11 set(MDFILE ${CMAKE_CURRENT_SOURCE_DIR}/${MDFILE})
12 endif()
13 if (NOT IS_ABSOLUTE ${RSTFILE})
14 set(RSTFILE ${CMAKE_CURRENT_SOURCE_DIR}/${RSTFILE})
15 endif()
16 if(${MDFILE} IS_NEWER_THAN ${RSTFILE})
17 message("-- Processing ${MDFILE} ...")
18 execute_process(
19 COMMAND ${M2R} --overwrite --parse-relative-links ${MDFILE}
20 RESULTS_VARIABLE M2R_STATUS
21 )
22 if(M2R_STATUS)
23 message(" Failed to update ${RSTFILE}: ${M2R_STATUS}")
24 else()
25 string(REGEX REPLACE "\\.md$" ".rst" FILEPATH ${MDFILE})
26 file(RENAME ${FILEPATH} ${RSTFILE} )
27 message(" Updated ${RSTFILE}: OK")
28 endif()
29 endif()
30 endfunction()
31
32 if(M2R)
33 message("-- Checking ChangeLogs, BUGS, etc...")
34 file(GLOB CHANGELOGS "${CMAKE_SOURCE_DIR}/ChangeLog-*.md")
35 foreach(CHANGELOG IN LISTS CHANGELOGS)
36 DefaultRstPath(${CHANGELOG} RESTFILE)
37 UpdateRstFromMd(${RESTFILE} ${CHANGELOG})
38 endforeach()
39 UpdateRstFromMd(issues.rst "${CMAKE_SOURCE_DIR}/BUGS.md")
40 endif()