BH wrote:
> On Fri, Mar 12, 2010 at 1:25 PM, Kornel Benko <kor...@lyx.org> wrote:
>> Am Freitag 12 März 2010 schrieb Kornel Benko:
>>> Am Freitag 12 März 2010 schrieb BH:
>>>> I can't get cmake to recognize my enchant installation at /opt/local/.
>>>> What cmake variable am I not setting correctly?
>>>>
>>>> BH
>>> To compile, you need the development package. We are searching for include
>>>  files _and_ for libraries. (So e.g. for ubuntu this is: libenchant-dev +
>>>  libenchant1c2a)
>>>
>>>       Kornel
>>>
>> Read again, I see the "unusual" path, therefore you have to patch the 
>> CMakeLists.txt.
>>
>> In trunk, look at line 228:
>>        ...
>>        find_library(ENCHANT_LIBRARY "enchant"  "/usr/local/lib" "/usr/lib")
>>        ....
>> Here you may provide your path like this:
>>        find_library(ENCHANT_LIBRARY "enchant"  "/usr/local/lib" "/usr/lib" 
>> "/opt/local/lib")
>>
>> Appropriate change also to find the include (provided it is 
>> "/opt/local/enchant")
>>        find_path(ENCHANT_INCLUDE_DIR "enchant++.h" PATHS /usr/local/include 
>> /usr/local/include/enchant /usr/include /usr/include/enchant 
>> /opt/local/enchant)
> 
> Thanks. I used
> 
> cmake -DENCHANT_LIBRARY=/opt/local/lib

/opt/local/lib is a directory only and I assume ENCHANT_LIBRARY should point to 
a existing library.

Kornel's comment was about the cmake command which searches for the 'enchant' 
library in existing
directories:
find_library(ENCHANT_LIBRARY "enchant"  "/usr/local/lib" "/usr/lib")

So 'cmake -DENCHANT_LIBRARY=/opt/local/lib/libenchant.so' or something similar 
should work.

But you could also patch the cmakefile then you don't have to type these 
lengthy command line.

Peter

> -DENCHANT_INCLUDE_DIR=/opt/local/include/enchant
> 
> and now it works. However, when cmake finishes, it now spits out this warning:
> 
> WARNING: Target "LyX2.0" requests linking to directory
> "/opt/local/lib".  Targets may link only to libraries.  CMake is
> dropping the item.
> 
> ... and then linking fails:
> 
> Linking CXX executable ../bin/LyX2.0
> Undefined symbols:
>   "_enchant_dict_get_error", referenced from:
>       lyx::EnchantChecker::check(lyx::WordLangTuple const&)in EnchantChecker.o
>   "_enchant_dict_suggest", referenced from:
>       lyx::EnchantChecker::suggest(lyx::WordLangTuple const&,
> lyx::docstring_list&)in EnchantChecker.o
>   "_enchant_broker_request_dict", referenced from:
>       lyx::EnchantChecker::Private::addSpeller(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&)in
> EnchantChecker.o
>   "_enchant_dict_free_string_list", referenced from:
>       lyx::EnchantChecker::suggest(lyx::WordLangTuple const&,
> lyx::docstring_list&)in EnchantChecker.o
>   "_enchant_dict_check", referenced from:
>       lyx::EnchantChecker::check(lyx::WordLangTuple const&)in EnchantChecker.o
>   "_enchant_broker_get_error", referenced from:
>       lyx::EnchantChecker::Private::addSpeller(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&)in
> EnchantChecker.o
>   "_enchant_broker_free_dict", referenced from:
>       lyx::EnchantChecker::Private::~Private()in EnchantChecker.o
>   "_enchant_dict_add_to_session", referenced from:
>       lyx::EnchantChecker::accept(lyx::WordLangTuple const&)in 
> EnchantChecker.o
>   "_enchant_broker_free", referenced from:
>       ___tcf_0 in EnchantChecker.o
>   "_enchant_broker_init", referenced from:
>       __static_initialization_and_destruction_0(int, int)in EnchantChecker.o
>   "_enchant_dict_add", referenced from:
>       lyx::EnchantChecker::insert(lyx::WordLangTuple const&)in 
> EnchantChecker.o
>   "_enchant_dict_describe", referenced from:
>       lyx::EnchantChecker::Private::addSpeller(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&)in
> EnchantChecker.o
>   "_enchant_broker_dict_exists", referenced from:
>       lyx::EnchantChecker::hasDictionary(lyx::Language const*) constin
> EnchantChecker.o
>       lyx::EnchantChecker::Private::addSpeller(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&)in
> EnchantChecker.o
> ld: symbol(s) not found
> collect2: ld returned 1 exit status
> make[2]: *** [bin/LyX2.0] Error 1
> make[1]: *** [src/CMakeFiles/LyX2.0.dir/all] Error 2
> make: *** [all] Error 2
> 
> 
> What am I doing wrong?
> 
> (Note: I can build lyx with enchant using autotools rather than cmake.)
> 
> BH
> 

Reply via email to