[Cmake-commits] CMake branch, next, updated. v3.3.0-rc3-698-g0a129de

Brad King brad.king at kitware.com
Fri Jun 26 14:36:41 EDT 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  0a129deab731bd65c60ef5bd45f1c865de601e78 (commit)
       via  e30db74ac6ae38de0f76f95db26a3b81606e32d9 (commit)
      from  2a8dbc4de0da103a064b0372f1ac8481664f6e83 (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=0a129deab731bd65c60ef5bd45f1c865de601e78
commit 0a129deab731bd65c60ef5bd45f1c865de601e78
Merge: 2a8dbc4 e30db74
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri Jun 26 14:36:40 2015 -0400
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Fri Jun 26 14:36:40 2015 -0400

    Merge topic 'auto_export_dll_symbols' into next
    
    e30db74a Update 'auto_export_dll_symbols' topic to match rewrite


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=e30db74ac6ae38de0f76f95db26a3b81606e32d9
commit e30db74ac6ae38de0f76f95db26a3b81606e32d9
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Fri Jun 26 14:36:08 2015 -0400
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Fri Jun 26 14:36:08 2015 -0400

    Update 'auto_export_dll_symbols' topic to match rewrite

diff --git a/Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst b/Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst
index 1c37fd7..3f48af8 100644
--- a/Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst
+++ b/Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst
@@ -1,14 +1,17 @@
 WINDOWS_EXPORT_ALL_SYMBOLS
 --------------------------
 
-This property is implemented only when the compiler supports it.
+This property is implemented only for MS-compatible tools on Windows.
 
-This property will automatically create a .def file with all global
-symbols found in the input .obj files for a dll on Windows. The def
-file will be passed to the linker causing all symbols to be exported
-from the dll. For any global data __declspec(dllimport) must still be
-used when compiling against the code in the dll. All other function
-symbols will be automatically exported and imported by callers.
+Enable this boolean property to automatically create a module definition
+(``.def``) file with all global symbols found in the input ``.obj`` files
+for a ``SHARED`` library on Windows.  The module definition file will be
+passed to the linker causing all symbols to be exported from the ``.dll``.
+For global *data* symbols, ``__declspec(dllimport)`` must still be used when
+compiling against the code in the ``.dll``.  All other function symbols will
+be automatically exported and imported by callers.  This simplifies porting
+projects to Windows by reducing the need for explicit ``dllexport`` markup,
+even in ``C++`` classes.
 
 This property is initialized by the value of
 the :variable:`CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS` variable if it is set
diff --git a/Help/release/dev/auto_export_dll_symbols.rst b/Help/release/dev/auto_export_dll_symbols.rst
new file mode 100644
index 0000000..9db2b5e
--- /dev/null
+++ b/Help/release/dev/auto_export_dll_symbols.rst
@@ -0,0 +1,6 @@
+auto_export_dll_symbols
+-----------------------
+
+* On Windows with MS-compatible tools, CMake learned to optionally
+  generate a module definition (``.def``) file for ``SHARED`` libraries.
+  See the :prop_tgt:`WINDOWS_EXPORT_ALL_SYMBOLS` target property.
diff --git a/Modules/Platform/Windows-MSVC.cmake b/Modules/Platform/Windows-MSVC.cmake
index 1e4ec84..aeaa2bd 100644
--- a/Modules/Platform/Windows-MSVC.cmake
+++ b/Modules/Platform/Windows-MSVC.cmake
@@ -45,12 +45,11 @@ else()
   set(CMAKE_CREATE_CONSOLE_EXE "/subsystem:console")
   set(_PLATFORM_LINK_FLAGS "")
 endif()
-# default support WINDOWS_EXPORT_ALL_SYMBOLS
+
 set(CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS 1)
 if(CMAKE_GENERATOR MATCHES "Visual Studio 6")
    set (CMAKE_NO_BUILD_TYPE 1)
-   # WINDOWS_EXPORT_ALL_SYMBOLS not supported for VS6 IDE
-   set(CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS 0)
+   set(CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS 0) # not implemented for VS6
 endif()
 if(NOT CMAKE_NO_BUILD_TYPE AND CMAKE_GENERATOR MATCHES "Visual Studio")
   set (CMAKE_NO_BUILD_TYPE 1)
diff --git a/Source/bindexplib.cxx b/Source/bindexplib.cxx
index 659082f..0dd9f75 100644
--- a/Source/bindexplib.cxx
+++ b/Source/bindexplib.cxx
@@ -1,6 +1,6 @@
 /*============================================================================
   CMake - Cross Platform Makefile Generator
-  Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
+  Copyright 2000-2015 Kitware, Inc.
 
   Distributed under the OSI-approved BSD License (the "License");
   see accompanying file Copyright.txt for details.
@@ -9,9 +9,12 @@
   implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
   See the License for more information.
 ============================================================================*/
-
-/* permission to use BSD license from Pere Mato pere.mato at cern.ch
-  Header of original code from http://root.cern.ch follows: */
+/*-------------------------------------------------------------------------
+  Portions of this source have been derived from the 'bindexplib' tool
+  provided by the CERN ROOT Data Analysis Framework project (root.cern.ch).
+  Permission has been granted by Pere Mato <pere.mato at cern.ch> to distribute
+  this derived work under the CMake license.
+-------------------------------------------------------------------------*/
 
 /*
 *----------------------------------------------------------------------
@@ -143,8 +146,8 @@ HaveExportedObjects(PIMAGE_FILE_HEADER pImageFileHeader,
     i = 0;
     foundExports = 0;
     pDirectivesSectionHeader = 0;
-    for(i = 0; i < pImageFileHeader->NumberOfSections
-          && !pDirectivesSectionHeader; i++)
+    for(i = 0; (i < pImageFileHeader->NumberOfSections &&
+                !pDirectivesSectionHeader); i++)
        if (!strncmp((const char*)&pSectionHeaders[i].Name[0], ".drectve",8))
           pDirectivesSectionHeader = &pSectionHeaders[i];
    if (!pDirectivesSectionHeader) return 0;
@@ -200,107 +203,88 @@ DumpExternalsObjects(PIMAGE_SYMBOL pSymbolTable,
    */
    stringTable = (PSTR)&pSymbolTable[cSymbols];
 
-   for ( i=0; i < cSymbols; i++ )
-     {
-     if (pSymbolTable->SectionNumber > 0 &&
-         ( pSymbolTable->Type == 0x20 || pSymbolTable->Type == 0x0))
-       {
-       if (pSymbolTable->StorageClass == IMAGE_SYM_CLASS_EXTERNAL)
-         {
-         /*
-          *    The name of the Function entry points
-          */
-         if (pSymbolTable->N.Name.Short != 0)
-           {
-           symbol = "";
-           symbol.insert(0, (const char *)pSymbolTable->N.ShortName, 8);
-           }
-         else
-           {
-           symbol = stringTable + pSymbolTable->N.Name.Long;
-           }
-         // clear out any leading spaces
-         while (isspace(symbol[0])) symbol.erase(0,1);
-         // if it starts with _ and has an @ then it is a __cdecl
-         // so remove the @ stuff for the export
-         if(symbol[0] == '_')
-           {
-           std::string::size_type posAt = symbol.find('@');
-           if (posAt != std::string::npos)
-             {
-             symbol.erase(posAt);
-             }
-           }
-         if (symbol[0] == '_') symbol.erase(0,1);
-         if (fImportFlag)
-           {
-           fImportFlag = 0;
-           fprintf(fout,"EXPORTS \n");
-           }
-         /*
-           Check whether it is "Scalar deleting destructor" and
-           "Vector deleting destructor"
-         */
-         const char *scalarPrefix = "??_G";
-         const char *vectorPrefix = "??_E";
-         // original code had a check for
-         // symbol.find("real@") == std::string::npos)
-         // but if this disallows memmber functions with the name real
-         // if scalarPrefix and vectorPrefix are not found then print
-         //the symbol
-         if (symbol.compare(0, 4, scalarPrefix) &&
-             symbol.compare(0, 4, vectorPrefix) )
-           {
-           SectChar =
-             pSectionHeaders[pSymbolTable->SectionNumber-1].Characteristics;
-           if (!pSymbolTable->Type  && (SectChar & IMAGE_SCN_MEM_WRITE))
-             {
-             // Read only (i.e. constants) must be excluded
-             fprintf(fout, "\t%s \t DATA\n", symbol.c_str());
-             }
-           else
-             {
-             if ( pSymbolTable->Type  || !(SectChar & IMAGE_SCN_MEM_READ))
-               {
-               fprintf(fout, "\t%s\n", symbol.c_str());
+   for ( i=0; i < cSymbols; i++ ) {
+      if (pSymbolTable->SectionNumber > 0 &&
+          ( pSymbolTable->Type == 0x20 || pSymbolTable->Type == 0x0)) {
+         if (pSymbolTable->StorageClass == IMAGE_SYM_CLASS_EXTERNAL) {
+            /*
+            *    The name of the Function entry points
+            */
+            if (pSymbolTable->N.Name.Short != 0) {
+               symbol = "";
+               symbol.insert(0, (const char *)pSymbolTable->N.ShortName, 8);
+            } else {
+               symbol = stringTable + pSymbolTable->N.Name.Long;
+            }
+
+            // clear out any leading spaces
+            while (isspace(symbol[0])) symbol.erase(0,1);
+            // if it starts with _ and has an @ then it is a __cdecl
+            // so remove the @ stuff for the export
+            if(symbol[0] == '_') {
+               std::string::size_type posAt = symbol.find('@');
+               if (posAt != std::string::npos) {
+                  symbol.erase(posAt);
                }
-             else
-               {
-               //printf(" strange symbol: %s \n",symbol.c_str());
+            }
+            if (symbol[0] == '_') symbol.erase(0,1);
+            if (fImportFlag) {
+               fImportFlag = 0;
+               fprintf(fout,"EXPORTS \n");
+            }
+            /*
+            Check whether it is "Scalar deleting destructor" and
+            "Vector deleting destructor"
+            */
+            const char *scalarPrefix = "??_G";
+            const char *vectorPrefix = "??_E";
+            // original code had a check for
+            // symbol.find("real@") == std::string::npos)
+            // but if this disallows memmber functions with the name real
+            // if scalarPrefix and vectorPrefix are not found then print
+            // the symbol
+            if (symbol.compare(0, 4, scalarPrefix) &&
+                symbol.compare(0, 4, vectorPrefix) )
+            {
+               SectChar =
+                pSectionHeaders[pSymbolTable->SectionNumber-1].Characteristics;
+               if (!pSymbolTable->Type  && (SectChar & IMAGE_SCN_MEM_WRITE)) {
+                  // Read only (i.e. constants) must be excluded
+                  fprintf(fout, "\t%s \t DATA\n", symbol.c_str());
+               } else {
+                  if ( pSymbolTable->Type  ||
+                       !(SectChar & IMAGE_SCN_MEM_READ)) {
+                     fprintf(fout, "\t%s\n", symbol.c_str());
+                  } else {
+                     // printf(" strange symbol: %s \n",symbol.c_str());
+                  }
                }
-             }
-           } // not vector or scalar destructor
+            }
          }
       }
-      else if (pSymbolTable->SectionNumber
-               == IMAGE_SYM_UNDEFINED && !pSymbolTable->Type && 0)
-        {
-        /*
+      else if (pSymbolTable->SectionNumber == IMAGE_SYM_UNDEFINED &&
+               !pSymbolTable->Type && 0) {
+         /*
          *    The IMPORT global variable entry points
          */
-        if (pSymbolTable->StorageClass == IMAGE_SYM_CLASS_EXTERNAL)
-          {
-          symbol = stringTable + pSymbolTable->N.Name.Long;
-          while (isspace(symbol[0]))  symbol.erase(0,1);
-          if (symbol[0] == '_')
-            {
-            symbol.erase(0,1);
-            }
-          if (!fImportFlag)
-            {
-            fImportFlag = 1;
-            fprintf(fout,"IMPORTS \n");
+         if (pSymbolTable->StorageClass == IMAGE_SYM_CLASS_EXTERNAL) {
+            symbol = stringTable + pSymbolTable->N.Name.Long;
+            while (isspace(symbol[0]))  symbol.erase(0,1);
+            if (symbol[0] == '_') symbol.erase(0,1);
+            if (!fImportFlag) {
+               fImportFlag = 1;
+               fprintf(fout,"IMPORTS \n");
             }
-          fprintf(fout, "\t%s DATA \n", symbol.c_str()+1);
-          }
-        }
+            fprintf(fout, "\t%s DATA \n", symbol.c_str()+1);
+         }
+      }
 
-     /*
+      /*
       * Take into account any aux symbols
       */
-     i += pSymbolTable->NumberOfAuxSymbols;
-     pSymbolTable += pSymbolTable->NumberOfAuxSymbols;
-     pSymbolTable++;
+      i += pSymbolTable->NumberOfAuxSymbols;
+      pSymbolTable += pSymbolTable->NumberOfAuxSymbols;
+      pSymbolTable++;
    }
 }
 
@@ -332,10 +316,8 @@ DumpObjFile(PIMAGE_FILE_HEADER pImageFileHeader, FILE *fout)
    int haveExports = HaveExportedObjects(pImageFileHeader,
                                          PCOFFSectionHeaders, fout);
    if (!haveExports)
-     {
-     DumpExternalsObjects(PCOFFSymbolTable, PCOFFSectionHeaders,
-                          fout, COFFSymbolCount);
-     }
+       DumpExternalsObjects(PCOFFSymbolTable, PCOFFSectionHeaders,
+                            fout, COFFSymbolCount);
 }
 
 /*
@@ -358,11 +340,10 @@ DumpFile(const char* filename, FILE *fout)
                        GENERIC_READ, FILE_SHARE_READ, NULL,
       OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
 
-   if (hFile == INVALID_HANDLE_VALUE)
-     {
-     fprintf(stderr, "Couldn't open file [%s] with CreateFile()\n", filename);
-     return;
-     }
+   if (hFile == INVALID_HANDLE_VALUE) {
+      fprintf(stderr, "Couldn't open file [%s] with CreateFile()\n", filename);
+      return;
+   }
 
    hFileMapping = CreateFileMapping(hFile, NULL, PAGE_READONLY, 0, 0, NULL);
    if (hFileMapping == 0) {
@@ -380,17 +361,16 @@ DumpFile(const char* filename, FILE *fout)
    }
 
    dosHeader = (PIMAGE_DOS_HEADER)lpFileBase;
-   if (dosHeader->e_magic == IMAGE_DOS_SIGNATURE)
-     {
-     fprintf(stderr, "File is an executable.  I don't dump those.\n");
-     return;
-     }
+   if (dosHeader->e_magic == IMAGE_DOS_SIGNATURE) {
+      fprintf(stderr, "File is an executable.  I don't dump those.\n");
+      return;
+   }
    /* Does it look like a i386 COFF OBJ file??? */
    else if (
-     ((dosHeader->e_magic == IMAGE_FILE_MACHINE_I386)
-      || (dosHeader->e_magic == IMAGE_FILE_MACHINE_AMD64))
-     && (dosHeader->e_sp == 0)
-     ) {
+           ((dosHeader->e_magic == IMAGE_FILE_MACHINE_I386) ||
+            (dosHeader->e_magic == IMAGE_FILE_MACHINE_AMD64))
+           && (dosHeader->e_sp == 0)
+           ) {
       /*
       * The two tests above aren't what they look like.  They're
       * really checking for IMAGE_FILE_HEADER.Machine == i386 (0x14C)
diff --git a/Source/cmLocalVisualStudio7Generator.cxx b/Source/cmLocalVisualStudio7Generator.cxx
index 020ef50..e4eb014 100644
--- a/Source/cmLocalVisualStudio7Generator.cxx
+++ b/Source/cmLocalVisualStudio7Generator.cxx
@@ -1081,8 +1081,8 @@ void cmLocalVisualStudio7Generator::OutputBuildTool(std::ostream& fout,
       this->ConvertToOutputFormat(this->ModuleDefinitionFile, SHELL);
     linkOptions.AddFlag("ModuleDefinitionFile", defFile.c_str());
     }
-  if(this->Makefile->IsOn("CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS")
-     &&target.GetType() == cmTarget::SHARED_LIBRARY)
+  if (target.GetType() == cmTarget::SHARED_LIBRARY &&
+      this->Makefile->IsOn("CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS"))
     {
     std::string const autodef_prop = "WINDOWS_EXPORT_ALL_SYMBOLS";
     const char *autodef = target.GetProperty(autodef_prop);
@@ -2026,8 +2026,8 @@ void cmLocalVisualStudio7Generator
   tool = this->FortranProject? "VFPreLinkEventTool":"VCPreLinkEventTool";
   event.Start(tool);
   bool addedPrelink = false;
-  if(this->Makefile->IsOn("CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS")
-     && target.GetType() == cmTarget::SHARED_LIBRARY)
+  if (target.GetType() == cmTarget::SHARED_LIBRARY &&
+      this->Makefile->IsOn("CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS"))
     {
     std::string const autodef_prop = "WINDOWS_EXPORT_ALL_SYMBOLS";
     const char *autodef = target.GetProperty(autodef_prop);
@@ -2045,7 +2045,7 @@ void cmLocalVisualStudio7Generator
       event.Write(commands);
       }
     }
-  if(!addedPrelink)
+  if (!addedPrelink)
     {
     event.Write(target.GetPreLinkCommands());
     }
diff --git a/Source/cmMakefileLibraryTargetGenerator.cxx b/Source/cmMakefileLibraryTargetGenerator.cxx
index 0511356..f807517 100644
--- a/Source/cmMakefileLibraryTargetGenerator.cxx
+++ b/Source/cmMakefileLibraryTargetGenerator.cxx
@@ -563,10 +563,9 @@ void cmMakefileLibraryTargetGenerator::WriteLibraryRules
                           useResponseFileForObjects, buildObjs, depends,
                           useWatcomQuote);
 
-  // check for windows_auto_dll_export property here
-  // create .def file from list of objects
-  if(this->Makefile->IsOn("CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS")
-     && this->Target->GetType() == cmTarget::SHARED_LIBRARY)
+  // maybe create .def file from list of objects
+  if (this->Target->GetType() == cmTarget::SHARED_LIBRARY &&
+      this->Makefile->IsOn("CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS"))
     {
     std::string const autodef_prop = "WINDOWS_EXPORT_ALL_SYMBOLS";
     const char *autodef = this->Target->GetProperty(autodef_prop);
diff --git a/Source/cmNinjaNormalTargetGenerator.cxx b/Source/cmNinjaNormalTargetGenerator.cxx
index a181f66..4df0993 100644
--- a/Source/cmNinjaNormalTargetGenerator.cxx
+++ b/Source/cmNinjaNormalTargetGenerator.cxx
@@ -437,6 +437,7 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement()
     this->OSXBundleGenerator->CreateCFBundle(this->TargetNameOut,
                                              target.GetDirectory(cfgName));
     }
+
   // Write comments.
   cmGlobalNinjaGenerator::WriteDivider(this->GetBuildFileStream());
   const cmTarget::TargetType targetType = target.GetType();
@@ -616,10 +617,10 @@ void cmNinjaNormalTargetGenerator::WriteLinkStatement()
                      std::back_inserter(byproducts), MapToNinjaPath());
       }
     }
-  // check for windows_auto_dll_export property here
-  // create .def file from list of objects
-  if(this->GetMakefile()->IsOn("CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS")
-     && target.GetType() == cmTarget::SHARED_LIBRARY)
+
+  // maybe create .def file from list of objects
+  if (target.GetType() == cmTarget::SHARED_LIBRARY &&
+      this->GetMakefile()->IsOn("CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS"))
     {
     std::string const autodef_prop = "WINDOWS_EXPORT_ALL_SYMBOLS";
     const char *autodef = target.GetProperty(autodef_prop);
diff --git a/Source/cmVisualStudio10TargetGenerator.cxx b/Source/cmVisualStudio10TargetGenerator.cxx
index d84b7d0..03acf2f 100644
--- a/Source/cmVisualStudio10TargetGenerator.cxx
+++ b/Source/cmVisualStudio10TargetGenerator.cxx
@@ -2465,8 +2465,9 @@ cmVisualStudio10TargetGenerator::ComputeLinkOptions(std::string const& config)
     linkOptions.AppendFlag("IgnoreSpecificDefaultLibraries",
                            "%(IgnoreSpecificDefaultLibraries)");
     }
-  if(this->Makefile->IsOn("CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS")
-     && this->Target->GetType() == cmTarget::SHARED_LIBRARY)
+
+  if (this->Target->GetType() == cmTarget::SHARED_LIBRARY &&
+      this->Makefile->IsOn("CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS"))
     {
     std::string const autodef_prop = "WINDOWS_EXPORT_ALL_SYMBOLS";
     const char *autodef = this->Target->GetProperty(autodef_prop);
@@ -2475,6 +2476,7 @@ cmVisualStudio10TargetGenerator::ComputeLinkOptions(std::string const& config)
       linkOptions.AddFlag("ModuleDefinitionFile", "$(IntDir)/exportall.def");
       }
     }
+
   this->LinkOptions[config] = pOptions.release();
   return true;
 }
@@ -2623,8 +2625,8 @@ void
 cmVisualStudio10TargetGenerator::WriteEvents(std::string const& configName)
 {
   bool addedPrelink = false;
-  if(this->Makefile->IsOn("CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS")
-     && this->Target->GetType() == cmTarget::SHARED_LIBRARY)
+  if (this->Target->GetType() == cmTarget::SHARED_LIBRARY &&
+      this->Makefile->IsOn("CMAKE_SUPPORT_WINDOWS_EXPORT_ALL_SYMBOLS"))
     {
     std::string const autodef_prop = "WINDOWS_EXPORT_ALL_SYMBOLS";
     const char *autodef = this->Target->GetProperty(autodef_prop);
@@ -2638,7 +2640,7 @@ cmVisualStudio10TargetGenerator::WriteEvents(std::string const& configName)
       this->WriteEvent("PreLinkEvent", commands, configName);
       }
     }
-  if(!addedPrelink)
+  if (!addedPrelink)
     {
     this->WriteEvent("PreLinkEvent",
                      this->Target->GetPreLinkCommands(), configName);
diff --git a/Source/cmcmd.cxx b/Source/cmcmd.cxx
index 61e6331..d97abcc 100644
--- a/Source/cmcmd.cxx
+++ b/Source/cmcmd.cxx
@@ -214,6 +214,7 @@ int cmcmd::ExecuteCMakeCommand(std::vector<std::string>& args)
         }
       return 0;
       }
+
 #if defined(_WIN32) && defined(CMAKE_BUILD_WITH_CMAKE)
     else if(args[1] == "__create_def")
       {

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

Summary of changes:
 Help/prop_tgt/WINDOWS_EXPORT_ALL_SYMBOLS.rst |   17 ++-
 Help/release/dev/auto_export_dll_symbols.rst |    6 +
 Modules/Platform/Windows-MSVC.cmake          |    5 +-
 Source/bindexplib.cxx                        |  210 ++++++++++++--------------
 Source/cmLocalVisualStudio7Generator.cxx     |   10 +-
 Source/cmMakefileLibraryTargetGenerator.cxx  |    7 +-
 Source/cmNinjaNormalTargetGenerator.cxx      |    9 +-
 Source/cmVisualStudio10TargetGenerator.cxx   |   12 +-
 Source/cmcmd.cxx                             |    1 +
 9 files changed, 134 insertions(+), 143 deletions(-)
 create mode 100644 Help/release/dev/auto_export_dll_symbols.rst


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list