[Cmake-commits] CMake branch, next, updated. v2.8.12.2-7337-ga3d4bcd

Brad King brad.king at kitware.com
Wed Jan 29 10:11:48 EST 2014


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  a3d4bcde637c5974d292e147edb279a45b4a78b7 (commit)
       via  ef7a1b41445f11bd05331a2a1d9d7fb44c1aa7d8 (commit)
       via  174314e08a73011fe0115dde9932bc8e2fd6ebc9 (commit)
       via  1df21617e47f47ed73cf48f038ea9ef098ff7d93 (commit)
       via  28abdc93c3b1aebfac0b834337f93d6e0042ce5a (commit)
      from  f52067c86e0d1df80248af0c0036d9e10229cdb4 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a3d4bcde637c5974d292e147edb279a45b4a78b7
commit a3d4bcde637c5974d292e147edb279a45b4a78b7
Merge: f52067c ef7a1b4
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Wed Jan 29 10:11:47 2014 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Wed Jan 29 10:11:47 2014 -0500

    Merge topic 'doc-release-tarball' into next
    
    ef7a1b41 Utilities/Release: Pass pre-built docs tarball
    174314e0 Utilities/Release: Fix for spaces in host path
    1df21617 Utilities/Release: Generate docs on dash2win64 cygwin
    28abdc93 Utilities/Release: Fix newlines on dash2win64 cygwin


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=ef7a1b41445f11bd05331a2a1d9d7fb44c1aa7d8
commit ef7a1b41445f11bd05331a2a1d9d7fb44c1aa7d8
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Jan 28 10:41:56 2014 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Jan 29 10:10:15 2014 -0500

    Utilities/Release: Pass pre-built docs tarball
    
    Avoid requiring all build machines for the upstream packaging process to
    have Python and Sphinx installed.  Instead create a way to build the
    documentation once on the host machine and copy it to each build machine
    as a tarball with content to include in the installation tree for
    packaging.

diff --git a/Utilities/CMakeLists.txt b/Utilities/CMakeLists.txt
index 410f37a..8b3e325 100644
--- a/Utilities/CMakeLists.txt
+++ b/Utilities/CMakeLists.txt
@@ -11,4 +11,25 @@
 #=============================================================================
 subdirs(Doxygen KWStyle)
 
