Re: [CMake] InstallRequiredSystemLibraries.cmake and Redistribution of the shared C runtime component in Visual C++

2009-08-20 Thread Mike Jackson
On Thu, Aug 6, 2009 at 3:12 PM, Marcus D. Hanwellmar...@cryos.org wrote:
 James Bigler wrote:
 On Thu, Aug 6, 2009 at 12:10 PM, Bill Hoffman
 bill.hoff...@kitware.com mailto:bill.hoff...@kitware.com wrote:

     James Bigler wrote:


         Well, I was using VS 2005 64 bit with SP 1.  I wonder if there
         is a similar bug or if there is something else going wrong
         such as what Marcus Hanwall described.


     I am not sure what your issue is, but I know I have done this many
     times...

     -Bill


 I checked the version numbers of the DLLs, and even checked the md5sum
 and everything was the same between the dlls in the WinSxS folder and
 the ones I'm distributing.  It failed on two clean systems without the
 vcredist install.  I guess I'll run vcredist as Microsoft suggests and
 see if I can trouble shoot later.

 It is a rather perplexing problem.

 The link Bill supplied has all of the relevant information. In the
 Community Discussion section the second comment provides three
 possible workarounds. We are using the third of those when distributing
 Avogadro packages for Windows. The version mismatch in the manifests of
 the compiled executables and the manifest with the redistributable DLLs
 is what causes the issue.

 It seems that MS has no intention of fixing this issue. We have a clean
 VM where we test new installers, as occasionally this change was lost
 and the DLLs failed to load.

 Marcus

Ok, so I too have run into this problem. What is anyone doing to get
around this issue?

I would really like a solution that did NOT involve editing anything
from VC++ install as I would have to pass those instructions on to the
next Developer. Clinton's posting about including the VCRedist.exe in
the NSIS installer is OK by me. Is that what everyone else is doing?

Thanks
--
Mike Jackson
___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] InstallRequiredSystemLibraries.cmake and Redistribution of the shared C runtime component in Visual C++

2009-08-20 Thread James Bigler
On Thu, Aug 20, 2009 at 1:51 PM, Mike Jackson
mike.jack...@bluequartz.netwrote:

 On Thu, Aug 6, 2009 at 3:12 PM, Marcus D. Hanwellmar...@cryos.org wrote:
  James Bigler wrote:
  On Thu, Aug 6, 2009 at 12:10 PM, Bill Hoffman
  bill.hoff...@kitware.com mailto:bill.hoff...@kitware.com wrote:
 
  James Bigler wrote:
 
 
  Well, I was using VS 2005 64 bit with SP 1.  I wonder if there
  is a similar bug or if there is something else going wrong
  such as what Marcus Hanwall described.
 
 
  I am not sure what your issue is, but I know I have done this many
  times...
 
  -Bill
 
 
  I checked the version numbers of the DLLs, and even checked the md5sum
  and everything was the same between the dlls in the WinSxS folder and
  the ones I'm distributing.  It failed on two clean systems without the
  vcredist install.  I guess I'll run vcredist as Microsoft suggests and
  see if I can trouble shoot later.
 
  It is a rather perplexing problem.
 
  The link Bill supplied has all of the relevant information. In the
  Community Discussion section the second comment provides three
  possible workarounds. We are using the third of those when distributing
  Avogadro packages for Windows. The version mismatch in the manifests of
  the compiled executables and the manifest with the redistributable DLLs
  is what causes the issue.
 
  It seems that MS has no intention of fixing this issue. We have a clean
  VM where we test new installers, as occasionally this change was lost
  and the DLLs failed to load.
 
  Marcus

 Ok, so I too have run into this problem. What is anyone doing to get
 around this issue?

 I would really like a solution that did NOT involve editing anything
 from VC++ install as I would have to pass those instructions on to the
 next Developer. Clinton's posting about including the VCRedist.exe in
 the NSIS installer is OK by me. Is that what everyone else is doing?

 Thanks
 --
 Mike Jackson


I ended up linking against the static CRT library (/MT), but that's not for
everyone.
http://msdn.microsoft.com/en-us/library/ms235460.aspx

My next choice was going to be including the VCRedist.exe in the installer.
For some of the other projects at my company, this is what they do.

Here are some links I've been consulting on the subject of CRT library
(conflicts with multiple CRTs).
http://stackoverflow.com/questions/1075050/howto-multiple-versions-of-msvcrt9-as-private-sxs-assemblies
http://tedwvc.wordpress.com/2009/08/10/avoiding-problems-with-vc2005-sp1-security-update-kb971090/
http://stackoverflow.com/questions/1265792/visual-studio-2005-security-updates-and-crt-dll-versions-in-manifest

James
___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Re: [CMake] InstallRequiredSystemLibraries.cmake and Redistribution of the shared C runtime component in Visual C++

2009-08-20 Thread John Drescher
On Thu, Aug 6, 2009 at 2:07 PM, Clinton Stimpsonclin...@elemtech.com wrote:
 Bill Hoffman wrote:

 James Bigler wrote:

 I've just been bitten hard by this issue (many hours of frustration while
 attempting to run a demo application that should have Just Worked (TM) ).

 According to this page:

 http://support.microsoft.com/kb/326922


 You should install these versions of the CRT on target computers by
 running the Vcredist_x86.exe application that is included with Visual
 Studio.  This is for the VS 2005 and 2008 versions of the C run-time
 libraries except for Windows 2000 in which case you need to install them in
 the system32 directory.

 I was dropping Msvcr80.dll and friends as per
 InstallRequiredSystemLibraries next to the binaries with ineffectual
 results.  It was really strange, because programs like Dependency Walker
 seemed to find them just fine.  It was only after running vcredist_x86.exe
 that I was able to run my programs properly.

 I though I should tell everyone that this method of distributing
 Msvcr80.dll and Msvcr90.dll next to your binaries is not supposed to work.
  You must install them into the Windows Side by Side location (WinSxS) using
 the CRT.msm merge module or the vcredist_x86.exe that comes with Visual
 Studio.

 Now to try and get CPack to tell NSIS run the vcredist_x86.exe program
 during installation.

 Note, that many people might get lucky and have already installed a
 product that installed the right vcredist_x86.exe before installing your
 software.


 No this works fine However you may be running into this issue:

 
 Visual Studio 9 SP 1 has a bug that will cause trouble with cpack.


 You can read about it here:


 https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=361682


 Basically, when you compile an executable or dll with VS9 SP1 it embeds
 manifest information into the the exe or dll that does not match the
 version information in the manifest files that SP 1 provides for
 redistribution.
 

 We use the InstallRequiredSystemLibraries all the time without requiring
 vcredist_x86.exe to be run.

 There are some cases it doesn't work (3rd party libraries you can't compile
 yourself).
 I don't have two installs of the same Visual Studio versions with different
 service packs, so, here's what I do.

   IF(MSVC80)
     FIND_PROGRAM(MSVC_REDIST NAMES
 vcredist_${CMAKE_MSVC_ARCH}/vcredist_${CMAKE_MSVC_ARCH}.exe
       PATHS

 [HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0;InstallDir]/../../SDK/v2.0/BootStrapper/Packages/

 [HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\VisualStudio\\8.0;InstallDir]/../../SDK/v2.0/BootStrapper/Packages/
       )
     GET_FILENAME_COMPONENT(vcredist_name ${MSVC_REDIST} NAME)
     INSTALL(PROGRAMS ${MSVC_REDIST} COMPONENT Runtime DESTINATION bin)
     SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS ExecWait
 '\\\$INSTDIRbin${vcredist_name}\\\')
   ENDIF(MSVC80)



