[Cmake-commits] CMake branch, next, updated. v2.8.7-3201-g4f0ba8e

Eric Noulard eric.noulard at gmail.com
Sun Mar 18 16:16:05 EDT 2012


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  4f0ba8e30a59d1e1bb2ca463e46a59e77aa202a3 (commit)
       via  805c1b21d63ccc6b02b1a43f438a3b409dd12056 (commit)
      from  a36e092d605afc283eb12a22abb7605577540b6e (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=4f0ba8e30a59d1e1bb2ca463e46a59e77aa202a3
commit 4f0ba8e30a59d1e1bb2ca463e46a59e77aa202a3
Merge: a36e092 805c1b2
Author:     Eric Noulard <eric.noulard at gmail.com>
AuthorDate: Sun Mar 18 16:15:50 2012 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Sun Mar 18 16:15:50 2012 -0400

    Merge topic 'CPack-fixCPACK_MONOLITHIC_INSTALL-handling' into next
    
    805c1b2 Handle CPACK_MONOLITHIC_INSTALL in some rare use cases.


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=805c1b21d63ccc6b02b1a43f438a3b409dd12056
commit 805c1b21d63ccc6b02b1a43f438a3b409dd12056
Author:     Eric NOULARD <eric.noulard at gmail.com>
AuthorDate: Sun Mar 18 20:21:35 2012 +0100
Commit:     Eric NOULARD <eric.noulard at gmail.com>
CommitDate: Sun Mar 18 20:21:35 2012 +0100

    Handle CPACK_MONOLITHIC_INSTALL in some rare use cases.
    
    For example, when CPACK_<GEN>_COMPONENT_INSTALL and
    CPACK_MONOLITHIC_INSTALL are both set. Previously, this
    combination of variable settings produced an error without
    any explanation. Now, in this case CPACK_MONOLITHIC_INSTALL wins
    without trouble.
    This is useful for when e.g. CPACK_ARCHIVE_COMPONENT_INSTALL is
    globally on and one wants MONOLITHIC install for STGZ (but not
    other generators). The same behavior may be obtained by re-setting
    CPACK_ARCHIVE_COMPONENT_INSTALL to 0 but in any case the
    'both set' case should have been handled without error.

diff --git a/Source/CPack/cmCPackArchiveGenerator.cxx b/Source/CPack/cmCPackArchiveGenerator.cxx
index 0ff9050..6e7b8d7 100644
--- a/Source/CPack/cmCPackArchiveGenerator.cxx
+++ b/Source/CPack/cmCPackArchiveGenerator.cxx
@@ -247,7 +247,7 @@ int cmCPackArchiveGenerator::PackageFiles()
   cmCPackLogger(cmCPackLog::LOG_DEBUG, "Toplevel: "
                 << toplevel << std::endl);
 
-  if (SupportsComponentInstallation()) {
+  if (WantsComponentInstallation()) {
     // CASE 1 : COMPONENT ALL-IN-ONE package
     // If ALL COMPONENTS in ONE package has been requested
     // then the package file is unique and should be open here.
diff --git a/Source/CPack/cmCPackDebGenerator.cxx b/Source/CPack/cmCPackDebGenerator.cxx
index b707e96..178a18d 100644
--- a/Source/CPack/cmCPackDebGenerator.cxx
+++ b/Source/CPack/cmCPackDebGenerator.cxx
@@ -236,7 +236,7 @@ int cmCPackDebGenerator::PackageFiles()
   int retval = -1;
 
   /* Are we in the component packaging case */
-  if (SupportsComponentInstallation()) {
+  if (WantsComponentInstallation()) {
     // CASE 1 : COMPONENT ALL-IN-ONE package
     // If ALL GROUPS or ALL COMPONENTS in ONE package has been requested
     // then the package file is unique and should be open here.
diff --git a/Source/CPack/cmCPackGenerator.cxx b/Source/CPack/cmCPackGenerator.cxx
index f7d8a4d..0f832b3 100644
--- a/Source/CPack/cmCPackGenerator.cxx
+++ b/Source/CPack/cmCPackGenerator.cxx
@@ -1437,6 +1437,12 @@ bool cmCPackGenerator::SupportsComponentInstallation() const
 }
 
 //----------------------------------------------------------------------
+bool cmCPackGenerator::WantsComponentInstallation() const
+{
+  return (!IsOn("CPACK_MONOLITHIC_INSTALL") & SupportsComponentInstallation());
+}
+
+//----------------------------------------------------------------------
 cmCPackInstallationType*
 cmCPackGenerator::GetInstallationType(const char *projectName,
                                       const char *name)
diff --git a/Source/CPack/cmCPackGenerator.h b/Source/CPack/cmCPackGenerator.h
index 52def9d..55afb44 100644
--- a/Source/CPack/cmCPackGenerator.h
+++ b/Source/CPack/cmCPackGenerator.h
@@ -189,7 +189,21 @@ protected:
   virtual int InstallProjectViaInstallCMakeProjects(
     bool setDestDir, const char* tempInstallDirectory);
 
+  /**
+   * Does the CPack generator support component installation?.
+   * Some Generators requires the user to set
+   * CPACK_<GENNAME>_COMPONENT_INSTALL in order to make this
+   * method return true.
+   * @return true if supported, false otherwise
+   */
   virtual bool SupportsComponentInstallation() const;
+  /**
+   * Does the currently running generator want a component installation.
+   * The generator may support component installation but he may
+   * be requiring monolithic install using CPACK_MONOLITHIC_INSTALL.
+   * @return true if component installation is supported and wanted.
+   */
+  virtual bool WantsComponentInstallation() const;
   virtual cmCPackInstallationType* GetInstallationType(const char *projectName,
                                                        const char* name);
   virtual cmCPackComponent* GetComponent(const char *projectName,
diff --git a/Source/CPack/cmCPackRPMGenerator.cxx b/Source/CPack/cmCPackRPMGenerator.cxx
index 1a6c3be..413572e 100644
--- a/Source/CPack/cmCPackRPMGenerator.cxx
+++ b/Source/CPack/cmCPackRPMGenerator.cxx
@@ -201,7 +201,7 @@ int cmCPackRPMGenerator::PackageFiles()
                   << toplevel << std::endl);
 
   /* Are we in the component packaging case */
-  if (SupportsComponentInstallation()) {
+  if (WantsComponentInstallation()) {
     // CASE 1 : COMPONENT ALL-IN-ONE package
     // If ALL COMPONENTS in ONE package has been requested
     // then the package file is unique and should be open here.

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

Summary of changes:
 Source/CPack/cmCPackArchiveGenerator.cxx |    2 +-
 Source/CPack/cmCPackDebGenerator.cxx     |    2 +-
 Source/CPack/cmCPackGenerator.cxx        |    6 ++++++
 Source/CPack/cmCPackGenerator.h          |   14 ++++++++++++++
 Source/CPack/cmCPackRPMGenerator.cxx     |    2 +-
 5 files changed, 23 insertions(+), 3 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list