[Cmake-commits] CMake branch, next, updated. v2.8.3-1611-g81326b1

Brad King brad.king at kitware.com
Thu Feb 10 16:19:28 EST 2011


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  81326b19e100a112beb6ee6b86f8716f652d2aff (commit)
       via  2516c05c2c73e768a7ec082a6fed8b2168489f6a (commit)
      from  5016082fd180b1d67cb60662d0c1b53a781269ec (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=81326b19e100a112beb6ee6b86f8716f652d2aff
commit 81326b19e100a112beb6ee6b86f8716f652d2aff
Merge: 5016082 2516c05
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Thu Feb 10 16:19:20 2011 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Thu Feb 10 16:19:20 2011 -0500

    Merge topic 'vs-intel-dll-implib-outdir' into next
    
    2516c05 VS: Create a Fortran DLL's import library directory


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=2516c05c2c73e768a7ec082a6fed8b2168489f6a
commit 2516c05c2c73e768a7ec082a6fed8b2168489f6a
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Thu Feb 10 16:17:44 2011 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Thu Feb 10 16:17:44 2011 -0500

    VS: Create a Fortran DLL's import library directory
    
    The Intel Fortran plugin forgets to create the output directory into
    which it will write a DLL's import library.  Utilize the fix added by
    commit f4b3bdc6 (Create an exe's implib output dir for VS, 2009-06-15)
    and generalized by commit 764ac980 (Generalize exe implib dir creation
    for VS, 2009-06-16).  Create a pre-link rule to make the directory.

diff --git a/Source/cmLocalVisualStudio6Generator.cxx b/Source/cmLocalVisualStudio6Generator.cxx
index 7aabf4d..095e1a7 100644
--- a/Source/cmLocalVisualStudio6Generator.cxx
+++ b/Source/cmLocalVisualStudio6Generator.cxx
@@ -863,7 +863,7 @@ cmLocalVisualStudio6Generator::CreateTargetRules(cmTarget &target,
   event.Write(target.GetPreBuildCommands());
   event.Write(target.GetPreLinkCommands());
   cmsys::auto_ptr<cmCustomCommand> pcc(
-    this->MaybeCreateImplibDir(target, configName));
+    this->MaybeCreateImplibDir(target, configName, false));
   if(pcc.get())
     {
     event.Write(*pcc);
diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx
index e839ed3..bc50dad 100644
--- a/Source/cmLocalVisualStudio7Generator.cxx
+++ b/Source/cmLocalVisualStudio7Generator.cxx
@@ -1695,7 +1695,7 @@ void cmLocalVisualStudio7Generator
   event.Start(tool);
   event.Write(target.GetPreLinkCommands());
   cmsys::auto_ptr<cmCustomCommand> pcc(
-    this->MaybeCreateImplibDir(target, configName));
+    this->MaybeCreateImplibDir(target, configName, this->FortranProject));
   if(pcc.get())
     {
     event.Write(*pcc);
diff --git a/Source/cmLocalVisualStudioGenerator.cxx b/Source/cmLocalVisualStudioGenerator.cxx
index 9164beb..39f9962 100644
--- a/Source/cmLocalVisualStudioGenerator.cxx
+++ b/Source/cmLocalVisualStudioGenerator.cxx
@@ -32,13 +32,17 @@ cmLocalVisualStudioGenerator::~cmLocalVisualStudioGenerator()
 //----------------------------------------------------------------------------
 cmsys::auto_ptr<cmCustomCommand>
 cmLocalVisualStudioGenerator::MaybeCreateImplibDir(cmTarget& target,
-                                                   const char* config)
+                                                   const char* config,
+                                                   bool isFortran)
 {
   cmsys::auto_ptr<cmCustomCommand> pcc;
 
   // If an executable exports symbols then VS wants to create an
   // import library but forgets to create the output directory.
-  if(target.GetType() != cmTarget::EXECUTABLE) { return pcc; }
+  // The Intel Fortran plugin always forgets to the directory.
+  if(target.GetType() != cmTarget::EXECUTABLE &&
+     !(isFortran && target.GetType() == cmTarget::SHARED_LIBRARY))
+    { return pcc; }
   std::string outDir = target.GetDirectory(config, false);
   std::string impDir = target.GetDirectory(config, true);
   if(impDir == outDir) { return pcc; }
diff --git a/Source/cmLocalVisualStudioGenerator.h b/Source/cmLocalVisualStudioGenerator.h
index 1954ac5..22112b3 100644
--- a/Source/cmLocalVisualStudioGenerator.h
+++ b/Source/cmLocalVisualStudioGenerator.h
@@ -47,7 +47,7 @@ protected:
 
   /** Construct a custom command to make exe import lib dir.  */
   cmsys::auto_ptr<cmCustomCommand>
-  MaybeCreateImplibDir(cmTarget& target, const char* config);
+  MaybeCreateImplibDir(cmTarget& target, const char* config, bool isFortran);
 
   // Safe object file name generation.
   void ComputeObjectNameRequirements(std::vector<cmSourceGroup> const&);

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

Summary of changes:
 Source/cmLocalVisualStudio6Generator.cxx |    2 +-
 Source/cmLocalVisualStudio7Generator.cxx |    2 +-
 Source/cmLocalVisualStudioGenerator.cxx  |    8 ++++++--
 Source/cmLocalVisualStudioGenerator.h    |    2 +-
 4 files changed, 9 insertions(+), 5 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list