This worked for me after adding these lines before the above solution:

IF(CMAKE_CL_64)
 SET(CMAKE_MSVC_ARCH amd64)
   ELSE(CMAKE_CL_64)
 SET(CMAKE_MSVC_ARCH x86)
ENDIF(CMAKE_CL_64)

John
___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] InstallRequiredSystemLibraries.cmake and Redistribution of the shared C runtime component in Visual C++

2009-08-20 Thread Mike Jackson
On Thu, Aug 20, 2009 at 4:06 PM, James Biglerjamesbig...@gmail.com wrote:
 On Thu, Aug 20, 2009 at 1:51 PM, Mike Jackson mike.jack...@bluequartz.net
 wrote:

 On Thu, Aug 6, 2009 at 3:12 PM, Marcus D. Hanwellmar...@cryos.org wrote:
  James Bigler wrote:
  On Thu, Aug 6, 2009 at 12:10 PM, Bill Hoffman
  bill.hoff...@kitware.com mailto:bill.hoff...@kitware.com wrote:
 
      James Bigler wrote:
 
 
          Well, I was using VS 2005 64 bit with SP 1.  I wonder if there
          is a similar bug or if there is something else going wrong
          such as what Marcus Hanwall described.
 
 
      I am not sure what your issue is, but I know I have done this many
      times...
 
      -Bill
 
 
  I checked the version numbers of the DLLs, and even checked the md5sum
  and everything was the same between the dlls in the WinSxS folder and
  the ones I'm distributing.  It failed on two clean systems without the
  vcredist install.  I guess I'll run vcredist as Microsoft suggests and
  see if I can trouble shoot later.
 
  It is a rather perplexing problem.
 
  The link Bill supplied has all of the relevant information. In the
  Community Discussion section the second comment provides three
  possible workarounds. We are using the third of those when distributing
  Avogadro packages for Windows. The version mismatch in the manifests of
  the compiled executables and the manifest with the redistributable DLLs
  is what causes the issue.
 
  It seems that MS has no intention of fixing this issue. We have a clean
  VM where we test new installers, as occasionally this change was lost
  and the DLLs failed to load.
 
  Marcus

 Ok, so I too have run into this problem. What is anyone doing to get
 around this issue?

 I would really like a solution that did NOT involve editing anything
 from VC++ install as I would have to pass those instructions on to the
 next Developer. Clinton's posting about including the VCRedist.exe in
 the NSIS installer is OK by me. Is that what everyone else is doing?

 Thanks
 --
 Mike Jackson

 I ended up linking against the static CRT library (/MT), but that's not for
 everyone.
 http://msdn.microsoft.com/en-us/library/ms235460.aspx

 My next choice was going to be including the VCRedist.exe in the installer.
 For some of the other projects at my company, this is what they do.

 Here are some links I've been consulting on the subject of CRT library
 (conflicts with multiple CRTs).
 http://stackoverflow.com/questions/1075050/howto-multiple-versions-of-msvcrt9-as-private-sxs-assemblies
 http://tedwvc.wordpress.com/2009/08/10/avoiding-problems-with-vc2005-sp1-security-update-kb971090/
 http://stackoverflow.com/questions/1265792/visual-studio-2005-security-updates-and-crt-dll-versions-in-manifest

 James


thanks for the links. Now my head is really spinning. I have VC2008
Express installed on WinXP SP3 and evidently the vcredist.exe is NOT
included with that version? At least I can not find it.  So I guess I
have to download it from MSDN (duh) and then manually set all the
paths and all that in oder to have cmake/NSIS find and include it in
the installer. And I thought deploying on OS X was a bit obtuse...

Mike
___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] InstallRequiredSystemLibraries.cmake and Redistribution of the shared C runtime component in Visual C++

2009-08-20 Thread David Cole
Hold on there...

The Express editions are not meant to build redistributable binaries.
They're meant for personal use: i.e. -- each user compiles his own code. I'm
pretty sure it's a violation of the Express edition license agreement to
build binaries for other people. You need at least the Standard edition of
VS to get that capability.


HTH,
David


On Thu, Aug 20, 2009 at 5:11 PM, Mike Jackson
mike.jack...@bluequartz.netwrote:

 On Thu, Aug 20, 2009 at 4:06 PM, James Biglerjamesbig...@gmail.com
 wrote:
  On Thu, Aug 20, 2009 at 1:51 PM, Mike Jackson 
 mike.jack...@bluequartz.net
  wrote:
 
  On Thu, Aug 6, 2009 at 3:12 PM, Marcus D. Hanwellmar...@cryos.org
 wrote:
   James Bigler wrote:
   On Thu, Aug 6, 2009 at 12:10 PM, Bill Hoffman
   bill.hoff...@kitware.com mailto:bill.hoff...@kitware.com wrote:
  
   James Bigler wrote:
  
  
   Well, I was using VS 2005 64 bit with SP 1.  I wonder if
 there
   is a similar bug or if there is something else going wrong
   such as what Marcus Hanwall described.
  
  
   I am not sure what your issue is, but I know I have done this
 many
   times...
  
   -Bill
  
  
   I checked the version numbers of the DLLs, and even checked the
 md5sum
   and everything was the same between the dlls in the WinSxS folder and
   the ones I'm distributing.  It failed on two clean systems without
 the
   vcredist install.  I guess I'll run vcredist as Microsoft suggests
 and
   see if I can trouble shoot later.
  
   It is a rather perplexing problem.
  
   The link Bill supplied has all of the relevant information. In the
   Community Discussion section the second comment provides three
   possible workarounds. We are using the third of those when
 distributing
   Avogadro packages for Windows. The version mismatch in the manifests
 of
   the compiled executables and the manifest with the redistributable
 DLLs
   is what causes the issue.
  
   It seems that MS has no intention of fixing this issue. We have a
 clean
   VM where we test new installers, as occasionally this change was lost
   and the DLLs failed to load.
  
   Marcus
 
  Ok, so I too have run into this problem. What is anyone doing to get
  around this issue?
 
  I would really like a solution that did NOT involve editing anything
  from VC++ install as I would have to pass those instructions on to the
  next Developer. Clinton's posting about including the VCRedist.exe in
  the NSIS installer is OK by me. Is that what everyone else is doing?
 
  Thanks
  --
  Mike Jackson
 
  I ended up linking against the static CRT library (/MT), but that's not
 for
  everyone.
  http://msdn.microsoft.com/en-us/library/ms235460.aspx
 
  My next choice was going to be including the VCRedist.exe in the
 installer.
  For some of the other projects at my company, this is what they do.
 
  Here are some links I've been consulting on the subject of CRT library
  (conflicts with multiple CRTs).
 
 http://stackoverflow.com/questions/1075050/howto-multiple-versions-of-msvcrt9-as-private-sxs-assemblies
 
 http://tedwvc.wordpress.com/2009/08/10/avoiding-problems-with-vc2005-sp1-security-update-kb971090/
 
 http://stackoverflow.com/questions/1265792/visual-studio-2005-security-updates-and-crt-dll-versions-in-manifest
 
  James
 

 thanks for the links. Now my head is really spinning. I have VC2008
 Express installed on WinXP SP3 and evidently the vcredist.exe is NOT
 included with that version? At least I can not find it.  So I guess I
 have to download it from MSDN (duh) and then manually set all the
 paths and all that in oder to have cmake/NSIS find and include it in
 the installer. And I thought deploying on OS X was a bit obtuse...

 Mike
 ___
 Powered by www.kitware.com

 Visit other Kitware open-source projects at
 http://www.kitware.com/opensource/opensource.html

 Please keep messages on-topic and check the CMake FAQ at:
 http://www.cmake.org/Wiki/CMake_FAQ

 Follow this link to subscribe/unsubscribe:
 http://www.cmake.org/mailman/listinfo/cmake

