CMake 2.8.1-rc4

This commit cherry-picks and squashes the following commits:

  4685872 "FortranCInterface: Fix PathScale detection..." (2010-02-16)
  b39fe94 "Fix problem with ExternalProject test..." (2010-02-17)
  70290e1 "Add support for QtDeclartive module" (2010-02-17)
  282ba89 "Clarify CMAKE_MODULE_PATH documentation" (2010-02-18)
  4eba05d "Suppress GNU flag -fPIC on Windows" (2010-02-19)
  57efb4a "BUG: We shouldn't be setting the HideWindow..." (2010-02-19)
diff --git a/ChangeLog.manual b/ChangeLog.manual
index a4dc089..9145d21 100644
--- a/ChangeLog.manual
+++ b/ChangeLog.manual
@@ -1,3 +1,10 @@
+Changes in CMake 2.8.1 RC 4
+- CTest: Do not hide test GUI windows (fixes 2.8.0 regression)
+- Documentation: Clarify CMAKE_MODULE_PATH variable
+- FindQt4: Add support for QtDeclartive module
+- FortranCInterface: Fix PathScale detection
+- Suppress GNU flag -fPIC on Windows (fixes 2.8.1-rc1 regression)
+
 Changes in CMake 2.8.1 RC 3
 - Add CMAKE_XCODE_ATTRIBUTE_<attr> interface to set compiler (#9125)
 - Fix Eclipse files for targets in subdirectories (#9978)
diff --git a/Modules/FindQt4.cmake b/Modules/FindQt4.cmake
index 1d24009..76d7950 100644
--- a/Modules/FindQt4.cmake
+++ b/Modules/FindQt4.cmake
@@ -51,6 +51,7 @@
 #                    QT_USE_QTXMLPATTERNS
 #                    QT_USE_PHONON
 #                    QT_USE_QTSCRIPTTOOLS
+#                    QT_USE_QTDECLARATIVE
 #
 #  QT_USE_IMPORTED_TARGETS 
 #        If this variable is set to TRUE, FindQt4.cmake will create imported
@@ -186,6 +187,7 @@
 #  QT_QTXML_FOUND           True if QtXml was found.
 #  QT_QTXMLPATTERNS_FOUND   True if QtXmlPatterns was found.
 #  QT_PHONON_FOUND          True if phonon was found.
+#  QT_QTDECLARATIVE_FOUND   True if QtDeclarative was found.
 #
 #  QT_MAC_USE_COCOA    For Mac OS X, its whether Cocoa or Carbon is used.
 #                      In general, this should not be used, but its useful
@@ -234,7 +236,8 @@
 #  QT_QTXMLPATTERNS_INCLUDE_DIR  Path to "include/QtXmlPatterns"
 #  QT_PHONON_INCLUDE_DIR       Path to "include/phonon"
 #  QT_QTSCRIPTTOOLS_INCLUDE_DIR       Path to "include/QtScriptTools"
-#                            
+#  QT_QTDECLARATIVE_INCLUDE_DIR       Path to "include/QtDeclarative"
+#
 #  QT_BINARY_DIR               Path to "bin" of Qt4
 #  QT_LIBRARY_DIR              Path to "lib" of Qt4
 #  QT_PLUGINS_DIR              Path to "plugins" for Qt4
@@ -276,6 +279,8 @@
 #  QT_PHONON_LIBRARY                The phonon library
 #  QT_QTSCRIPTTOOLS_LIBRARY         The QtScriptTools library
 #  
+# The QtDeclarative library:             QT_QTDECLARATIVE_LIBRARY
+#
 # also defined, but NOT for general use are
 #  QT_MOC_EXECUTABLE                   Where to find the moc tool.
 #  QT_UIC_EXECUTABLE                   Where to find the uic tool.
@@ -638,7 +643,8 @@
 
   SET(QT_MODULES QtCore QtGui Qt3Support QtSvg QtScript QtTest QtUiTools 
                  QtHelp QtWebKit QtXmlPatterns phonon QtNetwork QtMultimedia
-                 QtNsPlugin QtOpenGL QtSql QtXml QtDesigner QtDBus QtScriptTools)
+                 QtNsPlugin QtOpenGL QtSql QtXml QtDesigner QtDBus QtScriptTools
+                 QtDeclarative)
   
   IF(Q_WS_X11)
     SET(QT_MODULES ${QT_MODULES} QtMotif)
@@ -949,6 +955,7 @@
   _QT4_ADJUST_LIB_VARS(QtAssistantClient)
   _QT4_ADJUST_LIB_VARS(QtCLucene)
   _QT4_ADJUST_LIB_VARS(QtDBus)
+  _QT4_ADJUST_LIB_VARS(QtDeclarative)
   _QT4_ADJUST_LIB_VARS(QtDesigner)
   _QT4_ADJUST_LIB_VARS(QtDesignerComponents)
   _QT4_ADJUST_LIB_VARS(QtHelp)
diff --git a/Modules/FortranCInterface/my_module_.c b/Modules/FortranCInterface/my_module_.c
index 0d7091f..364b214 100644
--- a/Modules/FortranCInterface/my_module_.c
+++ b/Modules/FortranCInterface/my_module_.c
@@ -1,2 +1,8 @@
+#if defined(__PATHSCALE__)
+/* PathScale Fortran wants my_module_ when calling any my_module symbol,
+   but module symbols use '.in.' so we cannot provide them anyway.  */
+void pathscale_my_module_(void) {}
+#else
 /* PGI Fortran wants my_module_ when calling any my_module symbol.  */
 void my_module_(void) {}
+#endif
diff --git a/Modules/Platform/Windows-GNU.cmake b/Modules/Platform/Windows-GNU.cmake
index e5f86d9..6d84940 100644
--- a/Modules/Platform/Windows-GNU.cmake
+++ b/Modules/Platform/Windows-GNU.cmake
@@ -67,6 +67,8 @@
     endforeach(type)
   endif()
 
+  set(CMAKE_SHARED_LIBRARY_${lang}_FLAGS "") # No -fPIC on Windows
+
   # Binary link rules.
   set(CMAKE_${lang}_CREATE_SHARED_MODULE
     "<CMAKE_${lang}_COMPILER> <CMAKE_SHARED_MODULE_${lang}_FLAGS> <LINK_FLAGS> <CMAKE_SHARED_MODULE_CREATE_${lang}_FLAGS> -o <TARGET> ${CMAKE_GNULD_IMAGE_VERSION} <OBJECTS> <LINK_LIBRARIES>")
diff --git a/Modules/UseQt4.cmake b/Modules/UseQt4.cmake
index a18beaf..b7b6d59 100644
--- a/Modules/UseQt4.cmake
+++ b/Modules/UseQt4.cmake
@@ -63,10 +63,12 @@
 SET(QT_QAXCONTAINER_MODULE_DEPENDS QTGUI QTCORE)
 SET(QT_QAXSERVER_MODULE_DEPENDS QTGUI QTCORE)
 SET(QT_QTSCRIPTTOOLS_MODULE_DEPENDS QTGUI QTCORE)
+SET(QT_QTWEBKIT_MODULE_DEPENDS QTXMLPATTERNS QTGUI QTCORE)
+SET(QT_QTDECLARATIVE_MODULE_DEPENDS QTWEBKIT QTSCRIPT QTSVG QTSQL QTXMLPATTERNS QTXML QTOPENGL QTGUI QTNETWORK QTCORE)
 
 # Qt modules  (in order of dependence)
 FOREACH(module QT3SUPPORT QTOPENGL QTASSISTANT QTDESIGNER QTMOTIF QTNSPLUGIN
-               QAXSERVER QAXCONTAINER QTSCRIPT QTSVG QTUITOOLS QTHELP 
+               QAXSERVER QAXCONTAINER QTDECLARATIVE QTSCRIPT QTSVG QTUITOOLS QTHELP
                QTWEBKIT PHONON QTSCRIPTTOOLS QTGUI QTTEST QTDBUS QTXML QTSQL 
                QTXMLPATTERNS QTNETWORK QTCORE)
 
diff --git a/Source/CTest/cmProcess.cxx b/Source/CTest/cmProcess.cxx
index b028cc0..9aa40d6 100644
--- a/Source/CTest/cmProcess.cxx
+++ b/Source/CTest/cmProcess.cxx
@@ -61,7 +61,6 @@
     cmsysProcess_SetWorkingDirectory(this->Process,
                                      this->WorkingDirectory.c_str());
     }
