From a6517c9fa394ccf48206979f1e02608055de6a0c Mon Sep 17 00:00:00 2001 From: Tom Rondeau Date: Tue, 3 Jan 2012 14:32:05 -0500 Subject: build: maybe towards a better way of getting Doxygen docstrings to build with -jN. --- cmake/Modules/GrSwig.cmake | 30 ++++++++++++++++++++---------- 1 file changed, 20 insertions(+), 10 deletions(-) (limited to 'cmake/Modules/GrSwig.cmake') diff --git a/cmake/Modules/GrSwig.cmake b/cmake/Modules/GrSwig.cmake index ced8b16c8..512d8e631 100644 --- a/cmake/Modules/GrSwig.cmake +++ b/cmake/Modules/GrSwig.cmake @@ -66,24 +66,34 @@ function(GR_SWIG_MAKE_DOCS output_file) #call doxygen on the Doxyfile + input headers add_custom_command( - OUTPUT ${OUTPUT_DIRECTORY}/xml/index.xml + OUTPUT ${OUTPUT_DIRECTORY}/tmp/xml/index.xml + ${OUTPUT_DIRECTORY}/tmp/xml/combine.xslt DEPENDS ${input_files} ${GR_SWIG_DOCS_SOURCE_DEPS} ${tag_deps} COMMAND ${DOXYGEN_EXECUTABLE} ${OUTPUT_DIRECTORY}/Doxyfile COMMENT "Generating doxygen xml for ${name} docs" ) - #call sync if we can to flush the doxygen writes to file before python reads - find_program(SYNC_EXECUTABLE sync) - unset(sync_command) - if(SYNC_EXECUTABLE) - set(sync_command COMMAND ${SYNC_EXECUTABLE}) - endif() + # Steps to make sure the Doxygen run is finished before we allow the dependency to be met that + # reads the outputs of this stage. + set(stamp-file "${OUTPUT_DIRECTORY}/xml/${name}.stamp") + add_custom_command( + OUTPUT ${stamp-file} ${OUTPUT_DIRECTORY}/xml/index.xml + DEPENDS ${OUTPUT_DIRECTORY}/tmp/xml/index.xml ${OUTPUT_DIRECTORY}/tmp/xml/combine.xslt + COMMAND "${CMAKE_COMMAND}" -E make_directory "${OUTPUT_DIRECTORY}/xml" + COMMAND "${CMAKE_COMMAND}" -E copy "${OUTPUT_DIRECTORY}/tmp/xml/index.xml" "${OUTPUT_DIRECTORY}/" + COMMAND "${CMAKE_COMMAND}" -E copy_directory "${OUTPUT_DIRECTORY}/tmp/xml/" "${OUTPUT_DIRECTORY}/xml/" + COMMAND "${CMAKE_COMMAND}" -E copy "${OUTPUT_DIRECTORY}/index.xml" "${OUTPUT_DIRECTORY}/xml/" + COMMAND "${CMAKE_COMMAND}" -E touch "${stamp-file}" + COMMENT "Waiting for doxygen to finish" + ) + set_source_files_properties(${OUTPUT_DIRECTORY}/xml/index.xml PROPERTIES GENERATED TRUE) + set_source_files_properties(${OUTPUT_DIRECTORY}/xml/combine.xslt PROPERTIES GENERATED TRUE) + set_source_files_properties(${stamp-file} PROPERTIES GENERATED TRUE) #call the swig_doc script on the xml files add_custom_command( - OUTPUT ${output_file} - DEPENDS ${input_files} ${OUTPUT_DIRECTORY}/xml/index.xml - ${sync_command} + OUTPUT ${output_file} + DEPENDS ${input_files} ${stamp-file} ${OUTPUT_DIRECTORY}/xml/index.xml COMMAND ${PYTHON_EXECUTABLE} ${PYTHON_DASH_B} ${CMAKE_SOURCE_DIR}/docs/doxygen/swig_doc.py ${OUTPUT_DIRECTORY}/xml -- cgit From e3068517815363102043363556be654c5b47c5c9 Mon Sep 17 00:00:00 2001 From: Tom Rondeau Date: Tue, 3 Jan 2012 17:09:42 -0500 Subject: build: not going to work. Removing changes to cmake files and no sync call. --- cmake/Modules/GrSwig.cmake | 21 ++------------------- 1 file changed, 2 insertions(+), 19 deletions(-) (limited to 'cmake/Modules/GrSwig.cmake') diff --git a/cmake/Modules/GrSwig.cmake b/cmake/Modules/GrSwig.cmake index 512d8e631..4bcd67eb9 100644 --- a/cmake/Modules/GrSwig.cmake +++ b/cmake/Modules/GrSwig.cmake @@ -66,30 +66,13 @@ function(GR_SWIG_MAKE_DOCS output_file) #call doxygen on the Doxyfile + input headers add_custom_command( - OUTPUT ${OUTPUT_DIRECTORY}/tmp/xml/index.xml - ${OUTPUT_DIRECTORY}/tmp/xml/combine.xslt + OUTPUT ${OUTPUT_DIRECTORY}/xml/index.xml + ${OUTPUT_DIRECTORY}/xml/combine.xslt DEPENDS ${input_files} ${GR_SWIG_DOCS_SOURCE_DEPS} ${tag_deps} COMMAND ${DOXYGEN_EXECUTABLE} ${OUTPUT_DIRECTORY}/Doxyfile COMMENT "Generating doxygen xml for ${name} docs" ) - # Steps to make sure the Doxygen run is finished before we allow the dependency to be met that - # reads the outputs of this stage. - set(stamp-file "${OUTPUT_DIRECTORY}/xml/${name}.stamp") - add_custom_command( - OUTPUT ${stamp-file} ${OUTPUT_DIRECTORY}/xml/index.xml - DEPENDS ${OUTPUT_DIRECTORY}/tmp/xml/index.xml ${OUTPUT_DIRECTORY}/tmp/xml/combine.xslt - COMMAND "${CMAKE_COMMAND}" -E make_directory "${OUTPUT_DIRECTORY}/xml" - COMMAND "${CMAKE_COMMAND}" -E copy "${OUTPUT_DIRECTORY}/tmp/xml/index.xml" "${OUTPUT_DIRECTORY}/" - COMMAND "${CMAKE_COMMAND}" -E copy_directory "${OUTPUT_DIRECTORY}/tmp/xml/" "${OUTPUT_DIRECTORY}/xml/" - COMMAND "${CMAKE_COMMAND}" -E copy "${OUTPUT_DIRECTORY}/index.xml" "${OUTPUT_DIRECTORY}/xml/" - COMMAND "${CMAKE_COMMAND}" -E touch "${stamp-file}" - COMMENT "Waiting for doxygen to finish" - ) - set_source_files_properties(${OUTPUT_DIRECTORY}/xml/index.xml PROPERTIES GENERATED TRUE) - set_source_files_properties(${OUTPUT_DIRECTORY}/xml/combine.xslt PROPERTIES GENERATED TRUE) - set_source_files_properties(${stamp-file} PROPERTIES GENERATED TRUE) - #call the swig_doc script on the xml files add_custom_command( OUTPUT ${output_file} -- cgit