___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Re: [CMake] InstallRequiredSystemLibraries.cmake and Redistribution of the shared C runtime component in Visual C++

2009-08-20 Thread j s
I don't believe that to be the case with Visual Express 2008.  I don't know
how previous editions work.
**
*Can I use Express Editions for commercial use?*

   1.

   Yes, there are no licensing restrictions for applications built using
   Visual Studio Express Editions.

http://www.microsoft.com/express/support/faq/

Juan



On Thu, Aug 20, 2009 at 4:33 PM, David Cole david.c...@kitware.com wrote:

 Hold on there...

 The Express editions are not meant to build redistributable binaries.
 They're meant for personal use: i.e. -- each user compiles his own code. I'm
 pretty sure it's a violation of the Express edition license agreement to
 build binaries for other people. You need at least the Standard edition of
 VS to get that capability.


 HTH,
 David


 On Thu, Aug 20, 2009 at 5:11 PM, Mike Jackson mike.jack...@bluequartz.net
  wrote:

  On Thu, Aug 20, 2009 at 4:06 PM, James Biglerjamesbig...@gmail.com
 wrote:
  On Thu, Aug 20, 2009 at 1:51 PM, Mike Jackson 
 mike.jack...@bluequartz.net
  wrote:
 
  On Thu, Aug 6, 2009 at 3:12 PM, Marcus D. Hanwellmar...@cryos.org
 wrote:
   James Bigler wrote:
   On Thu, Aug 6, 2009 at 12:10 PM, Bill Hoffman
   bill.hoff...@kitware.com mailto:bill.hoff...@kitware.com wrote:
  
   James Bigler wrote:
  
  
   Well, I was using VS 2005 64 bit with SP 1.  I wonder if
 there
   is a similar bug or if there is something else going wrong
   such as what Marcus Hanwall described.
  
  
   I am not sure what your issue is, but I know I have done this
 many
   times...
  
   -Bill
  
  
   I checked the version numbers of the DLLs, and even checked the
 md5sum
   and everything was the same between the dlls in the WinSxS folder
 and
   the ones I'm distributing.  It failed on two clean systems without
 the
   vcredist install.  I guess I'll run vcredist as Microsoft suggests
 and
   see if I can trouble shoot later.
  
   It is a rather perplexing problem.
  
   The link Bill supplied has all of the relevant information. In the
   Community Discussion section the second comment provides three
   possible workarounds. We are using the third of those when
 distributing
   Avogadro packages for Windows. The version mismatch in the manifests
 of
   the compiled executables and the manifest with the redistributable
 DLLs
   is what causes the issue.
  
   It seems that MS has no intention of fixing this issue. We have a
 clean
   VM where we test new installers, as occasionally this change was lost
   and the DLLs failed to load.
  
   Marcus
 
  Ok, so I too have run into this problem. What is anyone doing to get
  around this issue?
 
  I would really like a solution that did NOT involve editing anything
  from VC++ install as I would have to pass those instructions on to the
  next Developer. Clinton's posting about including the VCRedist.exe in
  the NSIS installer is OK by me. Is that what everyone else is doing?
 
  Thanks
  --
  Mike Jackson
 
  I ended up linking against the static CRT library (/MT), but that's not
 for
  everyone.
  http://msdn.microsoft.com/en-us/library/ms235460.aspx
 
  My next choice was going to be including the VCRedist.exe in the
 installer.
  For some of the other projects at my company, this is what they do.
 
  Here are some links I've been consulting on the subject of CRT library
  (conflicts with multiple CRTs).
 
 http://stackoverflow.com/questions/1075050/howto-multiple-versions-of-msvcrt9-as-private-sxs-assemblies
 
 http://tedwvc.wordpress.com/2009/08/10/avoiding-problems-with-vc2005-sp1-security-update-kb971090/
 
 http://stackoverflow.com/questions/1265792/visual-studio-2005-security-updates-and-crt-dll-versions-in-manifest
 
  James
 

 thanks for the links. Now my head is really spinning. I have VC2008
 Express installed on WinXP SP3 and evidently the vcredist.exe is NOT
 included with that version? At least I can not find it.  So I guess I
 have to download it from MSDN (duh) and then manually set all the
 paths and all that in oder to have cmake/NSIS find and include it in
 the installer. And I thought deploying on OS X was a bit obtuse...

 Mike
  ___
 Powered by www.kitware.com

 Visit other Kitware open-source projects at
 http://www.kitware.com/opensource/opensource.html

 Please keep messages on-topic and check the CMake FAQ at:
 http://www.cmake.org/Wiki/CMake_FAQ

 Follow this link to subscribe/unsubscribe:
 http://www.cmake.org/mailman/listinfo/cmake



 ___
 Powered by www.kitware.com

 Visit other Kitware open-source projects at
 http://www.kitware.com/opensource/opensource.html

 Please keep messages on-topic and check the CMake FAQ at:
 http://www.cmake.org/Wiki/CMake_FAQ

 Follow this link to subscribe/unsubscribe:
 http://www.cmake.org/mailman/listinfo/cmake

___
Powered by www.kitware.com

Visit other Kitware open-source projects at 

Re: [CMake] InstallRequiredSystemLibraries.cmake and Redistribution of the shared C runtime component in Visual C++

2009-08-20 Thread David Cole
Thanks for the info That's what I get for expressing what I think are
facts from my flawed human memory. (Perhaps it was a fact with Express 2005
editions when I first read the licenses long ago...)

Sorry for the blip,
David


On Thu, Aug 20, 2009 at 5:40 PM, j s j.s4...@gmail.com wrote:

 I don't believe that to be the case with Visual Express 2008.  I don't know
 how previous editions work.
 **
 *Can I use Express Editions for commercial use?*

1.

