Fixed "make docs" for out-of-tree builds.
authorRyan C. Gordon <icculus@icculus.org>
Mon, 21 Feb 2011 23:35:24 -0500
changeset 1151 a9e1bbe6e8d6
parent 1145 28f8e425ad8c
child 1152 702229ccdbb1
Fixed "make docs" for out-of-tree builds. Also: this automatically updates the version number in the docs, so I don't have to with each release. (transplanted from 72778f1e98f06c1e02f88dc8d263027d61469766)
CMakeLists.txt
docs/Doxyfile
--- a/CMakeLists.txt	Fri Feb 18 16:14:59 2011 -0500
+++ b/CMakeLists.txt	Mon Feb 21 23:35:24 2011 -0500
@@ -560,7 +560,23 @@
 
 FIND_PACKAGE(Doxygen)
 IF(DOXYGEN_FOUND)
-    ADD_CUSTOM_TARGET(docs ${DOXYGEN_EXECUTABLE} COMMENT "Building documentation")
+    SET(PHYSFS_OUTPUT_DOXYFILE "${CMAKE_CURRENT_BINARY_DIR}/Doxyfile")
+    CONFIGURE_FILE(
+        "${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile"
+        "${PHYSFS_OUTPUT_DOXYFILE}"
+        COPYONLY
+    )
+    FILE(APPEND "${PHYSFS_OUTPUT_DOXYFILE}" "\n\n# Below auto-generated by cmake...\n\n")
+    FILE(APPEND "${PHYSFS_OUTPUT_DOXYFILE}" "PROJECT_NUMBER = ${PHYSFS_VERSION}\n")
+    FILE(APPEND "${PHYSFS_OUTPUT_DOXYFILE}" "OUTPUT_DIRECTORY = ${CMAKE_CURRENT_BINARY_DIR}/docs\n")
+    FILE(APPEND "${PHYSFS_OUTPUT_DOXYFILE}" "\n# End auto-generated section.\n\n")
+
+    ADD_CUSTOM_TARGET(
+        docs
+        ${DOXYGEN_EXECUTABLE} "${PHYSFS_OUTPUT_DOXYFILE}"
+        WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
+        COMMENT "Building documentation in 'docs' directory..."
+    )
 ELSE(DOXYGEN_FOUND)
     MESSAGE(STATUS "Doxygen not found. You won't be able to build documentation.")
 ENDIF(DOXYGEN_FOUND)
--- a/docs/Doxyfile	Fri Feb 18 16:14:59 2011 -0500
+++ b/docs/Doxyfile	Mon Feb 21 23:35:24 2011 -0500
@@ -23,7 +23,8 @@
 # This could be handy for archiving the generated documentation or 
 # if some version control system is used.
 
-PROJECT_NUMBER         = 2.0.0
+# (CMake will set this properly at build time. --ryan.)
+PROJECT_NUMBER         = unknown_version
 
 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
 # base path where the generated documentation will be put.