View Issue Details [ Jump to Notes ] | [ Print ] | ||||||||
ID | Project | Category | View Status | Date Submitted | Last Update | ||||
0009158 | CMake | Modules | public | 2009-06-16 04:35 | 2010-08-11 23:35 | ||||
Reporter | Nils Gladitz | ||||||||
Assigned To | Philip Lowman | ||||||||
Priority | normal | Severity | minor | Reproducibility | always | ||||
Status | closed | Resolution | fixed | ||||||
Platform | OS | OS Version | |||||||
Product Version | CMake-2-6 | ||||||||
Target Version | Fixed in Version | ||||||||
Summary | 0009158: FindBoost.cmake does not work properly with nmake and icl | ||||||||
Description | CC and CXX are set to icl within the C++ Build Environment provided by the Intel compiler (v11) used with Visual Studio 2005. CMake is at version 2.6.4. I use the NMake Makefiles generator. 1. FindBoost.cmake currently detects the boost compiler as -vc80 before it can get to the icl detection. Doing the icl detection first solves that problem for me. 2. FindBoost.cmake (with icl detection fixed) can find the static release libraries but not the static debug libraries. The Module looks for e.g. libboost_thread-iw-mt-sd-1_38 but the installed library is named libboost_thread-iw-mt-gd-1_38. 3. For MSVC Boost_USE_STATIC_LIBS should be the default since the libraries used for automatic linking are static by default. In my boost install only static libraries are available and FindBoost.cmake tries to locate the dynamic libraries per default. Resulting in the libraries not being found even though they are neither used nor required with the automatic linking default. | ||||||||
Tags | No tags attached. | ||||||||
Attached Files | FindBoostVS2005_ICL.patch [^] (1,269 bytes) 2009-07-20 03:53 [Show Content]
boost_1_38_intel_lib_listing.txt [^] (2,956 bytes) 2009-07-20 04:03 [Show Content] FindBoost.cmake [^] (39,896 bytes) 2009-09-17 23:25 | ||||||||
Relationships | |
Relationships |
Notes | |
(0016904) Philip Lowman (developer) 2009-07-18 01:40 |
Hello, Sorry nobody has looked at this bug report yet. Ok, #1 seems like an easy enough fix. If you could attach a patched version that works for you though it would make my life slightly easier because I wouldn't have to bother you to test or assume it works. 0000003: I agree with you but we can't change it now as it would change existing behavior. There are projects in the wild that use boost DLLs and disable auto-linking. 0000002, Can you provide some more information? What are all of the library filenames starting with "libboost_thread-iw" available in your install? Which one should it be picking for your Intel compiler for each case? Thanks |
(0016911) Nils Gladitz (developer) 2009-07-20 03:59 |
I tried reproducing the first problem with the NMake generator this morning without success. I think I inadvertently used the "Visual Studio 8 2005" generator (by not explicitly specifying one) while I was looking for a solution to the second problem. The Patch I attached should fix that though. Since there is no "Visual Studio + Intel" generator this allows me to use the Visual Studio generator (with CC/CXX set to icl) and convert the project files for intel afterwards. |
(0016912) Nils Gladitz (developer) 2009-07-20 04:16 |
I attached a listing of the lib directory of our intel boost 1.38.0 install. We only build the static libraries with the variants debug and release. This gives us 4 files per library: libboost_date_time-iw-mt-1_38.lib <- Release library found correctly by FindBoost.cmake libboost_date_time-iw-mt-gd-1_38.lib <- Debug library is not currently found These are probably just copies of the above: libboost_date_time-iw-mt-gd.lib libboost_date_time-iw-mt.lib |
(0017602) Philip Lowman (developer) 2009-09-17 23:26 |
Just got back to looking at this tonight. I believe the problem with 0000003 may be here. "g" is not appended to _boost_ABI_TAG unless we're on MSVC. IF(MSVC) SET (_boost_ABI_TAG "g") ENDIF(MSVC) Could you test the FindBoost attached and see if it works ok? It's your patch + the following for adding the "g". IF(MSVC OR "${CMAKE_CXX_COMPILER}" MATCHES "icl" OR "${CMAKE_CXX_COMPILER}" MATCHES "icpc") I have no idea why MSVC90 is true for you and MSVC is false though. That's kinda bizarre. It must have something to do with you using Visual Studio but not MSVC...? |
(0017671) Nils Gladitz (developer) 2009-09-21 11:09 |
Yes, thank you. That does seem to fix that issue for me. |
(0017688) Philip Lowman (developer) 2009-09-21 22:22 |
Checked the fix into CVS, should be in 2.8.0. Thanks for opening the bug report. Committer: Philip Lowman <philip@yhbt.com> /cvsroot/CMake/CMake/Modules/FindBoost.cmake,v <-- FindBoost.cmake new revision: 1.44; previous revision: 1.43 |
Notes |
Issue History | |||
Date Modified | Username | Field | Change |
2009-06-16 04:35 | Nils Gladitz | New Issue | |
2009-07-18 01:33 | Philip Lowman | Status | new => assigned |
2009-07-18 01:33 | Philip Lowman | Assigned To | => Philip Lowman |
2009-07-18 01:40 | Philip Lowman | Note Added: 0016904 | |
2009-07-20 03:53 | Nils Gladitz | File Added: FindBoostVS2005_ICL.patch | |
2009-07-20 03:59 | Nils Gladitz | Note Added: 0016911 | |
2009-07-20 04:03 | Nils Gladitz | File Added: boost_1_38_intel_lib_listing.txt | |
2009-07-20 04:16 | Nils Gladitz | Note Added: 0016912 | |
2009-09-17 23:25 | Philip Lowman | File Added: FindBoost.cmake | |
2009-09-17 23:26 | Philip Lowman | Note Added: 0017602 | |
2009-09-21 11:09 | Nils Gladitz | Note Added: 0017671 | |
2009-09-21 22:22 | Philip Lowman | Note Added: 0017688 | |
2009-09-21 22:22 | Philip Lowman | Status | assigned => resolved |
2009-09-21 22:22 | Philip Lowman | Resolution | open => fixed |
2010-08-11 23:35 | Philip Lowman | Status | resolved => closed |
Issue History |
Copyright © 2000 - 2018 MantisBT Team |