Yes, there are no licensing restrictions for applications built using
Visual Studio Express Editions.

 http://www.microsoft.com/express/support/faq/

 Juan



 On Thu, Aug 20, 2009 at 4:33 PM, David Cole david.c...@kitware.comwrote:

 Hold on there...

 The Express editions are not meant to build redistributable binaries.
 They're meant for personal use: i.e. -- each user compiles his own code. I'm
 pretty sure it's a violation of the Express edition license agreement to
 build binaries for other people. You need at least the Standard edition of
 VS to get that capability.


 HTH,
 David


 On Thu, Aug 20, 2009 at 5:11 PM, Mike Jackson 
 mike.jack...@bluequartz.net wrote:

  On Thu, Aug 20, 2009 at 4:06 PM, James Biglerjamesbig...@gmail.com
 wrote:
  On Thu, Aug 20, 2009 at 1:51 PM, Mike Jackson 
 mike.jack...@bluequartz.net
  wrote:
 
  On Thu, Aug 6, 2009 at 3:12 PM, Marcus D. Hanwellmar...@cryos.org
 wrote:
   James Bigler wrote:
   On Thu, Aug 6, 2009 at 12:10 PM, Bill Hoffman
   bill.hoff...@kitware.com mailto:bill.hoff...@kitware.com
 wrote:
  
   James Bigler wrote:
  
  
   Well, I was using VS 2005 64 bit with SP 1.  I wonder if
 there
   is a similar bug or if there is something else going wrong
   such as what Marcus Hanwall described.
  
  
   I am not sure what your issue is, but I know I have done this
 many
   times...
  
   -Bill
  
  
   I checked the version numbers of the DLLs, and even checked the
 md5sum
   and everything was the same between the dlls in the WinSxS folder
 and
   the ones I'm distributing.  It failed on two clean systems without
 the
   vcredist install.  I guess I'll run vcredist as Microsoft suggests
 and
   see if I can trouble shoot later.
  
   It is a rather perplexing problem.
  
   The link Bill supplied has all of the relevant information. In the
   Community Discussion section the second comment provides three
   possible workarounds. We are using the third of those when
 distributing
   Avogadro packages for Windows. The version mismatch in the manifests
 of
   the compiled executables and the manifest with the redistributable
 DLLs
   is what causes the issue.
  
   It seems that MS has no intention of fixing this issue. We have a
 clean
   VM where we test new installers, as occasionally this change was
 lost
   and the DLLs failed to load.
  
   Marcus
 
  Ok, so I too have run into this problem. What is anyone doing to get
  around this issue?
 
  I would really like a solution that did NOT involve editing anything
  from VC++ install as I would have to pass those instructions on to the
  next Developer. Clinton's posting about including the VCRedist.exe in
  the NSIS installer is OK by me. Is that what everyone else is doing?
 
  Thanks
  --
  Mike Jackson
 
  I ended up linking against the static CRT library (/MT), but that's not
 for
  everyone.
  http://msdn.microsoft.com/en-us/library/ms235460.aspx
 
  My next choice was going to be including the VCRedist.exe in the
 installer.
  For some of the other projects at my company, this is what they do.
 
  Here are some links I've been consulting on the subject of CRT library
  (conflicts with multiple CRTs).
 
 http://stackoverflow.com/questions/1075050/howto-multiple-versions-of-msvcrt9-as-private-sxs-assemblies
 
 http://tedwvc.wordpress.com/2009/08/10/avoiding-problems-with-vc2005-sp1-security-update-kb971090/
 
 http://stackoverflow.com/questions/1265792/visual-studio-2005-security-updates-and-crt-dll-versions-in-manifest
 
  James
 

 thanks for the links. Now my head is really spinning. I have VC2008
 Express installed on WinXP SP3 and evidently the vcredist.exe is NOT
 included with that version? At least I can not find it.  So I guess I
 have to download it from MSDN (duh) and then manually set all the
 paths and all that in oder to have cmake/NSIS find and include it in
 the installer. And I thought deploying on OS X was a bit obtuse...

 Mike
  ___
 Powered by www.kitware.com

 Visit other Kitware open-source projects at
 http://www.kitware.com/opensource/opensource.html

 Please keep messages on-topic and check the CMake FAQ at:
 http://www.cmake.org/Wiki/CMake_FAQ

 Follow this link to subscribe/unsubscribe:
 http://www.cmake.org/mailman/listinfo/cmake



 ___
 Powered by www.kitware.com

 Visit other Kitware open-source projects at
 http://www.kitware.com/opensource/opensource.html

 Please keep 

Re: [CMake] InstallRequiredSystemLibraries.cmake and Redistribution of the shared C runtime component in Visual C++

2009-08-20 Thread Mike Jackson
So I created the proper paths within the VCExpress installation and
placed the downloaded vcredist_x86.exe file in there. CMake found it.
NSIS found it and included it. I ran my new installer on a clean XP
SP3 machine. Verified the vcredist.exe actually ran also. Tried to
launch an application and I still get an error that says the
application is not configured correctly.

Still lost and Confused.

Mike

On Thu, Aug 20, 2009 at 5:40 PM, j sj.s4...@gmail.com wrote:
 I don't believe that to be the case with Visual Express 2008.  I don't know
 how previous editions work.

 Can I use Express Editions for commercial use?

 Yes, there are no licensing restrictions for applications built using Visual
 Studio Express Editions.

 http://www.microsoft.com/express/support/faq/

 Juan



 On Thu, Aug 20, 2009 at 4:33 PM, David Cole david.c...@kitware.com wrote:

 Hold on there...
 The Express editions are not meant to build redistributable binaries.
 They're meant for personal use: i.e. -- each user compiles his own code. I'm
 pretty sure it's a violation of the Express edition license agreement to
 build binaries for other people. You need at least the Standard edition of
 VS to get that capability.


 HTH,
 David

 On Thu, Aug 20, 2009 at 5:11 PM, Mike Jackson
 mike.jack...@bluequartz.net wrote:

 On Thu, Aug 20, 2009 at 4:06 PM, James Biglerjamesbig...@gmail.com
 wrote:
  On Thu, Aug 20, 2009 at 1:51 PM, Mike Jackson
  mike.jack...@bluequartz.net
  wrote:
 
  On Thu, Aug 6, 2009 at 3:12 PM, Marcus D. Hanwellmar...@cryos.org
  wrote:
   James Bigler wrote:
   On Thu, Aug 6, 2009 at 12:10 PM, Bill Hoffman
   bill.hoff...@kitware.com mailto:bill.hoff...@kitware.com wrote:
  
       James Bigler wrote:
  
  
           Well, I was using VS 2005 64 bit with SP 1.  I wonder if
   there
           is a similar bug or if there is something else going wrong
           such as what Marcus Hanwall described.
  
  
       I am not sure what your issue is, but I know I have done this
   many
       times...
  
       -Bill
  
  
   I checked the version numbers of the DLLs, and even checked the
   md5sum
   and everything was the same between the dlls in the WinSxS folder
   and
   the ones I'm distributing.  It failed on two clean systems without
   the
   vcredist install.  I guess I'll run vcredist as Microsoft suggests
   and
   see if I can trouble shoot later.
  
   It is a rather perplexing problem.
  
   The link Bill supplied has all of the relevant information. In the
   Community Discussion section the second comment provides three
   possible workarounds. We are using the third of those when
   distributing
   Avogadro packages for Windows. The version mismatch in the manifests
   of
   the compiled executables and the manifest with the redistributable
   DLLs
   is what causes the issue.
  
   It seems that MS has no intention of fixing this issue. We have a
   clean
   VM where we test new installers, as occasionally this change was
   lost
   and the DLLs failed to load.
  
   Marcus
 
  Ok, so I too have run into this problem. What is anyone doing to get
  around this issue?
 
  I would really like a solution that did NOT involve editing anything
  from VC++ install as I would have to pass those instructions on to the
  next Developer. Clinton's posting about including the VCRedist.exe in
  the NSIS installer is OK by me. Is that what everyone else is doing?
 
  Thanks
  --
  Mike Jackson
 
  I ended up linking against the static CRT library (/MT), but that's not
  for
  everyone.
  http://msdn.microsoft.com/en-us/library/ms235460.aspx
 
  My next choice was going to be including the VCRedist.exe in the
  installer.
  For some of the other projects at my company, this is what they do.
 
  Here are some links I've been consulting on the subject of CRT library
  (conflicts with multiple CRTs).
 
  http://stackoverflow.com/questions/1075050/howto-multiple-versions-of-msvcrt9-as-private-sxs-assemblies
 
  http://tedwvc.wordpress.com/2009/08/10/avoiding-problems-with-vc2005-sp1-security-update-kb971090/
 
  http://stackoverflow.com/questions/1265792/visual-studio-2005-security-updates-and-crt-dll-versions-in-manifest
 
  James
 

 thanks for the links. Now my head is really spinning. I have VC2008
 Express installed on WinXP SP3 and evidently the vcredist.exe is NOT
 included with that version? At least I can not find it.  So I guess I
 have to download it from MSDN (duh) and then manually set all the
 paths and all that in oder to have cmake/NSIS find and include it in
 the installer. And I thought deploying on OS X was a bit obtuse...

 Mike
 ___
