Boost logo

Boost Interest :

Subject: Re: [Boost-cmake] Issues with Intel C++
From: Justin Holewinski (shawmishrak_at_[hidden])
Date: 2009-10-09 01:17:20


Thanks! The dependency error is fixed on Windows with the latest nightly
binary. However, this version of CMake seems to break the Boost install
target. Running "make install" results in errors from not finding
libs/preprocessor/include/boost in the source tree, which does not exist.
This occurs when using both the Microsoft and Intel compiler targets, and
does not occur with the Microsoft target (or the Intel target when not
building shared libraries) in CMake 2.6.4. A quick fix to get it working
for me was to just manually create include/boost directories for each source
library, i.e. libs/<name>:

$ cd libs/
$ for dir in `ls -d */`; do mkdir -p $dir/include/boost; done

(I don't know what I would do without Bash on Windows.)

On the Mac side of things, the build gets a little further, but now it's
failing with a compiler error in Boost.Wave. I'm using the same version of
the Intel C++ Compiler on Mac and Windows, so I'm not sure why the Windows
build would succeed but the Mac build would fail. Does any part of
Boost.Wave dependent on platform-specific code, in the form of #ifdef's? It
appears to be a template instantiation problem, but the same source file
compiles just fine on Intel C++ on Windows, same compiler version. I'll
look into it some more; I'm not sure if it's a build issue (wrong/incomplete
flags) or just an Intel compiler issue.

[ 91%] Building CXX object libs/wave/src/CMakeFiles/
boost_wave-mt-shared.dir/instantiate_re2c_lexer.cpp.o
/Users/jholewinski/libraries/boost-cmake-1.40/boost/wave/cpplexer/re2clex/cpp_re2c_lexer.hpp(119):
error #409: "boost::wave::cpplexer::re2clex::lexer<IteratorT,
PositionT>::lexer(const IteratorT &, const IteratorT &, const PositionT &,
boost::wave::language_support)" provides no initializer for:
            const member "boost::wave::cpplexer::re2clex::lexer<IteratorT,
PositionT>::cache"
  {
  ^
          detected during:
            instantiation of
"boost::wave::cpplexer::re2clex::lex_functor<IteratorT,
PositionT>::lex_functor(const IteratorT &, const IteratorT &, const
PositionT &, boost::wave::language_support) [with IteratorT=char *,
PositionT=boost::wave::util::file_position_type]" at line 402
            instantiation of
"boost::wave::cpplexer::lex_input_interface<boost::wave::cpplexer::lex_token<PositionT>>
*boost::wave::cpplexer::new_lexer_gen<IteratorT, PositionT>::new_lexer(const
IteratorT &, const IteratorT &, const PositionT &,
boost::wave::language_support) [with IteratorT=char *,
PositionT=boost::wave::util::file_position_type]" at line 52 of
"/Users/jholewinski/libraries/boost-cmake-1.40/libs/wave/src/instantiate_re2c_lexer.cpp"

compilation aborted for
/Users/jholewinski/libraries/boost-cmake-1.40/libs/wave/src/instantiate_re2c_lexer.cpp
(code 2)
make[2]: ***
[libs/wave/src/CMakeFiles/boost_wave-mt-shared.dir/instantiate_re2c_lexer.cpp.o]
Error 2
make[1]: *** [libs/wave/src/CMakeFiles/boost_wave-mt-shared.dir/all] Error 2
make: *** [all] Error 2

Thanks,

Justin Holewinski

On Thu, Oct 8, 2009 at 12:22 PM, Bill Hoffman <bill.hoffman_at_[hidden]>wrote:

> Justin Holewinski wrote:
>
>
>> I have no idea why this is happening. When using the Visual Studio
>> toolset, the dynamic-link libraries are placed in bin/ and the import
>> libraries are placed in lib/, like you would expect. Why this is not the
>> case when using the Intel compiler, I have no idea. Perhaps there are a
>> different set of command-line switches that are needed to set to the output
>> directory of the import libraries. I'll continue to look into it and let
>> you know if I find something.
>>
>> This was a bug in CMake's Intel file for windows. I just recently
> checked in a fix to CVS CMake, and the fix will be in 2.8.0 when it is
> released.
>
> You can find a nightly binary for CMake on windows here:
>
> http://www.cmake.org/files/vCVS/?C=M;O=D
>
>
>
> -Bill
>
>
> _______________________________________________
> Boost-cmake mailing list
> Boost-cmake_at_[hidden]
> http://lists.boost.org/mailman/listinfo.cgi/boost-cmake
>

-- 
Thanks,
Justin Holewinski


Boost-cmake list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk