[CMake] Manifest issues and CMakeVerifyManifest

Olivier Pierard olivier.pierard at cenaero.be
Tue Feb 8 09:01:54 EST 2011


Dear all,

When developing on Windows, I think everything works fine and it be
definitely packaged when ...BOUM...  someone reports a configuration
which fails to start the program !

So, some questions:

1°) I started to try the CMakeVerifyManifest which detects effectively
some errors.  Manifest file contains references to Microsoft.VC90.CRT
and Microsoft.VC80.CRT.  Is this really non-compatible ?  If answer is
no, how could I detect which library (.lib, no dll) is using VC80 ?  I'm
using VisualStudio 2008 SP1, Windows Vista SP1, cmake/cpack 2.8.0,
generate 64-bits executable and soft fails to run on Windows XP 64 bits
SP2 with Visual Studio 2008 SP1 packages installed for x86 ad x64.

2°) I then decided to try it on another executable which seems to be
always working and an error is also reported !  But I don't really
understand it as everything seems to be OK for me.  I'm wondering if the
script distinguishes well the VC90.CRT and VC90.OpenMP ?

Thanks for your help

Olivier

Log of CMakeVerifyManifest in case 2:

Versions found in E:/64/src/GUI/bin/Release/morfeogui.exe.manifest:
<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level='asInvoker' uiAccess='false' />
      </requestedPrivileges>
    </security>
  </trustInfo>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type='win32' name='Microsoft.VC90.CRT'
version='9.0.21022.8' processorArchitecture='amd64'
publicKeyToken='1fc8b3b9a1e18e3b' />
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type='win32' name='Microsoft.VC90.OpenMP'
version='9.0.21022.8' processorArchitecture='amd64'
publicKeyToken='1fc8b3b9a1e18e3b' />
    </dependentAssembly>
  </dependency>
</assembly>

ERROR: E:/64/src/GUI/bin/Release/morfeogui.exe uses 9.0.21022.8 not
found in shipped manifests:[<?xml version='1.0' encoding='UTF-8'
standalone='yes'?>
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
    <security>
      <requestedPrivileges>
        <requestedExecutionLevel level='asInvoker' uiAccess='false' />
      </requestedPrivileges>
    </security>
  </trustInfo>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type='win32' name='Microsoft.VC90.CRT'
version='9.0.21022.8' processorArchitecture='amd64'
publicKeyToken='1fc8b3b9a1e18e3b' />
    </dependentAssembly>
  </dependency>
  <dependency>
    <dependentAssembly>
      <assemblyIdentity type='win32' name='Microsoft.VC90.OpenMP'
version='9.0.21022.8' processorArchitecture='amd64'
publicKeyToken='1fc8b3b9a1e18e3b' />
    </dependentAssembly>
  </dependency>
</assembly>
].
CMake Error at C:/Program Files (x86)/CMake
2.8/share/cmake-2.8/Modules/CMakeVerifyManifest.cmake:113 (message):
  This distribution embeds dll versions that it does not ship, and may not
  work on other machines.





More information about the CMake mailing list