cmake_minimum_required(VERSION 3.10.0) project(cui++ CXX) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) set(CURSES_NEED_NCURSES TRUE) set(CURSES_NEED_WIDE TRUE) find_package(Curses) message("CURSES_INCLUDE_DIR = " ${CURSES_INCLUDE_DIR}) message("CURSES_HAVE_CURSES_H = " ${CURSES_HAVE_CURSES_H}) message("CURSES_HAVE_NCURSES_H = " ${CURSES_HAVE_NCURSES_H}) message("CURSES_HAVE_NCURSES_NCURSES_H = " ${CURSES_HAVE_NCURSES_NCURSES_H}) message("CURSES_HAVE_NCURSES_CURSES_H = " ${CURSES_HAVE_NCURSES_CURSES_H}) message("CURSES_LIBRARIES = " ${CURSES_LIBRARIES}) if (${CURSES_HAVE_CURSES_H}) message("CURSES_INCLUDE_DIR = " ${CURSES_INCLUDE_DIR}) endif() if (NOT "${CURSES_HAVE_NCURSES_NCURSES_H}" STREQUAL "") message("CURSES_HAVE_NCURSES_NCURSES_H = " ${CURSES_HAVE_NCURSES_NCURSES_H}) endif() CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/config.hpp.in ${CMAKE_CURRENT_BINARY_DIR}/inc/cui/config.hpp) set(HEADER ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/cui.hpp ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/keyevent.hpp ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/string.hpp ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/accelerator.hpp ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/application.hpp ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/button.hpp ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/check.hpp ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/dc.hpp ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/desktop.hpp ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/edit.hpp ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/hboxpacker.hpp ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/packer.hpp ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/pushbutton.hpp ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/list.hpp ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/listbox.hpp ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/group.hpp ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/label.hpp ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/mainwindow.hpp ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/memo.hpp ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/menu.hpp ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/menubar.hpp ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/message.hpp ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/progress.hpp ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/radio.hpp ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/scrollarea.hpp ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/selector.hpp ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/statusbar.hpp ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/table.hpp ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/tablepacker.hpp ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/terminal.hpp ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/timer.hpp ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/vboxpacker.hpp ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/window.hpp ${CMAKE_CURRENT_SOURCE_DIR}/inc/cui/windowdc.hpp ) set(SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/src/keyevent.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/application.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/accelerator.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/button.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/check.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/desktop.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/edit.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/hboxpacker.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/packer.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/pushbutton.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/list.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/listbox.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/group.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/label.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/mainwindow.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/memo.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/menu.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/menubar.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/message.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/progress.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/radio.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/scrollarea.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/selector.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/statusbar.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/table.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/tablepacker.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/terminal.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/timer.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/vboxpacker.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/windowdc.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/window.cpp ) add_library(${PROJECT_NAME} ${HEADER} ${SOURCE}) target_link_libraries(${PROJECT_NAME} -lncursesw) target_compile_options(${PROJECT_NAME} PUBLIC -std=c++11) target_include_directories(${PROJECT_NAME} PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/inc" "${CMAKE_CURRENT_BINARY_DIR}/inc" "${CURSES_INCLUDE_DIRS}" ) add_subdirectory(examples)