___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:

Re: [CMake] InstallRequiredSystemLibraries.cmake and Redistribution of the shared C runtime component in Visual C++

2009-08-20 Thread j s
Did you try the dependency walker (available via google) to see if there may
be any dll's you need to have in the same directory as the binary?

Regards,

Juan

On Thu, Aug 20, 2009 at 5:03 PM, Mike Jackson
mike.jack...@bluequartz.netwrote:

 So I created the proper paths within the VCExpress installation and
 placed the downloaded vcredist_x86.exe file in there. CMake found it.
 NSIS found it and included it. I ran my new installer on a clean XP
 SP3 machine. Verified the vcredist.exe actually ran also. Tried to
 launch an application and I still get an error that says the
 application is not configured correctly.

 Still lost and Confused.

 Mike

 On Thu, Aug 20, 2009 at 5:40 PM, j sj.s4...@gmail.com wrote:
  I don't believe that to be the case with Visual Express 2008.  I don't
 know
  how previous editions work.
 
  Can I use Express Editions for commercial use?
 
  Yes, there are no licensing restrictions for applications built using
 Visual
  Studio Express Editions.
 
  http://www.microsoft.com/express/support/faq/
 
  Juan
 
 
 
  On Thu, Aug 20, 2009 at 4:33 PM, David Cole david.c...@kitware.com
 wrote:
 
  Hold on there...
  The Express editions are not meant to build redistributable binaries.
  They're meant for personal use: i.e. -- each user compiles his own code.
 I'm
  pretty sure it's a violation of the Express edition license agreement to
  build binaries for other people. You need at least the Standard
 edition of
  VS to get that capability.
 
 
  HTH,
  David
 
  On Thu, Aug 20, 2009 at 5:11 PM, Mike Jackson
  mike.jack...@bluequartz.net wrote:
 
  On Thu, Aug 20, 2009 at 4:06 PM, James Biglerjamesbig...@gmail.com
  wrote:
   On Thu, Aug 20, 2009 at 1:51 PM, Mike Jackson
   mike.jack...@bluequartz.net
   wrote:
  
   On Thu, Aug 6, 2009 at 3:12 PM, Marcus D. Hanwellmar...@cryos.org
   wrote:
James Bigler wrote:
On Thu, Aug 6, 2009 at 12:10 PM, Bill Hoffman
bill.hoff...@kitware.com mailto:bill.hoff...@kitware.com
 wrote:
   
James Bigler wrote:
   
   
Well, I was using VS 2005 64 bit with SP 1.  I wonder if
there
is a similar bug or if there is something else going
 wrong
such as what Marcus Hanwall described.
   
   
I am not sure what your issue is, but I know I have done this
many
times...
   
-Bill
   
   
I checked the version numbers of the DLLs, and even checked the
md5sum
and everything was the same between the dlls in the WinSxS folder
and
the ones I'm distributing.  It failed on two clean systems
 without
the
vcredist install.  I guess I'll run vcredist as Microsoft
 suggests
and
see if I can trouble shoot later.
   
It is a rather perplexing problem.
   
The link Bill supplied has all of the relevant information. In the
Community Discussion section the second comment provides three
possible workarounds. We are using the third of those when
distributing
Avogadro packages for Windows. The version mismatch in the
 manifests
of
the compiled executables and the manifest with the redistributable
DLLs
is what causes the issue.
   
It seems that MS has no intention of fixing this issue. We have a
clean
VM where we test new installers, as occasionally this change was
lost
and the DLLs failed to load.
   
Marcus
  
   Ok, so I too have run into this problem. What is anyone doing to get
   around this issue?
  
   I would really like a solution that did NOT involve editing anything
   from VC++ install as I would have to pass those instructions on to
 the
   next Developer. Clinton's posting about including the VCRedist.exe
 in
   the NSIS installer is OK by me. Is that what everyone else is doing?
  
   Thanks
   --
   Mike Jackson
  
   I ended up linking against the static CRT library (/MT), but that's
 not
   for
   everyone.
   http://msdn.microsoft.com/en-us/library/ms235460.aspx
  
   My next choice was going to be including the VCRedist.exe in the
   installer.
   For some of the other projects at my company, this is what they do.
  
   Here are some links I've been consulting on the subject of CRT
 library
   (conflicts with multiple CRTs).
  
  
 http://stackoverflow.com/questions/1075050/howto-multiple-versions-of-msvcrt9-as-private-sxs-assemblies
  
  
 http://tedwvc.wordpress.com/2009/08/10/avoiding-problems-with-vc2005-sp1-security-update-kb971090/
  
  
 http://stackoverflow.com/questions/1265792/visual-studio-2005-security-updates-and-crt-dll-versions-in-manifest
  
   James
  
 
  thanks for the links. Now my head is really spinning. I have VC2008
  Express installed on WinXP SP3 and evidently the vcredist.exe is NOT
  included with that version? At least I can not find it.  So I guess I
  have to download it from MSDN (duh) and then manually set all the
  paths and all that in oder to have cmake/NSIS find and include it in
  the installer. And I thought deploying on OS X was a bit 

Re: [CMake] InstallRequiredSystemLibraries.cmake and Redistribution of the shared C runtime component in Visual C++

2009-08-20 Thread Mike Jackson
Yep. First thing I have tried, and have been using all day. I think I
may have tracked part of the problem down to a few things.

1: vcredist_x86.exe - There are multiple versions of this (all with
the same file name). You have to make sure you download the correct
version. I have VCExpress 2008 SP1. I was downloading the one for
VCExpress 2008.

2: I think I have ITK built as Debug and I am trying a Release build
of my main application suite. We all know that Debug and Release
builds in Windows-Land do not get along.

Boost may be another unknown (bjam.. yeech..). Far as I know I told
bjam to use a dynamically linked c runtime.

Expat, HDF5, Tiff all are built as static libraries using CMake so the
default there is to use a dynamic linked c runtime. So I think those
libraries are OK.

My own intermediate library (MXADataModel) is also built as a static
library and using CMake. So should be the same as Expat, HDF5 and Tif
from above.

Does not seem to be a redistributable package for the Debug versions
of the C/C++ runtime libs. Bummer.

Qt 4.5.1 is built as DLL's so I am hoping that will not hinder me as
everything else is built as Static libraries (to try and avoid DLL
hell .. )

