|  | @@ -29,6 +29,8 @@
 | 
	
		
			
				|  |  |  #
 | 
	
		
			
				|  |  |  # Set ``CURSES_NEED_NCURSES`` to ``TRUE`` before the
 | 
	
		
			
				|  |  |  # ``find_package(Curses)`` call if NCurses functionality is required.
 | 
	
		
			
				|  |  | +# Set ``CURSES_NEED_WIDE`` to ``TRUE`` before the
 | 
	
		
			
				|  |  | +# ``find_package(Curses)`` call if unicode functionality is required.
 | 
	
		
			
				|  |  |  #
 | 
	
		
			
				|  |  |  # Backward Compatibility
 | 
	
		
			
				|  |  |  # ^^^^^^^^^^^^^^^^^^^^^^
 | 
	
	
		
			
				|  | @@ -42,9 +44,20 @@
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  include(${CMAKE_CURRENT_LIST_DIR}/CheckLibraryExists.cmake)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +# we don't know anything about cursesw, so only ncurses
 | 
	
		
			
				|  |  | +# may be ncursesw
 | 
	
		
			
				|  |  | +if(NOT CURSES_NEED_WIDE)
 | 
	
		
			
				|  |  | +  set(NCURSES_LIBRARY_NAME "ncurses")
 | 
	
		
			
				|  |  | +else()
 | 
	
		
			
				|  |  | +  set(NCURSES_LIBRARY_NAME "ncursesw")
 | 
	
		
			
				|  |  | +  # Also, if we are searchig fo wide curses - we are actually searching
 | 
	
		
			
				|  |  | +  # for ncurses, we don't know about any other unicode version.
 | 
	
		
			
				|  |  | +  set(CURSES_NEED_NCURSES TRUE)
 | 
	
		
			
				|  |  | +endif()
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  find_library(CURSES_CURSES_LIBRARY NAMES curses )
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -find_library(CURSES_NCURSES_LIBRARY NAMES ncurses )
 | 
	
		
			
				|  |  | +find_library(CURSES_NCURSES_LIBRARY NAMES "${NCURSES_LIBRARY_NAME}" )
 | 
	
		
			
				|  |  |  set(CURSES_USE_NCURSES FALSE)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  if(CURSES_NCURSES_LIBRARY  AND ((NOT CURSES_CURSES_LIBRARY) OR CURSES_NEED_NCURSES))
 | 
	
	
		
			
				|  | @@ -55,8 +68,14 @@ endif()
 | 
	
		
			
				|  |  |  # message.  Cygwin is an ncurses package, so force ncurses on
 | 
	
		
			
				|  |  |  # cygwin if the curses.h is missing
 | 
	
		
			
				|  |  |  if(CYGWIN)
 | 
	
		
			
				|  |  | -  if(NOT EXISTS /usr/include/curses.h)
 | 
	
		
			
				|  |  | -    set(CURSES_USE_NCURSES TRUE)
 | 
	
		
			
				|  |  | +  if (CURSES_NEED_WIDE)
 | 
	
		
			
				|  |  | +    if(NOT EXISTS /usr/include/ncursesw/curses.h)
 | 
	
		
			
				|  |  | +      set(CURSES_USE_NCURSES TRUE)
 | 
	
		
			
				|  |  | +    endif()
 | 
	
		
			
				|  |  | +  else()
 | 
	
		
			
				|  |  | +    if(NOT EXISTS /usr/include/curses.h)
 | 
	
		
			
				|  |  | +      set(CURSES_USE_NCURSES TRUE)
 | 
	
		
			
				|  |  | +    endif()
 | 
	
		
			
				|  |  |    endif()
 | 
	
		
			
				|  |  |  endif()
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -96,17 +115,32 @@ if(CURSES_USE_NCURSES)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    # Use CURSES_NCURSES_INCLUDE_PATH if set, for compatibility.
 | 
	
		
			
				|  |  |    if(CURSES_NCURSES_INCLUDE_PATH)
 | 
	
		
			
				|  |  | +    if (CURSES_NEED_WIDE)
 | 
	
		
			
				|  |  | +      find_path(CURSES_INCLUDE_PATH
 | 
	
		
			
				|  |  | +        NAMES ncursesw/ncurses.h ncursesw/curses.h
 | 
	
		
			
				|  |  | +        PATHS ${CURSES_NCURSES_INCLUDE_PATH}
 | 
	
		
			
				|  |  | +        NO_DEFAULT_PATH
 | 
	
		
			
				|  |  | +        )
 | 
	
		
			
				|  |  | +    else()
 | 
	
		
			
				|  |  | +      find_path(CURSES_INCLUDE_PATH
 | 
	
		
			
				|  |  | +        NAMES ncurses/ncurses.h ncurses/curses.h ncurses.h curses.h
 | 
	
		
			
				|  |  | +        PATHS ${CURSES_NCURSES_INCLUDE_PATH}
 | 
	
		
			
				|  |  | +        NO_DEFAULT_PATH
 | 
	
		
			
				|  |  | +        )
 | 
	
		
			
				|  |  | +    endif()
 | 
	
		
			
				|  |  | +  endif()
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  if (CURSES_NEED_WIDE)
 | 
	
		
			
				|  |  | +    find_path(CURSES_INCLUDE_PATH
 | 
	
		
			
				|  |  | +      NAMES ncursesw/ncurses.h ncursesw/curses.h
 | 
	
		
			
				|  |  | +      HINTS "${_cursesParentDir}/include"
 | 
	
		
			
				|  |  | +      )
 | 
	
		
			
				|  |  | +  else()
 | 
	
		
			
				|  |  |      find_path(CURSES_INCLUDE_PATH
 | 
	
		
			
				|  |  |        NAMES ncurses/ncurses.h ncurses/curses.h ncurses.h curses.h
 | 
	
		
			
				|  |  | -      PATHS ${CURSES_NCURSES_INCLUDE_PATH}
 | 
	
		
			
				|  |  | -      NO_DEFAULT_PATH
 | 
	
		
			
				|  |  | +      HINTS "${_cursesParentDir}/include"
 | 
	
		
			
				|  |  |        )
 | 
	
		
			
				|  |  | -  endif()
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -  find_path(CURSES_INCLUDE_PATH
 | 
	
		
			
				|  |  | -    NAMES ncurses/ncurses.h ncurses/curses.h ncurses.h curses.h
 | 
	
		
			
				|  |  | -    HINTS "${_cursesParentDir}/include"
 | 
	
		
			
				|  |  | -    )
 | 
	
		
			
				|  |  | +   endif()
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    # Previous versions of FindCurses provided these values.
 | 
	
		
			
				|  |  |    if(NOT DEFINED CURSES_LIBRARY)
 | 
	
	
		
			
				|  | @@ -123,10 +157,14 @@ else()
 | 
	
		
			
				|  |  |    get_filename_component(_cursesLibDir "${CURSES_CURSES_LIBRARY}" PATH)
 | 
	
		
			
				|  |  |    get_filename_component(_cursesParentDir "${_cursesLibDir}" PATH)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  find_path(CURSES_INCLUDE_PATH
 | 
	
		
			
				|  |  | -    NAMES curses.h
 | 
	
		
			
				|  |  | -    HINTS "${_cursesParentDir}/include"
 | 
	
		
			
				|  |  | -    )
 | 
	
		
			
				|  |  | +  #We can't find anything with CURSES_NEED_WIDE because we know
 | 
	
		
			
				|  |  | +  #only about ncursesw unicode curses version
 | 
	
		
			
				|  |  | +  if(NOT CURSES_NEED_WIDE)
 | 
	
		
			
				|  |  | +    find_path(CURSES_INCLUDE_PATH
 | 
	
		
			
				|  |  | +      NAMES curses.h
 | 
	
		
			
				|  |  | +      HINTS "${_cursesParentDir}/include"
 | 
	
		
			
				|  |  | +      )
 | 
	
		
			
				|  |  | +  endif()
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    # Previous versions of FindCurses provided these values.
 | 
	
		
			
				|  |  |    if(NOT DEFINED CURSES_CURSES_H_PATH)
 | 
	
	
		
			
				|  | @@ -139,31 +177,44 @@ endif()
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  # Report whether each possible header name exists in the include directory.
 | 
	
		
			
				|  |  |  if(NOT DEFINED CURSES_HAVE_NCURSES_NCURSES_H)
 | 
	
		
			
				|  |  | -  if(EXISTS "${CURSES_INCLUDE_PATH}/ncurses/ncurses.h")
 | 
	
		
			
				|  |  | +  if(CURSES_NEED_WIDE)
 | 
	
		
			
				|  |  | +    if(EXISTS "${CURSES_INCLUDE_PATH}/ncursesw/ncurses.h")
 | 
	
		
			
				|  |  | +      set(CURSES_HAVE_NCURSES_NCURSES_H "${CURSES_INCLUDE_PATH}/ncursesw/ncurses.h")
 | 
	
		
			
				|  |  | +    endif()
 | 
	
		
			
				|  |  | +  elseif(EXISTS "${CURSES_INCLUDE_PATH}/ncurses/ncurses.h")
 | 
	
		
			
				|  |  |      set(CURSES_HAVE_NCURSES_NCURSES_H "${CURSES_INCLUDE_PATH}/ncurses/ncurses.h")
 | 
	
		
			
				|  |  | -  else()
 | 
	
		
			
				|  |  | +  endif()
 | 
	
		
			
				|  |  | +  if(NOT DEFINED CURSES_HAVE_NCURSES_NCURSES_H)
 | 
	
		
			
				|  |  |      set(CURSES_HAVE_NCURSES_NCURSES_H "CURSES_HAVE_NCURSES_NCURSES_H-NOTFOUND")
 | 
	
		
			
				|  |  |    endif()
 | 
	
		
			
				|  |  |  endif()
 | 
	
		
			
				|  |  |  if(NOT DEFINED CURSES_HAVE_NCURSES_CURSES_H)
 | 
	
		
			
				|  |  | -  if(EXISTS "${CURSES_INCLUDE_PATH}/ncurses/curses.h")
 | 
	
		
			
				|  |  | +  if(CURSES_NEED_WIDE)
 | 
	
		
			
				|  |  | +    if(EXISTS "${CURSES_INCLUDE_PATH}/ncursesw/curses.h")
 | 
	
		
			
				|  |  | +      set(CURSES_HAVE_NCURSES_CURSES_H "${CURSES_INCLUDE_PATH}/ncursesw/curses.h")
 | 
	
		
			
				|  |  | +    endif()
 | 
	
		
			
				|  |  | +  elseif(EXISTS "${CURSES_INCLUDE_PATH}/ncurses/curses.h")
 | 
	
		
			
				|  |  |      set(CURSES_HAVE_NCURSES_CURSES_H "${CURSES_INCLUDE_PATH}/ncurses/curses.h")
 | 
	
		
			
				|  |  | -  else()
 | 
	
		
			
				|  |  | +  endif()
 | 
	
		
			
				|  |  | +  if(NOT DEFINED CURSES_HAVE_NCURSES_CURSES_H)
 | 
	
		
			
				|  |  |      set(CURSES_HAVE_NCURSES_CURSES_H "CURSES_HAVE_NCURSES_CURSES_H-NOTFOUND")
 | 
	
		
			
				|  |  |    endif()
 | 
	
		
			
				|  |  |  endif()
 | 
	
		
			
				|  |  | -if(NOT DEFINED CURSES_HAVE_NCURSES_H)
 | 
	
		
			
				|  |  | -  if(EXISTS "${CURSES_INCLUDE_PATH}/ncurses.h")
 | 
	
		
			
				|  |  | -    set(CURSES_HAVE_NCURSES_H "${CURSES_INCLUDE_PATH}/ncurses.h")
 | 
	
		
			
				|  |  | -  else()
 | 
	
		
			
				|  |  | -    set(CURSES_HAVE_NCURSES_H "CURSES_HAVE_NCURSES_H-NOTFOUND")
 | 
	
		
			
				|  |  | +if(NOT CURSES_NEED_WIDE)
 | 
	
		
			
				|  |  | +  #ncursesw can't be found for this paths
 | 
	
		
			
				|  |  | +  if(NOT DEFINED CURSES_HAVE_NCURSES_H)
 | 
	
		
			
				|  |  | +    if(EXISTS "${CURSES_INCLUDE_PATH}/ncurses.h")
 | 
	
		
			
				|  |  | +      set(CURSES_HAVE_NCURSES_H "${CURSES_INCLUDE_PATH}/ncurses.h")
 | 
	
		
			
				|  |  | +    else()
 | 
	
		
			
				|  |  | +      set(CURSES_HAVE_NCURSES_H "CURSES_HAVE_NCURSES_H-NOTFOUND")
 | 
	
		
			
				|  |  | +    endif()
 | 
	
		
			
				|  |  |    endif()
 | 
	
		
			
				|  |  | -endif()
 | 
	
		
			
				|  |  | -if(NOT DEFINED CURSES_HAVE_CURSES_H)
 | 
	
		
			
				|  |  | -  if(EXISTS "${CURSES_INCLUDE_PATH}/curses.h")
 | 
	
		
			
				|  |  | -    set(CURSES_HAVE_CURSES_H "${CURSES_INCLUDE_PATH}/curses.h")
 | 
	
		
			
				|  |  | -  else()
 | 
	
		
			
				|  |  | -    set(CURSES_HAVE_CURSES_H "CURSES_HAVE_CURSES_H-NOTFOUND")
 | 
	
		
			
				|  |  | +  if(NOT DEFINED CURSES_HAVE_CURSES_H)
 | 
	
		
			
				|  |  | +    if(EXISTS "${CURSES_INCLUDE_PATH}/curses.h")
 | 
	
		
			
				|  |  | +      set(CURSES_HAVE_CURSES_H "${CURSES_INCLUDE_PATH}/curses.h")
 | 
	
		
			
				|  |  | +    else()
 | 
	
		
			
				|  |  | +      set(CURSES_HAVE_CURSES_H "CURSES_HAVE_CURSES_H-NOTFOUND")
 | 
	
		
			
				|  |  | +    endif()
 | 
	
		
			
				|  |  |    endif()
 | 
	
		
			
				|  |  |  endif()
 | 
	
		
			
				|  |  |  
 |