<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:p="urn:schemas-microsoft-com:office:powerpoint" xmlns:a="urn:schemas-microsoft-com:office:access" xmlns:dt="uuid:C2F41010-65B3-11d1-A29F-00AA00C14882" xmlns:s="uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882" xmlns:rs="urn:schemas-microsoft-com:rowset" xmlns:z="#RowsetSchema" xmlns:b="urn:schemas-microsoft-com:office:publisher" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:c="urn:schemas-microsoft-com:office:component:spreadsheet" xmlns:odc="urn:schemas-microsoft-com:office:odc" xmlns:oa="urn:schemas-microsoft-com:office:activation" xmlns:html="http://www.w3.org/TR/REC-html40" xmlns:q="http://schemas.xmlsoap.org/soap/envelope/" xmlns:rtc="http://microsoft.com/officenet/conferencing" xmlns:D="DAV:" xmlns:Repl="http://schemas.microsoft.com/repl/" xmlns:mt="http://schemas.microsoft.com/sharepoint/soap/meetings/" xmlns:x2="http://schemas.microsoft.com/office/excel/2003/xml" xmlns:ppda="http://www.passport.com/NameSpace.xsd" xmlns:ois="http://schemas.microsoft.com/sharepoint/soap/ois/" xmlns:dir="http://schemas.microsoft.com/sharepoint/soap/directory/" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dsp="http://schemas.microsoft.com/sharepoint/dsp" xmlns:udc="http://schemas.microsoft.com/data/udc" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sub="http://schemas.microsoft.com/sharepoint/soap/2002/1/alerts/" xmlns:ec="http://www.w3.org/2001/04/xmlenc#" xmlns:sp="http://schemas.microsoft.com/sharepoint/" xmlns:sps="http://schemas.microsoft.com/sharepoint/soap/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:udcs="http://schemas.microsoft.com/data/udc/soap" xmlns:udcxf="http://schemas.microsoft.com/data/udc/xmlfile" xmlns:udcp2p="http://schemas.microsoft.com/data/udc/parttopart" xmlns:wf="http://schemas.microsoft.com/sharepoint/soap/workflow/" xmlns:dsss="http://schemas.microsoft.com/office/2006/digsig-setup" xmlns:dssi="http://schemas.microsoft.com/office/2006/digsig" xmlns:mdssi="http://schemas.openxmlformats.org/package/2006/digital-signature" xmlns:mver="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns:mrels="http://schemas.openxmlformats.org/package/2006/relationships" xmlns:spwp="http://microsoft.com/sharepoint/webpartpages" xmlns:ex12t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:ex12m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:pptsl="http://schemas.microsoft.com/sharepoint/soap/SlideLibrary/" xmlns:spsl="http://microsoft.com/webservices/SharePointPortalServer/PublishedLinksService" xmlns:Z="urn:schemas-microsoft-com:" xmlns:st="" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 12 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.5pt;
        font-family:Consolas;}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:Consolas;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoPlainText>Looking at FindCurses.cmake, it looks like it will prefer libcurses if it finds it (line 33). Specifically, it will try to determine if libcurses provides ncurses by seeing if libcurses contians the function wsyncup() (line 60). Here is the logic that does this (lines 47-71):<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText style='margin-left:.5in'># Not sure the logic is correct here.<o:p></o:p></p><p class=MsoPlainText style='margin-left:.5in'># If NCurses is required, use the function wsyncup() to check if the library<o:p></o:p></p><p class=MsoPlainText style='margin-left:.5in'># has NCurses functionality (at least this is where it breaks on NetBSD).<o:p></o:p></p><p class=MsoPlainText style='margin-left:.5in'># If wsyncup is in curses, use this one.<o:p></o:p></p><p class=MsoPlainText style='margin-left:.5in'># If not, try to find ncurses and check if this has the symbol.<o:p></o:p></p><p class=MsoPlainText style='margin-left:.5in'># Once the ncurses library is found, search the ncurses.h header first, but<o:p></o:p></p><p class=MsoPlainText style='margin-left:.5in'># some web pages also say that even with ncurses there is not always a ncurses.h:<o:p></o:p></p><p class=MsoPlainText style='margin-left:.5in'># http://osdir.com/ml/gnome.apps.mc.devel/2002-06/msg00029.html<o:p></o:p></p><p class=MsoPlainText style='margin-left:.5in'># So at first try ncurses.h, if not found, try to find curses.h under the same<o:p></o:p></p><p class=MsoPlainText style='margin-left:.5in'># prefix as the library was found, if still not found, try curses.h with the <o:p></o:p></p><p class=MsoPlainText style='margin-left:.5in'># default search paths.<o:p></o:p></p><p class=MsoPlainText style='margin-left:.5in'>IF(CURSES_CURSES_LIBRARY AND CURSES_NEED_NCURSES)<o:p></o:p></p><p class=MsoPlainText style='margin-left:.5in'> INCLUDE(CheckLibraryExists)<o:p></o:p></p><p class=MsoPlainText style='margin-left:.5in'> CHECK_LIBRARY_EXISTS("${CURSES_CURSES_LIBRARY}" <o:p></o:p></p><p class=MsoPlainText style='margin-left:.5in'> wsyncup "" CURSES_CURSES_HAS_WSYNCUP)<o:p></o:p></p><p class=MsoPlainText style='margin-left:.5in'><o:p> </o:p></p><p class=MsoPlainText style='margin-left:.5in'> IF(CURSES_NCURSES_LIBRARY AND NOT CURSES_CURSES_HAS_WSYNCUP)<o:p></o:p></p><p class=MsoPlainText style='margin-left:.5in'> CHECK_LIBRARY_EXISTS("${CURSES_NCURSES_LIBRARY}" <o:p></o:p></p><p class=MsoPlainText style='margin-left:.5in'> wsyncup "" CURSES_NCURSES_HAS_WSYNCUP)<o:p></o:p></p><p class=MsoPlainText style='margin-left:.5in'> IF( CURSES_NCURSES_HAS_WSYNCUP)<o:p></o:p></p><p class=MsoPlainText style='margin-left:.5in'> SET(CURSES_USE_NCURSES TRUE)<o:p></o:p></p><p class=MsoPlainText style='margin-left:.5in'> ENDIF( CURSES_NCURSES_HAS_WSYNCUP)<o:p></o:p></p><p class=MsoPlainText style='margin-left:.5in'> ENDIF(CURSES_NCURSES_LIBRARY AND NOT CURSES_CURSES_HAS_WSYNCUP)<o:p></o:p></p><p class=MsoPlainText style='margin-left:.5in'><o:p> </o:p></p><p class=MsoPlainText style='margin-left:.5in'>ENDIF(CURSES_CURSES_LIBRARY AND CURSES_NEED_NCURSES<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>I would suggest repeating that CHECK_LIBRARY_EXISTS() test and see if it results true (which is what I would suspect the issue is). Perhaps this test is nolonger sufficent to distinquish if libcurses is providing libncurses.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>I could be dead wrong, of course, I’m kind of new to CMake. <o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>HTH!<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Aaron C. Meadows <o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>-----Original Message-----<br>From: cmake-bounces@cmake.org [mailto:cmake-bounces@cmake.org] On Behalf Of David Demelier<br>Sent: Tuesday, June 14, 2011 10:23 AM<br>To: cmake@cmake.org<br>Subject: [CMake] FindCurses.cmake does not find libncurses.so<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Hello,<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>On FreeBSD the status of ncurses is particularly annoying. We have a old <o:p></o:p></p><p class=MsoPlainText>curses lib under /usr/lib/libcurses.so that does not provide ncurses <o:p></o:p></p><p class=MsoPlainText>functionalities.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>I tried the following CMakeLists.txt<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>cmake_minimum_required(VERSION 2.8)<o:p></o:p></p><p class=MsoPlainText>project(cmaketest)<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>set(srcs "main.c")<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>set(CURSES_NEED_NCURSES TRUE)<o:p></o:p></p><p class=MsoPlainText>find_package(Curses REQUIRED)<o:p></o:p></p><p class=MsoPlainText>message(${CURSES_LIBRARY})<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>add_executable(test ${srcs})<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>But it does not find my /usr/local/lib/libncurses.so (this one is what I <o:p></o:p></p><p class=MsoPlainText>want) it only stuck with /usr/lib/libcurses.so<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>I of course can link directly to it, but I don't like this way.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Cheers,<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>-- <o:p></o:p></p><p class=MsoPlainText>David Demelier<o:p></o:p></p><p class=MsoPlainText>_______________________________________________<o:p></o:p></p><p class=MsoPlainText>Powered by www.kitware.com<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Follow this link to subscribe/unsubscribe:<o:p></o:p></p><p class=MsoPlainText>http://www.cmake.org/mailman/listinfo/cmake<o:p></o:p></p></div></body></html>