ITK is currently rebuilding which will take another hour or so. I'll
report back when that is complete maybe with some good
_
Mike Jackson  mike.jack...@bluequartz.net

On Thu, Aug 20, 2009 at 6:57 PM, j sj.s4...@gmail.com wrote:
 Did you try the dependency walker (available via google) to see if there may
 be any dll's you need to have in the same directory as the binary?

 Regards,

 Juan

 On Thu, Aug 20, 2009 at 5:03 PM, Mike Jackson mike.jack...@bluequartz.net
 wrote:

 So I created the proper paths within the VCExpress installation and
 placed the downloaded vcredist_x86.exe file in there. CMake found it.
 NSIS found it and included it. I ran my new installer on a clean XP
 SP3 machine. Verified the vcredist.exe actually ran also. Tried to
 launch an application and I still get an error that says the
 application is not configured correctly.

 Still lost and Confused.

 Mike

 On Thu, Aug 20, 2009 at 5:40 PM, j sj.s4...@gmail.com wrote:
  I don't believe that to be the case with Visual Express 2008.  I don't
  know
  how previous editions work.
 
  Can I use Express Editions for commercial use?
 
  Yes, there are no licensing restrictions for applications built using
  Visual
  Studio Express Editions.
 
  http://www.microsoft.com/express/support/faq/
 
  Juan
 
 
 
  On Thu, Aug 20, 2009 at 4:33 PM, David Cole david.c...@kitware.com
  wrote:
 
  Hold on there...
  The Express editions are not meant to build redistributable binaries.
  They're meant for personal use: i.e. -- each user compiles his own
  code. I'm
  pretty sure it's a violation of the Express edition license agreement
  to
  build binaries for other people. You need at least the Standard
  edition of
  VS to get that capability.
 
 
  HTH,
  David
 
  On Thu, Aug 20, 2009 at 5:11 PM, Mike Jackson
  mike.jack...@bluequartz.net wrote:
 
  On Thu, Aug 20, 2009 at 4:06 PM, James Biglerjamesbig...@gmail.com
  wrote:
   On Thu, Aug 20, 2009 at 1:51 PM, Mike Jackson
   mike.jack...@bluequartz.net
   wrote:
  
   On Thu, Aug 6, 2009 at 3:12 PM, Marcus D. Hanwellmar...@cryos.org
   wrote:
James Bigler wrote:
On Thu, Aug 6, 2009 at 12:10 PM, Bill Hoffman
bill.hoff...@kitware.com mailto:bill.hoff...@kitware.com
wrote:
   
    James Bigler wrote:
   
   
        Well, I was using VS 2005 64 bit with SP 1.  I wonder if
there
        is a similar bug or if there is something else going
wrong
        such as what Marcus Hanwall described.
   
   
    I am not sure what your issue is, but I know I have done
this
many
    times...
   
    -Bill
   
   
I checked the version numbers of the DLLs, and even checked the
md5sum
and everything was the same between the dlls in the WinSxS
folder
and
the ones I'm distributing.  It failed on two clean systems
without
the
vcredist install.  I guess I'll run vcredist as Microsoft
suggests
and
see if I can trouble shoot later.
   
It is a rather perplexing problem.
   
The link Bill supplied has all of the relevant information. In
the
Community Discussion section the second comment provides three
possible workarounds. We are using the third of those when
distributing
Avogadro packages for Windows. The version mismatch in the
manifests
of
the compiled executables and the manifest with the
redistributable
DLLs
is what causes the issue.
   
It seems that MS has no intention of fixing this issue. We have a
clean
VM where we test new installers, as occasionally this change was
lost
and the DLLs failed to load.
   
Marcus
  
   Ok, so I too have run into this problem. What is anyone doing to

Re: [CMake] InstallRequiredSystemLibraries.cmake and Redistribution of the shared C runtime component in Visual C++

2009-08-20 Thread Mike Jackson
OK. Turns out it was ITK being compiled in Debug mode and then trying
to link against it with a Release build.

On to some comments that might help others:

VCExpress 2008 SP1 does NOT come with VCRedist_x86.exe. You will need
to download the correct version.
VCExpress 2008:
http://www.microsoft.com/downloads/details.aspx?FamilyID=D5692CE4-ADAD-4000-ABFE-64628A267EF0displaylang=en

VCExpress 2008 SP1:
http://www.microsoft.com/downloads/details.aspx?familyid=A5C84275-3B97-4AB7-A40D-3802B2AF5FC2displaylang=en

Double and Triple check that all your projects and sub projects have
all been compiled the same way (Debug vs Release) and all with the
same settings for the c/c++ runtime libraries.

In order to re-use Clinton's code I had to create a few directories:
C:\Program Files\Microsoft Visual Studio
9.0\SDK\v3.5\BootStrapper\Packages\vcredist_x86

needs to be created (so that it matches the VS2005 paths).

Next I created a Macro:

macro(_FIND_MSVC_REDIST VCVERS)
  message(STATUS Looking for MSVC Redistributable Executable for MSVC
Version ${VCVERS})
  set(SDKVERS 2.0)
  if(${VCVERS} EQUAL 8)
set(SDKVERS 2.0)
  endif()
  if(${VCVERS} EQUAL 9)
set(SDKVERS 3.5)
  endif()
  IF(MSVC${VCVERS}0)
FIND_PROGRAM(MSVC_REDIST NAMES
vcredist_${CMAKE_MSVC_ARCH}/vcredist_${CMAKE_MSVC_ARCH}.exe
  PATHS
  
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VCExpress\\${VCVERS}.0;InstallDir]/../../SDK/v${SDKVERS}/BootStrapper/Packages/
  
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\${VCVERS}.0;InstallDir]/../../SDK/v${SDKVERS}/BootStrapper/Packages/
  
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\VisualStudio\\${VCVERS}.0;InstallDir]/../../SDK/v${SDKVERS}/BootStrapper/Packages/
  )
GET_FILENAME_COMPONENT(vcredist_name ${MSVC_REDIST} NAME)
INSTALL(PROGRAMS ${MSVC_REDIST} COMPONENT SupportFiles DESTINATION bin)
SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS ExecWait
'\\\$INSTDIRbin${vcredist_name}\\\')
message(STATUS MSVC_REDIST: ${MSVC_REDIST})
  ENDIF(MSVC${VCVERS}0)
endmacro()


The have the following:

if(MSVC80)
_FIND_MSVC_REDIST(8)
endif()

if(MSVC90)
_FIND_MSVC_REDIST(9)
endif()

I would like to add sometime in the future the correct command to run
the vcredist silently during the installation.

I think that is all. I would also like to thank everyone here for
their patience with me today. Also like to put in a word to the
VirtualBox guys at Sun. The make really nice FREE virtual machine
which allowed the quick testing of the installer on a Clean Windows
XP SP3 install. Thanks

_
Mike Jackson  mike.jack...@bluequartz.net

