[Cmake-commits] CMake branch, next, updated. v3.2.0-rc1-363-g4607c51

Brad King brad.king at kitware.com
Mon Feb 16 13:00:36 EST 2015


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  4607c510ae328a90efd2c7af6671315251333553 (commit)
       via  fa8b30ebb57da8ddc3e3616c4d212811abc19335 (commit)
       via  aa2ba12164046cd1812c3f3b67cadca856d51846 (commit)
      from  3935a0116c39fe760d7100de04e912be25985d5b (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=4607c510ae328a90efd2c7af6671315251333553
commit 4607c510ae328a90efd2c7af6671315251333553
Merge: 3935a01 fa8b30e
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Mon Feb 16 13:00:36 2015 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Mon Feb 16 13:00:36 2015 -0500

    Merge topic 'vs7-OutputDirectory' into next
    
    fa8b30eb VS: Fix .vcproj and .vfproj file OutputDirectory generation
    aa2ba121 VS: Use $(ConfigurationName) as CMAKE_CFG_INTDIR in VS 7, 8, 9


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=fa8b30ebb57da8ddc3e3616c4d212811abc19335
commit fa8b30ebb57da8ddc3e3616c4d212811abc19335
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Mon Feb 16 11:13:43 2015 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Mon Feb 16 11:48:16 2015 -0500

    VS: Fix .vcproj and .vfproj file OutputDirectory generation
    
    Teach cmLocalVisualStudio7Generator to set 'OutputDirectory' using the
    same method as is used to set the 'OutputFile' in the generated project
    file.  Also, OutputDirectory only needs to be set for targets that run the
    linker or librarian.  These two changes make the VS 7 OutputDirectory
    consistent with what cmVisualStudio10TargetGenerator generates for OutDir.
    
    Without this, since the VS Intel Fortran plugin for VS >= 10 still uses
    the VS 7 .vfproj file format, when executing test VSGNUFortran using
    Intel Fortran Compiler 15.xx, the following warning is issued just
    before compilation:
    
      TargetPath(...) does not match the Linker's OutputFile property value (...).
      This may cause your project to build incorrectly.
      To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt)
      property values match the value specified in %(Link.OutputFile).
    
    Subsequently, an error is reported during linking.
    
    Inspired-by: Vincent Newsum <vynewsum at gmail.com>

diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx
index 88c5284..ed560aa 100644
--- a/Source/cmLocalVisualStudio7Generator.cxx
+++ b/Source/cmLocalVisualStudio7Generator.cxx
@@ -669,8 +669,7 @@ void cmLocalVisualStudio7Generator::WriteConfiguration(std::ostream& fout,
     static_cast<cmGlobalVisualStudio7Generator*>(this->GlobalGenerator);
   fout << "\t\t<Configuration\n"
        << "\t\t\tName=\"" << configName
-       << "|" << gg->GetPlatformName() << "\"\n"
-       << "\t\t\tOutputDirectory=\"" << configName << "\"\n";
+       << "|" << gg->GetPlatformName() << "\"\n";
   // This is an internal type to Visual Studio, it seems that:
   // 4 == static library
   // 2 == dll
@@ -798,6 +797,16 @@ void cmLocalVisualStudio7Generator::WriteConfiguration(std::ostream& fout,
   std::string intermediateDir = this->GetTargetDirectory(target);
   intermediateDir += "/";
   intermediateDir += configName;
+
+  if (target.GetType() < cmTarget::UTILITY)
+    {
+    std::string const& outDir =
+      target.GetType() == cmTarget::OBJECT_LIBRARY?
+      intermediateDir : target.GetDirectory(configName);
+    fout << "\t\t\tOutputDirectory=\""
+         << this->ConvertToXMLOutputPathSingle(outDir.c_str()) << "\"\n";
+    }
+
   fout << "\t\t\tIntermediateDirectory=\""
        << this->ConvertToXMLOutputPath(intermediateDir.c_str())
        << "\"\n"

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=aa2ba12164046cd1812c3f3b67cadca856d51846
commit aa2ba12164046cd1812c3f3b67cadca856d51846
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Mon Feb 16 11:11:37 2015 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Mon Feb 16 11:48:04 2015 -0500

    VS: Use $(ConfigurationName) as CMAKE_CFG_INTDIR in VS 7, 8, 9
    
    This will allow us to use a value other than just the config name
    for the project OutputDirectory setting used for $(OutDir).
    
    Also use $(ConfigurationName) instead of $(OutDir) for the link
    directory configuration suffix since that is a hard-coded instance of
    a use case for CMAKE_CFG_INTDIR.

diff --git a/Help/release/dev/vs7-OutputDirectory.rst b/Help/release/dev/vs7-OutputDirectory.rst
new file mode 100644
index 0000000..2725d0c
--- /dev/null
+++ b/Help/release/dev/vs7-OutputDirectory.rst
@@ -0,0 +1,10 @@
+vs7-OutputDirectory
+-------------------
+
+* The :variable:`CMAKE_CFG_INTDIR` variable value for Visual Studio
+  7, 8, and 9 is now ``$(ConfigurationName)`` instead of ``$(OutDir)``.
+  This should have no effect on the intended use cases of the variable.
+
+* With Visual Studio 7, 8, and 9 generators the value of the ``$(OutDir)``
+  placeholder no longer evaluates to the configuration name.  Projects
+  should use ``$(ConfigurationName)`` for that instead.
diff --git a/Help/variable/CMAKE_CFG_INTDIR.rst b/Help/variable/CMAKE_CFG_INTDIR.rst
index 20435e5..55f7b01 100644
--- a/Help/variable/CMAKE_CFG_INTDIR.rst
+++ b/Help/variable/CMAKE_CFG_INTDIR.rst
@@ -12,11 +12,11 @@ values:
 
 ::
 
-  $(IntDir)        = Visual Studio 6
-  $(OutDir)        = Visual Studio 7, 8, 9
-  $(Configuration) = Visual Studio 10
-  $(CONFIGURATION) = Xcode
-  .                = Make-based tools
+  $(IntDir)            = Visual Studio 6
+  $(ConfigurationName) = Visual Studio 7, 8, 9
+  $(Configuration)     = Visual Studio 10
+  $(CONFIGURATION)     = Xcode
+  .                    = Make-based tools
 
 Since these values are evaluated by the native build system, this
 variable is suitable only for use in command lines that will be
diff --git a/Source/cmGlobalVisualStudio7Generator.h b/Source/cmGlobalVisualStudio7Generator.h
index 201a6a6..b591653 100644
--- a/Source/cmGlobalVisualStudio7Generator.h
+++ b/Source/cmGlobalVisualStudio7Generator.h
@@ -94,7 +94,8 @@ public:
                                         std::string& dir);
 
   ///! What is the configurations directory variable called?
-  virtual const char* GetCMakeCFGIntDir() const { return "$(OutDir)"; }
+  virtual const char* GetCMakeCFGIntDir() const
+    { return "$(ConfigurationName)"; }
 
   /** Return true if the target project file should have the option
       LinkLibraryDependencies and link to .sln dependencies. */
diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx
index 914df5f..88c5284 100644
--- a/Source/cmLocalVisualStudio7Generator.cxx
+++ b/Source/cmLocalVisualStudio7Generator.cxx
@@ -1441,7 +1441,8 @@ cmLocalVisualStudio7Generator
 
     // First search a configuration-specific subdirectory and then the
     // original directory.
-    fout << comma << this->ConvertToXMLOutputPath((dir+"/$(OutDir)").c_str())
+    fout << comma
+         << this->ConvertToXMLOutputPath((dir+"/$(ConfigurationName)").c_str())
          << "," << this->ConvertToXMLOutputPath(dir.c_str());
     comma = ",";
     }

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

Summary of changes:
 Help/release/dev/vs7-OutputDirectory.rst |   10 ++++++++++
 Help/variable/CMAKE_CFG_INTDIR.rst       |   10 +++++-----
 Source/cmGlobalVisualStudio7Generator.h  |    3 ++-
 Source/cmLocalVisualStudio7Generator.cxx |   16 +++++++++++++---
 4 files changed, 30 insertions(+), 9 deletions(-)
 create mode 100644 Help/release/dev/vs7-OutputDirectory.rst


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list