diff --git a/linux/CMakeLists.txt b/linux/CMakeLists.txt index ca15818..0ceec0d 100644 --- a/linux/CMakeLists.txt +++ b/linux/CMakeLists.txt @@ -6,7 +6,8 @@ set(CMAKE_CXX_STANDARD 11) # Enable c++11 standard set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_MODULE_PATH}) # Find Ncursesw -find_package( Ncursesw REQUIRED ) +find_package( PkgConfig REQUIRED ) +pkg_search_module( CURSES REQUIRED ncursesw ) include_directories( ${CURSES_INCLUDE_DIRS} ) # Add CommandLineFPS.cpp file of project root directory as source file @@ -16,4 +17,4 @@ set(SOURCE_FILES CommandLineFPS.cpp) add_executable(CommandLineFPS ${SOURCE_FILES}) # Link ncursesw library -target_link_libraries( CommandLineFPS ${CURSES_LIBRARIES} ) +target_link_libraries( CommandLineFPS ${CURSES_LIBRARIES} m ) diff --git a/linux/CommandLineFPS.cpp b/linux/CommandLineFPS.cpp index b3c298f..015b53a 100644 --- a/linux/CommandLineFPS.cpp +++ b/linux/CommandLineFPS.cpp @@ -50,8 +50,9 @@ #include #include #include -#include +#include #include +#include using namespace std; diff --git a/linux/FindNcursesw.cmake b/linux/FindNcursesw.cmake deleted file mode 100644 index e572c70..0000000 --- a/linux/FindNcursesw.cmake +++ /dev/null @@ -1,204 +0,0 @@ -#.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 -# -# 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 - ) diff --git a/linux/README.md b/linux/README.md index c90cd74..5f9180a 100644 --- a/linux/README.md +++ b/linux/README.md @@ -8,7 +8,8 @@ ### Installation -* Ubuntu: `sudo apt-get install cmake libncursesw5-dev` +* Ubuntu: `sudo apt-get install pkg-config cmake libncursesw5-dev` +* Arch: `pacman -S pkg-config cmake ncurses` * Other distros: `¯\_(ツ)_/¯` ## Build @@ -16,7 +17,7 @@ ```sh mkdir build cd build -cmake .. +cmake ../ make ```