Fixed "make docs" for out-of-tree builds. stable-2.0
authorRyan C. Gordon <icculus@icculus.org>
Mon, 21 Feb 2011 23:35:24 -0500
branchstable-2.0
changeset 1150 72778f1e98f0
parent 1149 92a35b860318
child 1156 2c824989ffcf
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.
CMakeLists.txt
Doxyfile
--- a/CMakeLists.txt	Fri Feb 18 16:17:31 2011 -0500
+++ b/CMakeLists.txt	Mon Feb 21 23:35:24 2011 -0500
@@ -342,7 +342,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/Doxyfile	Fri Feb 18 16:17:31 2011 -0500
+++ b/Doxyfile	Mon Feb 21 23:35:24 2011 -0500
@@ -22,8 +22,8 @@
 # The PROJECT_NUMBER tag can be used to enter a project or revision number. 
 # This could be handy for archiving the generated documentation or 
 # if some version control system is used.
-
-PROJECT_NUMBER         = 2.0.2
+# (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.