diff options
author | Brad King <brad.king@kitware.com> | 2011-12-05 21:39:07 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2011-12-05 23:13:49 (GMT) |
commit | afb00fef193b1000aa76e3a523899712065d53d0 (patch) | |
tree | 5fe5e0dfa8407ecb7d2e5016ed1cec6b88533664 /Source/cmTarget.h | |
parent | 61e862986ae56e111533c21759a4e01a41968d1e (diff) | |
download | CMake-afb00fef193b1000aa76e3a523899712065d53d0.zip CMake-afb00fef193b1000aa76e3a523899712065d53d0.tar.gz CMake-afb00fef193b1000aa76e3a523899712065d53d0.tar.bz2 |
Add CMAKE_GNUtoMS option to convert GNU .dll.a to MS .lib
Teach the Windows-GNU.cmake platform file to look for Visual Studio
tools matching the target ABI. Add an extra step to the link command
for shared libraries and executables that export symbols and on which a
new GNUtoMS property is set (initialized by the CMAKE_GNUtoMS option).
Tell the GNU linker to output a module definition (.def) file listing
exported symbols in addition to the GNU-format import library (.dll.a).
Pass the .def file to the MS "lib" tool to construct a MS-format DLL
import library (.lib).
Teach the install(TARGETS) command to install the MS import library next
to the GNU one. Teach the install(EXPORT) and export() command to set
the IMPORTED_IMPLIB property pointing at the import library to use the
import library matching the tools in the importing project.
Diffstat (limited to 'Source/cmTarget.h')
-rw-r--r-- | Source/cmTarget.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/Source/cmTarget.h b/Source/cmTarget.h index 0abdddb..09fee6c 100644 --- a/Source/cmTarget.h +++ b/Source/cmTarget.h @@ -369,6 +369,14 @@ public: std::string& impName, std::string& pdbName, const char* config); + /** Does this target have a GNU implib to convert to MS format? */ + bool HasImplibGNUtoMS(); + + /** Convert the given GNU import library name (.dll.a) to a name with a new + extension (.lib or ${CMAKE_IMPORT_LIBRARY_SUFFIX}). */ + bool GetImplibGNUtoMS(std::string const& gnuName, std::string& out, + const char* newExt = 0); + /** Add the target output files to the global generator manifest. */ void GenerateTargetManifest(const char* config); |