[mlpack-svn] r16099 - mlpack/trunk

fastlab-svn at coffeetalk-1.cc.gatech.edu fastlab-svn at coffeetalk-1.cc.gatech.edu
Fri Jan 3 12:59:49 EST 2014


Author: rcurtin
Date: Fri Jan  3 12:59:49 2014
New Revision: 16099

Log:
CMake scripts to find and update svnversion.hpp, if necessary.


Modified:
   mlpack/trunk/CMakeLists.txt

Modified: mlpack/trunk/CMakeLists.txt
==============================================================================
--- mlpack/trunk/CMakeLists.txt	(original)
+++ mlpack/trunk/CMakeLists.txt	Fri Jan  3 12:59:49 2014
@@ -229,9 +229,37 @@
   set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib/)
 endif (WIN32)
 
+# Determine whether or not this is a subversion repository, so that we can set
+# the trunk revision if necessary for --version (#309).
+find_package(Subversion)
+set (USING_SVNVERSION "NO")
+if (Subversion_FOUND)
+  Subversion_WC_INFO(${CMAKE_SOURCE_DIR} MLPACK_TEST)
+  if(MLPACK_TEST_WC_REVISION) # If this is not empty we are inside a repo.
+    # This is a subversion repository.  Now we have to create
+    # src/mlpack/core/util/svnversion.hpp and then update it when things are
+    # built.  During build-time, we must set __MLPACK_SUBVERSION.
+    set (USING_SVNVERSION "YES")
+    add_definitions(-D__MLPACK_SUBVERSION)
+    include(CMake/CreateSVNVersionHeader.cmake)
+
+    add_custom_target(mlpack_svnversion ALL
+        COMMAND ${CMAKE_COMMAND} -P CMake/CreateSVNVersionHeader.cmake
+        WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+        COMMENT "Updating svnversion.hpp (if necessary)")
+  endif(MLPACK_TEST_WC_REVISION)
+endif (Subversion_FOUND)
+
 # Recurse into the rest of the project.
 add_subdirectory(src/mlpack)
 
+if (USING_SVNVERSION STREQUAL "YES")
+  add_dependencies(mlpack mlpack_svnversion)
+endif (USING_SVNVERSION STREQUAL "YES")
+
+# If we need to keep svnversion.hpp up to date, then make sure the mlpack target
+# depends on it.
+
 # Make a target to generate the documentation.  If Doxygen isn't installed, then
 # I guess this option will just be unavailable.
 find_package(Doxygen)
@@ -239,17 +267,17 @@
   # Preprocess the Doxyfile.  This is done before 'make doc'.
   add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/Doxyfile
       PRE_BUILD
-      COMMAND ${CMAKE_COMMAND} -D DESTDIR=${CMAKE_BINARY_DIR} -P
-          ${CMAKE_CURRENT_SOURCE_DIR}/CMake/GenerateDoxyfile.cmake
-      WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
+      COMMAND ${CMAKE_COMMAND} -D DESTDIR="${CMAKE_BINARY_DIR}" -P
+          "${CMAKE_CURRENT_SOURCE_DIR}/CMake/GenerateDoxyfile.cmake"
+      WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
       COMMENT "Creating Doxyfile to generate Doxygen documentation"
   )
 
   # Generate documentation.
   add_custom_target(doc
-      COMMAND ${DOXYGEN_EXECUTABLE} ${CMAKE_BINARY_DIR}/Doxyfile
-      DEPENDS ${CMAKE_BINARY_DIR}/Doxyfile
-      WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
+      COMMAND "${DOXYGEN_EXECUTABLE}" "${CMAKE_BINARY_DIR}/Doxyfile"
+      DEPENDS "${CMAKE_BINARY_DIR}/Doxyfile"
+      WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
       COMMENT "Generating API documentation with Doxygen"
   )
 



More information about the mlpack-svn mailing list