Sorry, didn't quite communicate what I was doing:

If you remember from a previous post I have the following:

option(MXA_BUILD_API_DOCS "Use Doxygen to create the HTML based API documentation" OFF)
if(MXA_BUILD_API_DOCS)
  FIND_PACKAGE(Doxygen)
  if (NOT DOXYGEN_FOUND)
message(FATAL_ERROR "Doxygen is needed to build the documentation. Please install it correctly")
  endif()
  configure_file(${MXA_RESOURCES_DIR}/MXADataModel.doxyfile.in
${MXADataModel_BINARY_DIR}/MXADataModel.doxyfile @ONLY IMMEDIATE)
  add_custom_command(TARGET ${MXADATAMODEL_LIB_NAME}
POST_BUILD COMMAND ${DOXYGEN_EXECUTABLE} $ {MXADataModel_BINARY_DIR}/MXADataModel.doxyfile)

endif(MXA_BUILD_API_DOCS)

I already have the file "MXADataModel.doxyfile.in" residing in my project. If you look through that file you will see various elements in the form "@SOME_CMAKE_VALUE@". The MXADataModel.doxyfile.in file is fed into the "configure_file" command which substitutes the actual values for every CMake variable that is found in that file then writes out a _new_ file called MXADataModel.doxyfile. _That_ file is then fed to doxygen as a argument in the add_custom_command cmake command. So in my case I don't need to pick up or set any environment variables as everything is set through cmake although I _could_ pick up environment variables during CMake and then set CMake variables that would then get filtered into the configure_file command and eventually wind up in the new MXADataModel.doxyfile file. Make sense?


---
Mike Jackson                 www.bluequartz.net



On Mar 26, 2009, at 3:39 PM, Robert Dailey wrote:

I'm not at all familiar with this feature of Doxygen. Could you provide an example of a doxygen command-line evocation that utilizes this feature? For example, if I wanted to set the project name programmatically (i.e. via command line), how would I do this through your method?

On Thu, Mar 26, 2009 at 2:31 PM, Michael Jackson <mike.jack...@bluequartz.net > wrote: What I ended up doing was creating a "template" .dox file that I then use CMake to "Configure" with configure_file which then fills in the appropriate values for the project (like the project name, where to build the docs.. ). Seems to work for me and my projects.

Here is a link to my template file:

<http://www.bluequartz.net/cgi-bin/gitweb/gitweb.cgi?p=MXADataModel.git;a=blob_plain;f=Resources/MXADataModel.doxyfile.in;hb=HEAD >

That is how I did it..

---
Mike Jackson                 www.bluequartz.net




On Mar 26, 2009, at 2:38 PM, Robert Dailey wrote:

I like the idea of making it a post build event, however I'm doing certain things that you are not that will be more difficult to support outside of CMake.

For example, I set certain environment variables that are accessed by the Doxyfile (This is legal in Doxygen). I'm currently doing this above my call to execute_process():

   set( ENV{project_name} ${project_name} )
   set( ENV{include_dir} ${include_path} )
   set( ENV{source_dir} ${source_path} )
   set( ENV{dot_path} "${CMAKE_SOURCE_DIR}/tools/dot" )
   set( ENV{UNCOMMON_STRIP_PATH} ${CMAKE_SOURCE_DIR} )

How am I supposed to do this? Would I have one add_custom_command() for each, and invoke ${CMAKE_COMMAND} with "-E environment"? What would you recommend? Note that these environment variables aren't permanent. They only last the lifetime of the executing process and are available to any child processes (i.e. available to the doxygen child process. Visual Studio would be the parent process).


On Thu, Mar 26, 2009 at 11:31 AM, Michael Jackson <mike.jack...@bluequartz.net > wrote: option(MXA_BUILD_API_DOCS "Use Doxygen to create the HTML based API documentation" OFF)
if(MXA_BUILD_API_DOCS)
 FIND_PACKAGE(Doxygen)
 if (NOT DOXYGEN_FOUND)
  message(FATAL_ERROR "Doxygen is needed to build the documentation.")
 endif()
 configure_file(${MXA_RESOURCES_DIR}/MXADataModel.doxyfile.in
${MXADataModel_BINARY_DIR}/MXADataModel.doxyfile @ONLY IMMEDIATE)
 add_custom_command(TARGET ${MXADATAMODEL_LIB_NAME}
                   POST_BUILD
COMMAND ${DOXYGEN_EXECUTABLE} $ {MXADataModel_BINARY_DIR}/MXADataModel.doxyfile)

endif(MXA_BUILD_API_DOCS)


The above is how I invoke doxygen.
_________________________________________________________
Mike Jackson                  mike.jack...@bluequartz.net
BlueQuartz Software                    www.bluequartz.net
Principal Software Engineer                  Dayton, Ohio




On Mar 26, 2009, at 12:23 PM, Robert Dailey wrote:

Hi,

I've currently been running doxygen through execute_process() in CMAKE. I've set it up like this:


      find_package( Doxygen REQUIRED )

      execute_process(
COMMAND "${DOXYGEN_EXECUTABLE}" "${cmake_includes}/ project.dox"
          WORKING_DIRECTORY "${documentation_dir}"
          OUTPUT_FILE "${documentation_dir}/doxygen_log.txt"
          ERROR_FILE "${documentation_dir}/doxygen_log.txt"
      )

However, this does not work. Doxygen is never run and the doxygen_log.txt file has no contents. When I make OUTPUT_FILE and ERROR_FILE reference 2 different file names, it works fine. However, I want stderr and stdout to both output to the same file in the proper order. It is important that I see what "output" occurred before a specific "error", and I cannot do this if they are in 2 different files.

How can I make this work?
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake



_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to