-  cmsysProcess_SetOption(this->Process, cmsysProcess_Option_HideWindow, 1);
   cmsysProcess_SetTimeout(this->Process, this->Timeout);
   cmsysProcess_Execute(this->Process);
   return (cmsysProcess_GetState(this->Process)
diff --git a/Source/cmDocumentVariables.cxx b/Source/cmDocumentVariables.cxx
index 091d688..c6f9ba5 100644
--- a/Source/cmDocumentVariables.cxx
+++ b/Source/cmDocumentVariables.cxx
@@ -515,10 +515,10 @@
 
   cm->DefineProperty
     ("CMAKE_MODULE_PATH", cmProperty::VARIABLE,
-     "Path to look for cmake modules to load.",
-     "Specifies a path to override the default search path for "
-     "CMake modules. For example include commands will look "
-     "in this path first for modules to include.",
+     "List of directories to search for CMake modules.",
+     "Commands like include() and find_package() search for files in "
+     "directories listed by this variable before checking the default "
+     "modules that come with CMake.",
      false,
      "Variables That Change Behavior");
 
diff --git a/Tests/ExternalProject/CMakeLists.txt b/Tests/ExternalProject/CMakeLists.txt
index e0d8c2c..f02f2f7 100644
--- a/Tests/ExternalProject/CMakeLists.txt
+++ b/Tests/ExternalProject/CMakeLists.txt
@@ -24,6 +24,17 @@
       set(can_build_tutorial_step5 0)
     endif()
   endif()
+
+  # The ExternalProject builds of Tutorial Step5 cannot be built
+  # correctly 2nd and later times in an in-source build...
+  # (because the CMakeCache.txt from the real in-source build of
+  # the Tests/Tutorial/Step5 directory gets copied when we do
+  # the "source directory copy" step... but it still refers to
+  # its original path which yields a configure error.) So:
+  #
+  if("${CMAKE_SOURCE_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
+    set(can_build_tutorial_step5 0)
+  endif()
 endif()
 
 message(STATUS "can_build_tutorial_step5='${can_build_tutorial_step5}'")