mirror of
				https://github.com/luanti-org/luanti.git
				synced 2025-11-04 01:05:48 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			205 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			205 lines
		
	
	
		
			7.3 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
#.rst:
 | 
						|
# FindNcursesw
 | 
						|
# ------------
 | 
						|
#
 | 
						|
# Find the ncursesw (wide ncurses) include file and library.
 | 
						|
#
 | 
						|
# Based on FindCurses.cmake which comes with CMake.
 | 
						|
#
 | 
						|
# Checks for ncursesw first. If not found, it then executes the
 | 
						|
# regular old FindCurses.cmake to look for for ncurses (or curses).
 | 
						|
#
 | 
						|
#
 | 
						|
# Result Variables
 | 
						|
# ^^^^^^^^^^^^^^^^
 | 
						|
#
 | 
						|
# This module defines the following variables:
 | 
						|
#
 | 
						|
# ``CURSES_FOUND``
 | 
						|
#   True if curses is found.
 | 
						|
# ``NCURSESW_FOUND``
 | 
						|
#   True if ncursesw is found.
 | 
						|
# ``CURSES_INCLUDE_DIRS``
 | 
						|
#   The include directories needed to use Curses.
 | 
						|
# ``CURSES_LIBRARIES``
 | 
						|
#   The libraries needed to use Curses.
 | 
						|
# ``CURSES_HAVE_CURSES_H``
 | 
						|
#   True if curses.h is available.
 | 
						|
# ``CURSES_HAVE_NCURSES_H``
 | 
						|
#   True if ncurses.h is available.
 | 
						|
# ``CURSES_HAVE_NCURSES_NCURSES_H``
 | 
						|
#   True if ``ncurses/ncurses.h`` is available.
 | 
						|
# ``CURSES_HAVE_NCURSES_CURSES_H``
 | 
						|
#   True if ``ncurses/curses.h`` is available.
 | 
						|
# ``CURSES_HAVE_NCURSESW_NCURSES_H``
 | 
						|
#   True if ``ncursesw/ncurses.h`` is available.
 | 
						|
# ``CURSES_HAVE_NCURSESW_CURSES_H``
 | 
						|
#   True if ``ncursesw/curses.h`` is available.
 | 
						|
#
 | 
						|
# Set ``CURSES_NEED_NCURSES`` to ``TRUE`` before the
 | 
						|
# ``find_package(Ncursesw)`` call if NCurses functionality is required.
 | 
						|
#
 | 
						|
#=============================================================================
 | 
						|
# Copyright 2001-2014 Kitware, Inc.
 | 
						|
# modifications: Copyright 2015 kahrl <kahrl@gmx.net>
 | 
						|
#
 | 
						|
# Redistribution and use in source and binary forms, with or without
 | 
						|
# modification, are permitted provided that the following conditions
 | 
						|
# are met:
 | 
						|
#
 | 
						|
# * Redistributions of source code must retain the above copyright
 | 
						|
#   notice, this list of conditions and the following disclaimer.
 | 
						|
#
 | 
						|
# * Redistributions in binary form must reproduce the above copyright
 | 
						|
#   notice, this list of conditions and the following disclaimer in the
 | 
						|
#   documentation and/or other materials provided with the distribution.
 | 
						|
#
 | 
						|
# * Neither the names of Kitware, Inc., the Insight Software Consortium,
 | 
						|
#   nor the names of their contributors may be used to endorse or promote
 | 
						|
#   products derived from this software without specific prior written
 | 
						|
#   permission.
 | 
						|
#
 | 
						|
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 | 
						|
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 | 
						|
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
 | 
						|
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
 | 
						|
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 | 
						|
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 | 
						|
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
 | 
						|
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 | 
						|
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 | 
						|
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 | 
						|
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
						|
#
 | 
						|
# ------------------------------------------------------------------------------
 | 
						|
#
 | 
						|
# The above copyright and license notice applies to distributions of
 | 
						|
# CMake in source and binary form.  Some source files contain additional
 | 
						|
# notices of original copyright by their contributors; see each source
 | 
						|
# for details.  Third-party software packages supplied with CMake under
 | 
						|
# compatible licenses provide their own copyright notices documented in
 | 
						|
# corresponding subdirectories.
 | 
						|
#
 | 
						|
# ------------------------------------------------------------------------------
 | 
						|
#
 | 
						|
# CMake was initially developed by Kitware with the following sponsorship:
 | 
						|
#
 | 
						|
#  * National Library of Medicine at the National Institutes of Health
 | 
						|
#    as part of the Insight Segmentation and Registration Toolkit (ITK).
 | 
						|
#
 | 
						|
#  * US National Labs (Los Alamos, Livermore, Sandia) ASC Parallel
 | 
						|
#    Visualization Initiative.
 | 
						|
#
 | 
						|
#  * National Alliance for Medical Image Computing (NAMIC) is funded by the
 | 
						|
#    National Institutes of Health through the NIH Roadmap for Medical Research,
 | 
						|
#    Grant U54 EB005149.
 | 
						|
#
 | 
						|
#  * Kitware, Inc.
 | 
						|
#=============================================================================
 | 
						|
 | 
						|
include(CheckLibraryExists)
 | 
						|
 | 
						|
find_library(CURSES_NCURSESW_LIBRARY NAMES ncursesw
 | 
						|
  DOC "Path to libncursesw.so or .lib or .a")
 | 
						|
 | 
						|
set(CURSES_USE_NCURSES FALSE)
 | 
						|
set(CURSES_USE_NCURSESW FALSE)
 | 
						|
 | 
						|
if(CURSES_NCURSESW_LIBRARY)
 | 
						|
  set(CURSES_USE_NCURSES TRUE)
 | 
						|
  set(CURSES_USE_NCURSESW TRUE)
 | 
						|
endif()
 | 
						|
 | 
						|
if(CURSES_USE_NCURSESW)
 | 
						|
  get_filename_component(_cursesLibDir "${CURSES_NCURSESW_LIBRARY}" PATH)
 | 
						|
  get_filename_component(_cursesParentDir "${_cursesLibDir}" PATH)
 | 
						|
 | 
						|
  find_path(CURSES_INCLUDE_PATH
 | 
						|
    NAMES ncursesw/ncurses.h ncursesw/curses.h ncurses.h curses.h
 | 
						|
    HINTS "${_cursesParentDir}/include"
 | 
						|
    )
 | 
						|
 | 
						|
  # Previous versions of FindCurses provided these values.
 | 
						|
  if(NOT DEFINED CURSES_LIBRARY)
 | 
						|
    set(CURSES_LIBRARY "${CURSES_NCURSESW_LIBRARY}")
 | 
						|
  endif()
 | 
						|
 | 
						|
  CHECK_LIBRARY_EXISTS("${CURSES_NCURSESW_LIBRARY}"
 | 
						|
    cbreak "" CURSES_NCURSESW_HAS_CBREAK)
 | 
						|
  if(NOT CURSES_NCURSESW_HAS_CBREAK)
 | 
						|
    find_library(CURSES_EXTRA_LIBRARY tinfo HINTS "${_cursesLibDir}"
 | 
						|
      DOC "Path to libtinfo.so or .lib or .a")
 | 
						|
    find_library(CURSES_EXTRA_LIBRARY tinfo )
 | 
						|
  endif()
 | 
						|
 | 
						|
  # Report whether each possible header name exists in the include directory.
 | 
						|
  if(NOT DEFINED CURSES_HAVE_NCURSESW_NCURSES_H)
 | 
						|
    if(EXISTS "${CURSES_INCLUDE_PATH}/ncursesw/ncurses.h")
 | 
						|
      set(CURSES_HAVE_NCURSESW_NCURSES_H "${CURSES_INCLUDE_PATH}/ncursesw/ncurses.h")
 | 
						|
    else()
 | 
						|
      set(CURSES_HAVE_NCURSESW_NCURSES_H "CURSES_HAVE_NCURSESW_NCURSES_H-NOTFOUND")
 | 
						|
    endif()
 | 
						|
  endif()
 | 
						|
  if(NOT DEFINED CURSES_HAVE_NCURSESW_CURSES_H)
 | 
						|
    if(EXISTS "${CURSES_INCLUDE_PATH}/ncursesw/curses.h")
 | 
						|
      set(CURSES_HAVE_NCURSESW_CURSES_H "${CURSES_INCLUDE_PATH}/ncursesw/curses.h")
 | 
						|
    else()
 | 
						|
      set(CURSES_HAVE_NCURSESW_CURSES_H "CURSES_HAVE_NCURSESW_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")
 | 
						|
    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")
 | 
						|
    endif()
 | 
						|
  endif()
 | 
						|
 | 
						|
 | 
						|
  find_library(CURSES_FORM_LIBRARY form HINTS "${_cursesLibDir}"
 | 
						|
    DOC "Path to libform.so or .lib or .a")
 | 
						|
  find_library(CURSES_FORM_LIBRARY form )
 | 
						|
 | 
						|
  # Need to provide the *_LIBRARIES
 | 
						|
  set(CURSES_LIBRARIES ${CURSES_LIBRARY})
 | 
						|
 | 
						|
  if(CURSES_EXTRA_LIBRARY)
 | 
						|
    set(CURSES_LIBRARIES ${CURSES_LIBRARIES} ${CURSES_EXTRA_LIBRARY})
 | 
						|
  endif()
 | 
						|
 | 
						|
  if(CURSES_FORM_LIBRARY)
 | 
						|
    set(CURSES_LIBRARIES ${CURSES_LIBRARIES} ${CURSES_FORM_LIBRARY})
 | 
						|
  endif()
 | 
						|
 | 
						|
  # Provide the *_INCLUDE_DIRS result.
 | 
						|
  set(CURSES_INCLUDE_DIRS ${CURSES_INCLUDE_PATH})
 | 
						|
  set(CURSES_INCLUDE_DIR ${CURSES_INCLUDE_PATH}) # compatibility
 | 
						|
 | 
						|
  # handle the QUIETLY and REQUIRED arguments and set CURSES_FOUND to TRUE if
 | 
						|
  # all listed variables are TRUE
 | 
						|
  include(FindPackageHandleStandardArgs)
 | 
						|
  FIND_PACKAGE_HANDLE_STANDARD_ARGS(Ncursesw DEFAULT_MSG
 | 
						|
    CURSES_LIBRARY CURSES_INCLUDE_PATH)
 | 
						|
  set(CURSES_FOUND ${NCURSESW_FOUND})
 | 
						|
 | 
						|
else()
 | 
						|
  find_package(Curses)
 | 
						|
  set(NCURSESW_FOUND FALSE)
 | 
						|
endif()
 | 
						|
 | 
						|
mark_as_advanced(
 | 
						|
  CURSES_INCLUDE_PATH
 | 
						|
  CURSES_CURSES_LIBRARY
 | 
						|
  CURSES_NCURSES_LIBRARY
 | 
						|
  CURSES_NCURSESW_LIBRARY
 | 
						|
  CURSES_EXTRA_LIBRARY
 | 
						|
  CURSES_FORM_LIBRARY
 | 
						|
  )
 |