On Thu, Aug 20, 2009 at 7:05 PM, Mike
Jacksonmike.jack...@bluequartz.net wrote:
 Yep. First thing I have tried, and have been using all day. I think I
 may have tracked part of the problem down to a few things.

 1: vcredist_x86.exe - There are multiple versions of this (all with
 the same file name). You have to make sure you download the correct
 version. I have VCExpress 2008 SP1. I was downloading the one for
 VCExpress 2008.

 2: I think I have ITK built as Debug and I am trying a Release build
 of my main application suite. We all know that Debug and Release
 builds in Windows-Land do not get along.

 Boost may be another unknown (bjam.. yeech..). Far as I know I told
 bjam to use a dynamically linked c runtime.

 Expat, HDF5, Tiff all are built as static libraries using CMake so the
 default there is to use a dynamic linked c runtime. So I think those
 libraries are OK.

 My own intermediate library (MXADataModel) is also built as a static
 library and using CMake. So should be the same as Expat, HDF5 and Tif
 from above.

 Does not seem to be a redistributable package for the Debug versions
 of the C/C++ runtime libs. Bummer.

 Qt 4.5.1 is built as DLL's so I am hoping that will not hinder me as
 everything else is built as Static libraries (to try and avoid DLL
 hell .. )

 ITK is currently rebuilding which will take another hour or so. I'll
 report back when that is complete maybe with some good
 _
 Mike Jackson                  mike.jack...@bluequartz.net

 On Thu, Aug 20, 2009 at 6:57 PM, j sj.s4...@gmail.com wrote:
 Did you try the dependency walker (available via google) to see if there may
 be any dll's you need to have in the same directory as the binary?

 Regards,

 Juan

 On Thu, Aug 20, 2009 at 5:03 PM, Mike Jackson mike.jack...@bluequartz.net
 wrote:

 So I created the proper paths within the VCExpress installation and
 placed the downloaded vcredist_x86.exe file in there. CMake found it.
 NSIS found it and included it. I ran my new installer on a clean XP
 SP3 machine. Verified the vcredist.exe actually ran also. Tried to
 launch an application and I still get an error that says the
 application is not configured correctly.

 Still lost and Confused.

 Mike

 On Thu, Aug 20, 2009 at 5:40 PM, j 

[CMake] InstallRequiredSystemLibraries.cmake and Redistribution of the shared C runtime component in Visual C++

2009-08-06 Thread James Bigler
I've just been bitten hard by this issue (many hours of frustration while
attempting to run a demo application that should have Just Worked (TM) ).

According to this page:

http://support.microsoft.com/kb/326922


You should install these versions of the CRT on target computers by running
the Vcredist_x86.exe application that is included with Visual Studio.  This
is for the VS 2005 and 2008 versions of the C run-time libraries except for
Windows 2000 in which case you need to install them in the system32
directory.

I was dropping Msvcr80.dll and friends as per InstallRequiredSystemLibraries
next to the binaries with ineffectual results.  It was really strange,
because programs like Dependency Walker seemed to find them just fine.  It
was only after running vcredist_x86.exe that I was able to run my programs
properly.

I though I should tell everyone that this method of distributing Msvcr80.dll
and Msvcr90.dll next to your binaries is not supposed to work.  You must
install them into the Windows Side by Side location (WinSxS) using the
CRT.msm merge module or the vcredist_x86.exe that comes with Visual Studio.

Now to try and get CPack to tell NSIS run the vcredist_x86.exe program
during installation.

Note, that many people might get lucky and have already installed a product
that installed the right vcredist_x86.exe before installing your software.

James
___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Re: [CMake] InstallRequiredSystemLibraries.cmake and Redistribution of the shared C runtime component in Visual C++

2009-08-06 Thread Bill Hoffman

James Bigler wrote:
I've just been bitten hard by this issue (many hours of frustration 
while attempting to run a demo application that should have Just 
Worked (TM) ).


According to this page:

http://support.microsoft.com/kb/326922


You should install these versions of the CRT on target computers by 
running the Vcredist_x86.exe application that is included with Visual 
Studio.  This is for the VS 2005 and 2008 versions of the C run-time 
libraries except for Windows 2000 in which case you need to install them 
in the system32 directory.


I was dropping Msvcr80.dll and friends as per 
InstallRequiredSystemLibraries next to the binaries with ineffectual 
results.  It was really strange, because programs like Dependency Walker 
seemed to find them just fine.  It was only after running 
vcredist_x86.exe that I was able to run my programs properly.


I though I should tell everyone that this method of distributing 
Msvcr80.dll and Msvcr90.dll next to your binaries is not supposed to 
work.  You must install them into the Windows Side by Side location 
(WinSxS) using the CRT.msm merge module or the vcredist_x86.exe that 
comes with Visual Studio.


Now to try and get CPack to tell NSIS run the vcredist_x86.exe program 
during installation.


Note, that many people might get lucky and have already installed a 
product that installed the right vcredist_x86.exe before installing your 
software.




No this works fine However you may be running into this issue:


Visual Studio 9 SP 1 has a bug that will cause trouble with cpack.


You can read about it here:

https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=361682


Basically, when you compile an executable or dll with VS9 SP1 it embeds
manifest information into the the exe or dll that does not match the
version information in the manifest files that SP 1 provides for
redistribution.


We use the InstallRequiredSystemLibraries all the time without requiring 
vcredist_x86.exe to be run.


-Bill
___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] InstallRequiredSystemLibraries.cmake and Redistribution of the shared C runtime component in Visual C++

2009-08-06 Thread James Bigler
On Thu, Aug 6, 2009 at 11:55 AM, Bill Hoffman bill.hoff...@kitware.comwrote:

 James Bigler wrote:

 I've just been bitten hard by this issue (many hours of frustration while
 attempting to run a demo application that should have Just Worked (TM) ).

 According to this page:

 http://support.microsoft.com/kb/326922


 You should install these versions of the CRT on target computers by
 running the Vcredist_x86.exe application that is included with Visual
 Studio.  This is for the VS 2005 and 2008 versions of the C run-time
 libraries except for Windows 2000 in which case you need to install them in
 the system32 directory.

 I was dropping Msvcr80.dll and friends as per
 InstallRequiredSystemLibraries next to the binaries with ineffectual
 results.  It was really strange, because programs like Dependency Walker
 seemed to find them just fine.  It was only after running vcredist_x86.exe
 that I was able to run my programs properly.

 I though I should tell everyone that this method of distributing
 Msvcr80.dll and Msvcr90.dll next to your binaries is not supposed to work.
  You must install them into the Windows Side by Side location (WinSxS) using
 the CRT.msm merge module or the vcredist_x86.exe that comes with Visual
 Studio.

 Now to try and get CPack to tell NSIS run the vcredist_x86.exe program
 during installation.

 Note, that many people might get lucky and have already installed a
 product that installed the right vcredist_x86.exe before installing your
 software.


 No this works fine However you may be running into this issue:

 
 Visual Studio 9 SP 1 has a bug that will cause trouble with cpack.


 You can read about it here:


 https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=361682


 Basically, when you compile an executable or dll with VS9 SP1 it embeds
 manifest information into the the exe or dll that does not match the
 version information in the manifest files that SP 1 provides for
 redistribution.
 

 We use the InstallRequiredSystemLibraries all the time without requiring
 vcredist_x86.exe to be run.

 -Bill


Well, I was using VS 2005 64 bit with SP 1.  I wonder if there is a similar
bug or if there is something else going wrong such as what Marcus Hanwall
described.

James
___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Re: [CMake] InstallRequiredSystemLibraries.cmake and Redistribution of the shared C runtime component in Visual C++

2009-08-06 Thread Clinton Stimpson

Bill Hoffman wrote:

James Bigler wrote:
I've just been bitten hard by this issue (many hours of frustration 
while attempting to run a demo application that should have Just 
Worked (TM) ).


According to this page:

