diff options
author | Daniil Rozanov <dev@rozanov.info> | 2025-03-15 18:03:23 +0400 |
---|---|---|
committer | Daniil Rozanov <dev@rozanov.info> | 2025-03-15 18:03:23 +0400 |
commit | 4a9ce6e2555dfaf9155fa279f25667350377f688 (patch) | |
tree | 11bc0ea3a7b1c0be2c47419b7058d46d16e5f9f4 /cmake |
feat: chtype wrap
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/Util.cmake | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/cmake/Util.cmake b/cmake/Util.cmake new file mode 100644 index 0000000..659a793 --- /dev/null +++ b/cmake/Util.cmake @@ -0,0 +1,45 @@ +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() |