Ah, I understand what you're saying now. It all makes sense now! Wow, what a cool feature! I love CMake :) Thanks for your help Michael.
On Thu, Mar 26, 2009 at 2:45 PM, Michael Jackson < [email protected]> wrote: > 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 < >> [email protected]> 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 < >> [email protected]> 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 [email protected] >> 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 >
_______________________________________________ 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