http://support.microsoft.com/kb/326922


You should install these versions of the CRT on target computers by 
running the Vcredist_x86.exe application that is included with Visual 
Studio.  This is for the VS 2005 and 2008 versions of the C run-time 
libraries except for Windows 2000 in which case you need to install 
them in the system32 directory.


I was dropping Msvcr80.dll and friends as per 
InstallRequiredSystemLibraries next to the binaries with ineffectual 
results.  It was really strange, because programs like Dependency 
Walker seemed to find them just fine.  It was only after running 
vcredist_x86.exe that I was able to run my programs properly.


I though I should tell everyone that this method of distributing 
Msvcr80.dll and Msvcr90.dll next to your binaries is not supposed to 
work.  You must install them into the Windows Side by Side location 
(WinSxS) using the CRT.msm merge module or the vcredist_x86.exe that 
comes with Visual Studio.


Now to try and get CPack to tell NSIS run the vcredist_x86.exe 
program during installation.


Note, that many people might get lucky and have already installed a 
product that installed the right vcredist_x86.exe before installing 
your software.




No this works fine However you may be running into this issue:


Visual Studio 9 SP 1 has a bug that will cause trouble with cpack.


You can read about it here:

https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=361682 




Basically, when you compile an executable or dll with VS9 SP1 it embeds
manifest information into the the exe or dll that does not match the
version information in the manifest files that SP 1 provides for
redistribution.


We use the InstallRequiredSystemLibraries all the time without 
requiring vcredist_x86.exe to be run.


There are some cases it doesn't work (3rd party libraries you can't 
compile yourself).
I don't have two installs of the same Visual Studio versions with 
different service packs, so, here's what I do.


   IF(MSVC80)
 FIND_PROGRAM(MSVC_REDIST NAMES 
vcredist_${CMAKE_MSVC_ARCH}/vcredist_${CMAKE_MSVC_ARCH}.exe

   PATHS
   
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\VisualStudio\\8.0;InstallDir]/../../SDK/v2.0/BootStrapper/Packages/
   
[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\Microsoft\\VisualStudio\\8.0;InstallDir]/../../SDK/v2.0/BootStrapper/Packages/

   )
 GET_FILENAME_COMPONENT(vcredist_name ${MSVC_REDIST} NAME)
 INSTALL(PROGRAMS ${MSVC_REDIST} COMPONENT Runtime DESTINATION bin)
 SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS ExecWait 
'\\\$INSTDIRbin${vcredist_name}\\\')

   ENDIF(MSVC80)


Clint

___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] InstallRequiredSystemLibraries.cmake and Redistribution of the shared C runtime component in Visual C++

2009-08-06 Thread Bill Hoffman

James Bigler wrote:



Well, I was using VS 2005 64 bit with SP 1.  I wonder if there is a 
similar bug or if there is something else going wrong such as what 
Marcus Hanwall described.




I am not sure what your issue is, but I know I have done this many 
times...


-Bill
___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] InstallRequiredSystemLibraries.cmake and Redistribution of the shared C runtime component in Visual C++

2009-08-06 Thread Marcus D. Hanwell
James Bigler wrote:
 I've just been bitten hard by this issue (many hours of frustration
 while attempting to run a demo application that should have Just
 Worked (TM) ).

 According to this page:

 http://support.microsoft.com/kb/326922


 You should install these versions of the CRT on target computers by
 running the Vcredist_x86.exe application that is included with Visual
 Studio.  This is for the VS 2005 and 2008 versions of the C run-time
 libraries except for Windows 2000 in which case you need to install
 them in the system32 directory.

I hit this with Avogadro development, and at the time from my searching
it appeared that this is due to the version numbers being incorrect in
the manifest that MS distributes with the DLLs in question. By editing
the manifest for the DLLs they would load as expected on XP and Vista
hosts. This seems to work, and so I edited the manifest in the
redistributable folder and we have been using that ever since.


 I was dropping Msvcr80.dll and friends as per
 InstallRequiredSystemLibraries next to the binaries with ineffectual
 results.  It was really strange, because programs like Dependency
 Walker seemed to find them just fine.  It was only after running
 vcredist_x86.exe that I was able to run my programs properly.

I am sure there are people on this list who know better than I, but I
think this is because the version number in the manifest MS supplies
with the redistributable DLLs is incorrect. Changing this version fixed
it for me, but did feel a little hackish. I would be interested in what
the best practice is. Currently we can run our application from a flash
drive without installing on a clean system, which is a feature I would
also like to retain.


 I though I should tell everyone that this method of distributing
 Msvcr80.dll and Msvcr90.dll next to your binaries is not supposed to
 work.  You must install them into the Windows Side by Side location
 (WinSxS) using the CRT.msm merge module or the vcredist_x86.exe that
 comes with Visual Studio.

 Now to try and get CPack to tell NSIS run the vcredist_x86.exe program
 during installation.

 Note, that many people might get lucky and have already installed a
 product that installed the right vcredist_x86.exe before installing
 your software.

I would be interested in how others have solved this issue. I like our
current solution and I think several Kitware projects use a similar
mechanism.

Marcus
___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake


Re: [CMake] InstallRequiredSystemLibraries.cmake and Redistribution of the shared C runtime component in Visual C++

2009-08-06 Thread James Bigler
On Thu, Aug 6, 2009 at 12:10 PM, Bill Hoffman bill.hoff...@kitware.comwrote:

 James Bigler wrote:


 Well, I was using VS 2005 64 bit with SP 1.  I wonder if there is a
 similar bug or if there is something else going wrong such as what Marcus
 Hanwall described.


 I am not sure what your issue is, but I know I have done this many times...

 -Bill


I checked the version numbers of the DLLs, and even checked the md5sum and
everything was the same between the dlls in the WinSxS folder and the ones
I'm distributing.  It failed on two clean systems without the vcredist
install.  I guess I'll run vcredist as Microsoft suggests and see if I can
trouble shoot later.

It is a rather perplexing problem.

Thanks,
James
___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Re: [CMake] InstallRequiredSystemLibraries.cmake and Redistribution of the shared C runtime component in Visual C++

2009-08-06 Thread Marcus D. Hanwell
James Bigler wrote:
 On Thu, Aug 6, 2009 at 12:10 PM, Bill Hoffman
 bill.hoff...@kitware.com mailto:bill.hoff...@kitware.com wrote:

 James Bigler wrote:


 Well, I was using VS 2005 64 bit with SP 1.  I wonder if there
 is a similar bug or if there is something else going wrong
 such as what Marcus Hanwall described.


 I am not sure what your issue is, but I know I have done this many
 times...

 -Bill


 I checked the version numbers of the DLLs, and even checked the md5sum
 and everything was the same between the dlls in the WinSxS folder and
 the ones I'm distributing.  It failed on two clean systems without the
 vcredist install.  I guess I'll run vcredist as Microsoft suggests and
 see if I can trouble shoot later.

 It is a rather perplexing problem.

The link Bill supplied has all of the relevant information. In the
Community Discussion section the second comment provides three
possible workarounds. We are using the third of those when distributing
Avogadro packages for Windows. The version mismatch in the manifests of
the compiled executables and the manifest with the redistributable DLLs
is what causes the issue.

It seems that MS has no intention of fixing this issue. We have a clean
VM where we test new installers, as occasionally this change was lost
and the DLLs failed to load.

Marcus
___
Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake