diff --git a/CMakeLists.txt b/CMakeLists.txt index 85b0f4b..4f644a6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,6 +4,23 @@ project(ZBBSClientTUI VERSION 1.0.0 ) +if( + (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR + (CMAKE_CXX_COMPILER_ID MATCHES "Clang") +) + add_compile_definitions(_GNU_SOURCE) +endif() + +set(CURSES_NEED_NCURSES TRUE) +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) +find_package(Curses REQUIRED) + +add_subdirectory(src/widget_core) +add_subdirectory(src/widget) +add_subdirectory(src/modals) +add_subdirectory(src/lib) +add_subdirectory(src/utils) + add_subdirectory(src) install( diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 5ff0c89..f9808ff 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -2,8 +2,6 @@ add_executable(zbbs-client-tui) set_property(TARGET zbbs-client-tui PROPERTY C_STANDARD 23) -set(CMAKE_EXPORT_COMPILE_COMMANDS ON) - if( (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") OR (CMAKE_CXX_COMPILER_FRONTEND_VARIANT STREQUAL "MSVC") @@ -16,36 +14,19 @@ elseif( (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") OR (CMAKE_CXX_COMPILER_ID MATCHES "Clang") ) - add_compile_definitions(_GNU_SOURCE) - # target_compile_definitions(zbbs-client-tui PRIVATE _GNU_SOURCE) -> doesn't work if (ZBBS_DEBUG) target_compile_options(zbbs-client-tui PRIVATE -Wall -ggdb -pedantic) message("Include debug info (GNU/Clang)") endif() endif() -file(GLOB M_HEADERS "*.h") file(GLOB M_SOURCES "*.c") -set(CURSES_NEED_NCURSES TRUE) - -find_package(Curses REQUIRED) - target_sources(zbbs-client-tui PRIVATE ${M_SOURCES} - PUBLIC - FILE_SET HEADERS - FILES - ${M_HEADERS} ) -add_subdirectory(widget_core) -add_subdirectory(widget) -add_subdirectory(modals) -add_subdirectory(lib) -add_subdirectory(utils) - target_link_libraries(zbbs-client-tui PRIVATE widget_core diff --git a/src/connection.c b/src/connection.c index 1caa1be..8e354d8 100644 --- a/src/connection.c +++ b/src/connection.c @@ -1,5 +1,5 @@ #include "main.h" -#include "app.h" +#include #include #include #include diff --git a/src/deps.mk b/src/deps.mk deleted file mode 100644 index e69de29..0000000 diff --git a/src/draw_modal.c b/src/draw_modal.c index 2b75ab4..eb94c42 100644 --- a/src/draw_modal.c +++ b/src/draw_modal.c @@ -1,13 +1,5 @@ -#include "modals/ask_server_addr.h" -#include "modals/download_pr.h" -#include "modals/login_credentials.h" -#include "modals/login_option.h" -#include "modals/notification.h" -#include "modals/server_message.h" -#include "modals/upload_dialogue.h" -#include "modals/upload_props_dialogue.h" -#include "modals/register.h" -#include "widget/dialogue.h" +#include +#include #include "main.h" void app_draw_modal(app_t *app) { diff --git a/src/file_processor.c b/src/file_processor.c index c438816..83dae32 100644 --- a/src/file_processor.c +++ b/src/file_processor.c @@ -13,14 +13,11 @@ #include #include #include +#include #include "file_processor.h" #include "main.h" #include "query.h" -#include "widget/dialogue.h" -#include "widget/file_list.h" -#include "widget/progress_bar.h" - static void fl_add(fl_item_t **cur, fl_item_t **start, char *fname); fl_item_t *fl_select(fl_item_t *start, int num); void fl_clear(fl_item_t **start, fl_item_t **current); diff --git a/src/lib/bstring/CMakeLists.txt b/src/lib/bstring/CMakeLists.txt index 57a5c33..1e554fe 100644 --- a/src/lib/bstring/CMakeLists.txt +++ b/src/lib/bstring/CMakeLists.txt @@ -9,5 +9,5 @@ target_sources(bstring PUBLIC FILE_SET HEADERS FILES - ${M_HEADERS} + bstrlib.h ) \ No newline at end of file diff --git a/src/modals/CMakeLists.txt b/src/modals/CMakeLists.txt index f1d75a5..026bb6f 100644 --- a/src/modals/CMakeLists.txt +++ b/src/modals/CMakeLists.txt @@ -1,8 +1,15 @@ add_library(modals STATIC) -file(GLOB M_HEADERS "*.h") file(GLOB M_SOURCES "*.c") +target_link_directories(modals + PRIVATE + "../widget/" + "../widget_core/" + "../lib/" + "../utils/" +) + target_link_libraries(modals PRIVATE widget @@ -17,10 +24,5 @@ target_sources(modals PUBLIC FILE_SET HEADERS FILES - ${M_HEADERS} -) - -target_include_directories(modals PRIVATE "../widget") -target_include_directories(modals PRIVATE "../widget_core") -target_include_directories(modals PRIVATE "../lib/") -target_include_directories(widget PRIVATE "../utils/") \ No newline at end of file + modals.h +) \ No newline at end of file diff --git a/src/modals/alert.c b/src/modals/alert.c index 8b23e04..ef5f0ea 100644 --- a/src/modals/alert.c +++ b/src/modals/alert.c @@ -1,6 +1,4 @@ -#include "app.h" -#include "dialogue.h" -#include "widget_core.h" +#include #include #include #include diff --git a/src/modals/ask_server_addr.h b/src/modals/ask_server_addr.h index 7d0efa2..cb91c32 100644 --- a/src/modals/ask_server_addr.h +++ b/src/modals/ask_server_addr.h @@ -2,7 +2,6 @@ #define ASK_SERVER_ADDR_H #include -#include "../widget/dialogue.h" dialogue_t *init_asa_modal(app_t *app); diff --git a/src/modals/modals.h b/src/modals/modals.h new file mode 100644 index 0000000..8d8d5e1 --- /dev/null +++ b/src/modals/modals.h @@ -0,0 +1,13 @@ +#ifndef MODALS_H +#define MODALS_H +#include "alert.h" +#include "ask_server_addr.h" +#include "download_pr.h" +#include "login_credentials.h" +#include "login_option.h" +#include "notification.h" +#include "register.h" +#include "server_message.h" +#include "upload_dialogue.h" +#include "upload_props_dialogue.h" +#endif \ No newline at end of file diff --git a/src/utils/CMakeLists.txt b/src/utils/CMakeLists.txt index 7c04195..c0ad0b8 100644 --- a/src/utils/CMakeLists.txt +++ b/src/utils/CMakeLists.txt @@ -1,15 +1,12 @@ add_library(utils STATIC) -file(GLOB M_HEADERS "*.h") file(GLOB M_SOURCES "*.c") -list(REMOVE_ITEM M_HEADERS "utils.h") - target_sources(utils PRIVATE ${M_SOURCES} PUBLIC FILE_SET HEADERS FILES - ${M_HEADERS} + utils.h ) diff --git a/src/widget/CMakeLists.txt b/src/widget/CMakeLists.txt index fcaa36f..ddc5b95 100644 --- a/src/widget/CMakeLists.txt +++ b/src/widget/CMakeLists.txt @@ -1,19 +1,7 @@ add_library(widget STATIC) -file(GLOB M_HEADERS "*.h") file(GLOB M_SOURCES "*.c") -list(REMOVE_ITEM M_HEADERS "widget.h") - -target_sources(widget - PRIVATE - ${M_SOURCES} - PUBLIC - FILE_SET HEADERS - FILES - ${M_HEADERS} -) - target_link_libraries(widget PRIVATE bstring @@ -21,6 +9,11 @@ target_link_libraries(widget utils ) -target_include_directories(widget PRIVATE "../widget_core") -target_include_directories(widget PRIVATE "../lib/") -target_include_directories(widget PRIVATE "../utils/") \ No newline at end of file +target_sources(widget + PRIVATE + ${M_SOURCES} + PUBLIC + FILE_SET HEADERS + FILES + widget.h +) \ No newline at end of file diff --git a/src/widget/button.c b/src/widget/button.c index 246c581..5394c10 100644 --- a/src/widget/button.c +++ b/src/widget/button.c @@ -3,9 +3,9 @@ #include #include -#include "app.h" #include #include "button.h" +#include "app.h" button_t *init_button(WINDOW **win, widget_t *w_parent, char *label) { button_t *btn = malloc(sizeof(button_t)); diff --git a/src/widget/dialogue.c b/src/widget/dialogue.c index 7cdb10a..9ba523f 100644 --- a/src/widget/dialogue.c +++ b/src/widget/dialogue.c @@ -8,7 +8,7 @@ #include "file_list.h" #include "group.h" #include "input.h" -#include "widget_core.h" +#include void incr_active_id(dialogue_t *d) { group_el_t *active_el = NULL; diff --git a/src/widget_core/CMakeLists.txt b/src/widget_core/CMakeLists.txt index 6c49de1..dc7ef61 100644 --- a/src/widget_core/CMakeLists.txt +++ b/src/widget_core/CMakeLists.txt @@ -1,6 +1,5 @@ add_library(widget_core STATIC) -file(GLOB M_HEADERS "*.h") file(GLOB M_SOURCES "*.c") target_sources(widget_core @@ -9,5 +8,5 @@ target_sources(widget_core PUBLIC FILE_SET HEADERS FILES - ${M_HEADERS} + widget_core.h )