function( ncurses_cpp__setup_sample ) set(options) set( oneValueArgs FOLDER NAME ) set( multiValueArgs HEADERS INCLUDE_DIRS LIBS SOURCES ) cmake_parse_arguments( TARGET "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} ) project( ${TARGET_NAME} LANGUAGES CXX ) add_executable( ${TARGET_NAME} ${TARGET_HEADERS} ${TARGET_SOURCES} ) target_include_directories( ${TARGET_NAME} PUBLIC ${CURSES_INCLUDE_DIR} ) target_link_libraries(${TARGET_NAME} PUBLIC ${CURSES_LIBRARY} NCurses::Cpp ) set_target_properties( ${TARGET_NAME} PROPERTIES CXX_STANDARD_REQUIRED ON ) if( TARGET_FOLDER ) set_target_properties( ${TARGET_NAME} PROPERTIES FOLDER "${TARGET_FOLDER}" ) endif() if( TARGET_INCLUDE_DIRS ) target_include_directories( ${TARGET_NAME} PUBLIC ${TARGET_INCLUDE_DIRS} ) endif() if( TARGET_LIBS ) target_link_libraries( ${TARGET_NAME} PRIVATE "${TARGET_LIBS}" ) endif() endfunction() function( ncurses_cpp__setup_sample_static ) set(options) set(oneValueArgs FOLDER NAME ) set(multiValueArgs HEADERS INCLUDE_DIRS LIBS SOURCES ) cmake_parse_arguments( TARGET "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} ) find_package( Curses REQUIRED ) ncurses_cpp__setup_sample( NAME ${TARGET_NAME} FOLDER Samples SOURCES ${TARGET_NAME}.cpp LIBS ${CURSES_LIBRARY}) endfunction()