You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
PDCursesMod/ncurses/CMakeLists.txt

66 lines
2.4 KiB
CMake

cmake_minimum_required(VERSION 3.11)
if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "MinSizeRel" CACHE STRING "Choose the type of build, options are: Debug, Release, or MinSizeRel." FORCE)
message(STATUS "CMAKE_BUILD_TYPE not set, defaulting to MinSizeRel.")
endif()
if(APPLE)
# look for brew version first
set(CMAKE_LIBRARY_PATH /usr/local/opt/ncurses/lib)
endif()
set(CURSES_NEED_WIDE PDC_WIDE)
include(FindCurses)
if(CURSES_FOUND)
# this project is dependent on libncurses5-dev, and libncursesw5-dev.
# Apple builds without ncursesw
PROJECT(ncurses VERSION "${PROJECT_VERSION}" LANGUAGES C)
message(STATUS "**** ${PROJECT_NAME} ****")
if(APPLE)
if ("/usr/lib/libcurses.dylib" IN_LIST CURSES_LIBRARIES)
#MESSAGE(WARNING "Building with old ncurses lib -> Manually defining A_ITALIC to 64-bit...")
MESSAGE(WARNING " Use `brew install ncurses` to resolve this warning")
add_definitions("-DA_ITALIC=((chtype)0x008 << 21)") #default to 64 bit for now...
endif()
MESSAGE(STATUS "Linking with ${CURSES_LIBRARIES}")
endif()
set(PDCURSES_DIST ${CMAKE_INSTALL_PREFIX}/${CMAKE_BUILD_TYPE})
macro (unix_app dir targ)
set(bin_name "${PROJECT_NAME}_${targ}")
if(${targ} STREQUAL "tuidemo")
set(src_files ${CMAKE_CURRENT_SOURCE_DIR}/${dir}/tuidemo.c ${CMAKE_CURRENT_SOURCE_DIR}/${dir}/tui.c)
else()
set(src_files ${CMAKE_CURRENT_SOURCE_DIR}/${dir}/${targ}.c)
endif()
add_executable(${bin_name} ${src_files})
target_compile_options(${bin_name} PUBLIC -Wall)
target_compile_definitions(${bin_name} PUBLIC -D_XOPEN_SOURCE_EXTENDED)
if(PDC_WIDE)
target_compile_definitions(${bin_name} PUBLIC -DHAVE_NCURSESW)
endif()
target_include_directories(${bin_name} PUBLIC ${CURSES_INCLUDE_DIR})
target_link_libraries(${bin_name} ${CURSES_LIBRARIES})
set_target_properties(${bin_name} PROPERTIES OUTPUT_NAME ${targ})
install(TARGETS ${bin_name} RUNTIME DESTINATION ${PDCURSES_DIST}/bin/${PROJECT_NAME} COMPONENT applications)
endmacro ()
unix_app(../demos firework)
unix_app(../demos ozdemo)
unix_app(../demos newtest)
unix_app(../demos rain)
unix_app(../demos testcurs)
unix_app(../demos worm)
unix_app(../demos xmas)
endif()