-add_subdirectory(Sphinx)
+if(CMAKE_DOC_TARBALL)
+  # Undocumented option to extract and install pre-built documentation.
+  # This is intended for use during packaging of CMake itself.
+  if(CMAKE_DOC_TARBALL MATCHES "/([^/]+)\\.tar\\.gz$")
+    set(dir "${CMAKE_MATCH_1}")
+  else()
+    message(FATAL_ERROR "CMAKE_DOC_TARBALL must end in .tar.gz")
+  endif()
+  add_custom_command(
+    OUTPUT ${dir}.stamp
+    COMMAND cmake -E remove_directory ${dir}
+    COMMAND cmake -E tar xf ${CMAKE_DOC_TARBALL}
+    COMMAND cmake -E touch ${dir}.stamp
+    DEPENDS ${CMAKE_DOC_TARBALL}
+    )
+  add_custom_target(documentation ALL DEPENDS ${dir}.stamp)
+  install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${dir}/
+          DESTINATION . USE_SOURCE_PERMISSIONS)
+else()
+  # Normal documentation build.
+  add_subdirectory(Sphinx)
+endif()
diff --git a/Utilities/Release/create-cmake-release.cmake b/Utilities/Release/create-cmake-release.cmake
index f4789a7..95428b6 100644
--- a/Utilities/Release/create-cmake-release.cmake
+++ b/Utilities/Release/create-cmake-release.cmake
@@ -28,7 +28,7 @@ function(write_batch_shell_script filename)
     math(EXPR y "160*(${i}%4)")
     file(APPEND ${filename}
     "
-\"${CMAKE_COMMAND}\" -DCMAKE_CREATE_VERSION=${CMAKE_CREATE_VERSION} -P \"${CMAKE_ROOT}/Utilities/Release/${f}\" < /dev/null >& \"${CMAKE_CURRENT_SOURCE_DIR}/logs/${f}-${CMAKE_CREATE_VERSION}.log\" &
+\"${CMAKE_COMMAND}\" -DCMAKE_CREATE_VERSION=${CMAKE_CREATE_VERSION} -DCMAKE_DOC_TARBALL=\"${CMAKE_DOC_TARBALL}\" -P \"${CMAKE_ROOT}/Utilities/Release/${f}\" < /dev/null >& \"${CMAKE_CURRENT_SOURCE_DIR}/logs/${f}-${CMAKE_CREATE_VERSION}.log\" &
 xterm -geometry 64x6+${x}+${y} -sb -sl 2000 -T ${f}-${CMAKE_CREATE_VERSION}.log -e tail -f \"${CMAKE_CURRENT_SOURCE_DIR}/logs/${f}-${CMAKE_CREATE_VERSION}.log\" &
 ")
     math(EXPR i "${i}+1")
@@ -36,7 +36,45 @@ xterm -geometry 64x6+${x}+${y} -sb -sl 2000 -T ${f}-${CMAKE_CREATE_VERSION}.log
   execute_process(COMMAND chmod a+x ${filename})
 endfunction()
 
+function(write_docs_shell_script filename)
+  find_program(SPHINX_EXECUTABLE
+    NAMES sphinx-build sphinx-build.py
+    DOC "Sphinx Documentation Builder (sphinx-doc.org)"
+    )
+  if(NOT SPHINX_EXECUTABLE)
+    message(FATAL_ERROR "SPHINX_EXECUTABLE (sphinx-build) is not found!")
+  endif()
+
+  set(name cmake-${CMAKE_CREATE_VERSION}-docs)
+  file(WRITE "${filename}" "#!/usr/bin/env bash
+
+name=${name} &&
+inst=\"\$PWD/\$name\"
+(GIT_WORK_TREE=x git archive --prefix=\${name}-src/ ${CMAKE_CREATE_VERSION}) | tar x &&
+rm -rf \${name}-build &&
+mkdir \${name}-build &&
+cd \${name}-build &&
+\"${CMAKE_COMMAND}\" ../\${name}-src/Utilities/Sphinx \\
+  -DCMAKE_INSTALL_PREFIX=\"\$inst/\" \\
+  -DSPHINX_EXECUTABLE=\"${SPHINX_EXECUTABLE}\" \\
+  -DSPHINX_HTML=ON -DSPHINX_MAN=ON &&
+make install &&
+cd .. &&
+tar czf \${name}.tar.gz \${name} ||
+echo 'Failed to create \${name}.tar.gz'
+")
+  execute_process(COMMAND chmod a+x ${filename})
+  set(CMAKE_DOC_TARBALL "${name}.tar.gz" PARENT_SCOPE)
+endfunction()
+
+write_docs_shell_script("create-${CMAKE_CREATE_VERSION}-docs.sh")
 write_batch_shell_script("create-${CMAKE_CREATE_VERSION}-batch1.sh" ${RELEASE_SCRIPTS_BATCH_1})
+unset(CMAKE_DOC_TARBALL) # No pre-built docs in second batch.
 write_batch_shell_script("create-${CMAKE_CREATE_VERSION}-batch2.sh" ${RELEASE_SCRIPTS_BATCH_2})
 
-message("Run ./create-${CMAKE_CREATE_VERSION}-batch1.sh, then after all those builds complete, run ./create-${CMAKE_CREATE_VERSION}-batch2.sh")
+message("Run one at a time:
+ ./create-${CMAKE_CREATE_VERSION}-docs.sh   &&
+ ./create-${CMAKE_CREATE_VERSION}-batch1.sh &&
+ ./create-${CMAKE_CREATE_VERSION}-batch2.sh &&
+ echo done
+")
diff --git a/Utilities/Release/release_cmake.cmake b/Utilities/Release/release_cmake.cmake
index f351ac8..630f54f 100644
--- a/Utilities/Release/release_cmake.cmake
+++ b/Utilities/Release/release_cmake.cmake
@@ -66,6 +66,17 @@ macro(remote_command comment command)
   endif()
 endmacro()
 
+if(CMAKE_DOC_TARBALL)
+  message("scp '${CMAKE_DOC_TARBALL}' '${HOST}:'")
+  execute_process(COMMAND
+    scp ${CMAKE_DOC_TARBALL} ${HOST}:
+    RESULT_VARIABLE result)
+  if(${result} GREATER 0)
+    message("error sending doc tarball with scp '${CMAKE_DOC_TARBALL}' '${HOST}:'")
+  endif()
+  get_filename_component(CMAKE_DOC_TARBALL_NAME "${CMAKE_DOC_TARBALL}" NAME)
+endif()
+
 # set this so configure file will work from script mode
 # create the script specific for the given host
 set(SCRIPT_FILE release_cmake-${SCRIPT_NAME}.sh)
diff --git a/Utilities/Release/release_cmake.sh.in b/Utilities/Release/release_cmake.sh.in
index 82c039b..f41bda8 100755
--- a/Utilities/Release/release_cmake.sh.in
+++ b/Utilities/Release/release_cmake.sh.in
@@ -15,6 +15,13 @@ check_exit_value()
    fi
 }
 
+CMAKE_DOC_TARBALL=""
+if [ ! -z "@CMAKE_DOC_TARBALL_NAME@" ] ; then
+    CMAKE_DOC_TARBALL=@CMAKE_RELEASE_DIRECTORY@/@CMAKE_DOC_TARBALL_NAME@
+    mv "$HOME/@CMAKE_DOC_TARBALL_NAME@" "$CMAKE_DOC_TARBALL"
+    check_exit_value $? "mv doc tarball" || exit 1
+fi
+
 if [ ! -z "@CC@" ]; then
     export CC="@CC@"
     check_exit_value $? "set CC compiler env var" || exit 1
@@ -76,6 +83,11 @@ if [ ! -z "@USER_OVERRIDE@" ]; then
   echo "CMAKE_USER_MAKE_RULES_OVERRIDE:FILEPATH=@CMAKE_RELEASE_DIRECTORY@/@CMAKE_CREATE_VERSION at -build/user.txt" >> @CMAKE_RELEASE_DIRECTORY@/@CMAKE_CREATE_VERSION at -build/CMakeCache.txt
 fi
 
+# Point build at pre-built documentation tarball, if any.
+if [ ! -z "$CMAKE_DOC_TARBALL" ]; then
+  echo "CMAKE_DOC_TARBALL:FILEPATH=$CMAKE_DOC_TARBALL" >> @CMAKE_RELEASE_DIRECTORY@/@CMAKE_CREATE_VERSION at -build/CMakeCache.txt
+fi
+
 echo "Checkout the source for @CMAKE_CREATE_VERSION@"
 cd @CMAKE_RELEASE_DIRECTORY@
 if [ ! -z "@GIT_COMMAND@" ]; then

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=174314e08a73011fe0115dde9932bc8e2fd6ebc9
commit 174314e08a73011fe0115dde9932bc8e2fd6ebc9
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Jan 28 10:40:52 2014 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Jan 29 10:10:15 2014 -0500

    Utilities/Release: Fix for spaces in host path
    
    Quote paths in the generated shell scripts so they work with spaces.

diff --git a/Utilities/Release/create-cmake-release.cmake b/Utilities/Release/create-cmake-release.cmake
index 37e223d..f4789a7 100644
--- a/Utilities/Release/create-cmake-release.cmake
+++ b/Utilities/Release/create-cmake-release.cmake
@@ -28,8 +28,8 @@ function(write_batch_shell_script filename)
     math(EXPR y "160*(${i}%4)")
     file(APPEND ${filename}
     "
-${CMAKE_COMMAND} -DCMAKE_CREATE_VERSION=${CMAKE_CREATE_VERSION} -P ${CMAKE_ROOT}/Utilities/Release/${f} < /dev/null >& ${CMAKE_CURRENT_SOURCE_DIR}/logs/${f}-${CMAKE_CREATE_VERSION}.log &
-xterm -geometry 64x6+${x}+${y} -sb -sl 2000 -T ${f}-${CMAKE_CREATE_VERSION}.log -e tail -f  ${CMAKE_CURRENT_SOURCE_DIR}/logs/${f}-${CMAKE_CREATE_VERSION}.log&
+\"${CMAKE_COMMAND}\" -DCMAKE_CREATE_VERSION=${CMAKE_CREATE_VERSION} -P \"${CMAKE_ROOT}/Utilities/Release/${f}\" < /dev/null >& \"${CMAKE_CURRENT_SOURCE_DIR}/logs/${f}-${CMAKE_CREATE_VERSION}.log\" &
+xterm -geometry 64x6+${x}+${y} -sb -sl 2000 -T ${f}-${CMAKE_CREATE_VERSION}.log -e tail -f \"${CMAKE_CURRENT_SOURCE_DIR}/logs/${f}-${CMAKE_CREATE_VERSION}.log\" &
 ")
     math(EXPR i "${i}+1")
   endforeach()

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1df21617e47f47ed73cf48f038ea9ef098ff7d93
commit 1df21617e47f47ed73cf48f038ea9ef098ff7d93
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Jan 28 10:38:12 2014 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Jan 29 10:10:15 2014 -0500

    Utilities/Release: Generate docs on dash2win64 cygwin
    
    Configure the build on dash2win64 cygwin to run Sphinx and generate our
    documentation.

diff --git a/Utilities/Release/dash2win64_cygwin.cmake b/Utilities/Release/dash2win64_cygwin.cmake
index 2e57b78..ac3c527 100644
--- a/Utilities/Release/dash2win64_cygwin.cmake
+++ b/Utilities/Release/dash2win64_cygwin.cmake
@@ -10,6 +10,8 @@ set(INITIAL_CACHE "CMAKE_BUILD_TYPE:STRING=Release
 CMAKE_Fortran_COMPILER_FULLPATH:FILEPATH=FALSE
 CTEST_TEST_TIMEOUT:STRING=7200
 DART_TESTING_TIMEOUT:STRING=7200
+SPHINX_HTML:BOOL=ON
+SPHINX_MAN:BOOL=ON
 ")
 set(CXX g++)
 set(CC  gcc)

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=28abdc93c3b1aebfac0b834337f93d6e0042ce5a
commit 28abdc93c3b1aebfac0b834337f93d6e0042ce5a
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Jan 28 14:50:56 2014 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Wed Jan 29 10:10:14 2014 -0500

    Utilities/Release: Fix newlines on dash2win64 cygwin
    
    Tell Git not to perform newline conversion by configuring
    'core.autocrlf' to 'false'.  Cygwin wants newlines like UNIX.

diff --git a/Utilities/Release/dash2win64_cygwin.cmake b/Utilities/Release/dash2win64_cygwin.cmake
index 663c615..2e57b78 100644
--- a/Utilities/Release/dash2win64_cygwin.cmake
+++ b/Utilities/Release/dash2win64_cygwin.cmake
@@ -14,7 +14,7 @@ DART_TESTING_TIMEOUT:STRING=7200
 set(CXX g++)
 set(CC  gcc)
 set(SCRIPT_NAME dash2win64cygwin)
-set(GIT_EXTRA "git config core.autocrlf true")
+set(GIT_EXTRA "git config core.autocrlf false")
 get_filename_component(path "${CMAKE_CURRENT_LIST_FILE}" PATH)
 
 # WARNING: Temporary fix!! This exclusion of the ExternalProject test

-----------------------------------------------------------------------

Summary of changes:


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list