diff options
author | Brad King <brad.king@kitware.com> | 2011-02-10 21:17:44 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2011-02-10 21:17:44 (GMT) |
commit | 2516c05c2c73e768a7ec082a6fed8b2168489f6a (patch) | |
tree | 5c61d2964d322ed9fcac25d261452998f331d636 /Source/cmLocalVisualStudioGenerator.cxx | |
parent | e53b7cbadf1b7faf353e91b6041a697a90d9584d (diff) | |
download | CMake-2516c05c2c73e768a7ec082a6fed8b2168489f6a.zip CMake-2516c05c2c73e768a7ec082a6fed8b2168489f6a.tar.gz CMake-2516c05c2c73e768a7ec082a6fed8b2168489f6a.tar.bz2 |
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.
Diffstat (limited to 'Source/cmLocalVisualStudioGenerator.cxx')
-rw-r--r-- | Source/cmLocalVisualStudioGenerator.cxx | 8 |
1 files changed, 6 insertions, 2 deletions
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; } |