[CMake] cpack -G NSIS

Andrea Crotti andrea.crotti.0 at gmail.com
Mon Jan 23 12:32:03 EST 2012


It's a bit tricky to follow the code, but from my first attempt with the
debug symbols activated I get the following backtrace:
(running cpack -G NSIS)

--8<---------------cut here---------------start------------->8---
(gdb) bt
#0  0x00007ffff6e28935 in raise () from /lib/libc.so.6
#1  0x00007ffff6e29dab in abort () from /lib/libc.so.6
#2  0x00007ffff775d1ed in __gnu_cxx::__verbose_terminate_handler() () 
from /usr/lib/libstdc++.so.6
#3  0x00007ffff775b396 in ?? () from /usr/lib/libstdc++.so.6
#4  0x00007ffff775b3c3 in std::terminate() () from /usr/lib/libstdc++.so.6
#5  0x00007ffff775b4be in __cxa_throw () from /usr/lib/libstdc++.so.6
#6  0x00007ffff77081f7 in std::__throw_logic_error(char const*) () from 
/usr/lib/libstdc++.so.6
#7  0x00007ffff7746039 in char* std::string::_S_construct<char 
const*>(char const*, char const*, std::allocator<char> const&, 
std::forward_iterator_tag) () from /usr/lib/libstdc++.so.6
#8  0x00007ffff7746113 in std::basic_string<char, 
std::char_traits<char>, std::allocator<char> >::basic_string(char 
const*, std::allocator<char> const&) () from /usr/lib/libstdc++.so.6
#9  0x000000000066e5f8 in cmCPackNSISGenerator::InitializeInternal 
(this=0xd20b20) at 
/home/andrea/cmake/Source/CPack/cmCPackNSISGenerator.cxx:410
#10 0x000000000065c444 in cmCPackGenerator::Initialize (this=0xd20b20, 
name=0xd1c248 "NSIS", mf=0x7fffffffcfe0) at 
/home/andrea/cmake/Source/CPack/cmCPackGenerator.cxx:1104
#11 0x000000000064d553 in main (argc=3, argv=0x7fffffffe568) at 
/home/andrea/cmake/Source/CPack/cpack.cxx:400
--8<---------------cut here---------------end--------------->8---


In particular it seems that the problem is trying to get this option:

file:~/cmake/Source/CPack/cmCPackNSISGenerator.cxx::std::string 
nsisFileName = this->GetOption("CPACK_TOPLEVEL_DIRECTORY")

Which fails here:
file:~/cmake/Source/CPack/cmCPackGenerator.cxx::const char* 
cmCPackGenerator::GetOption(const char* op) const

that thing returs 0x0 and the std::string explodes because it was not
what it was expecting..
That's all I could understand for now..



More information about the CMake mailing list