diff --git a/meson.build b/meson.build index ba4c976..099ab4b 100644 --- a/meson.build +++ b/meson.build @@ -1,3 +1,11 @@ project('memoserv', 'cpp', default_options:['debug=true', 'cpp_std=c++17', 'b_ndebug=if-release']) +is_debug_build = 0 +if get_option('buildtype').startswith('debug') + is_debug_build = 1 +endif + +memcard_proj = subproject('memcard') +memcard_dep = memcard_proj.get_variable('memcard_dep') + subdir('src/gui') diff --git a/src/gui/main.cpp b/src/gui/main.cpp index ad316c9..a9d856c 100644 --- a/src/gui/main.cpp +++ b/src/gui/main.cpp @@ -1,4 +1,4 @@ -#include "memorycard.hpp" +#include "memcard/memorycard.hpp" #include "widget/block_grid.hpp" #include "make_nana_animation.hpp" #include diff --git a/src/gui/make_nana_animation.cpp b/src/gui/make_nana_animation.cpp index 6d455b6..bc58666 100644 --- a/src/gui/make_nana_animation.cpp +++ b/src/gui/make_nana_animation.cpp @@ -1,6 +1,6 @@ #include "make_nana_animation.hpp" -#include "block.hpp" -#include "icon_fetch.hpp" +#include "memcard/block.hpp" +#include "memcard/icon_fetch.hpp" namespace duck { AnimationWithSize make_nana_animation (const ConstBlock& block, int width, int height, int fps) { diff --git a/src/gui/meson.build b/src/gui/meson.build index 6302db6..c6b533a 100644 --- a/src/gui/meson.build +++ b/src/gui/meson.build @@ -21,18 +21,9 @@ libxft_dep = dependency('xft') libfontconfig_dep = dependency('fontconfig') libthread_dep = dependency('threads') -is_debug_build = 0 -if get_option('buildtype').startswith('debug') - is_debug_build = 1 -endif - executable('gui', 'main.cpp', - 'memorycard.cpp', - 'block.cpp', - 'icon_fetch.cpp', 'widget/block_grid.cpp', - 'resize_harris.cpp', 'make_nana_animation.cpp', 'animation_with_size.cpp', dependencies: [ @@ -43,6 +34,7 @@ executable('gui', libxft_dep, libfontconfig_dep, libthread_dep, + memcard_dep, ], install: true, include_directories: [private_incl] + nana_incl_search, diff --git a/src/gui/widget/block_grid.cpp b/src/gui/widget/block_grid.cpp index 47956ed..397d3bf 100644 --- a/src/gui/widget/block_grid.cpp +++ b/src/gui/widget/block_grid.cpp @@ -1,7 +1,7 @@ #include "widget/block_grid.hpp" -#include "memorycard.hpp" -#include "block.hpp" -#include "icon_fetch.hpp" +#include "memcard/memorycard.hpp" +#include "memcard/block.hpp" +#include "memcard/icon_fetch.hpp" #include #include #include diff --git a/src/meson.build b/src/meson.build new file mode 100644 index 0000000..7b350d7 --- /dev/null +++ b/src/meson.build @@ -0,0 +1 @@ +subdir('gui') diff --git a/src/gui/block.hpp b/subprojects/memcard/include/memcard/block.hpp similarity index 100% rename from src/gui/block.hpp rename to subprojects/memcard/include/memcard/block.hpp diff --git a/src/gui/icon_fetch.hpp b/subprojects/memcard/include/memcard/icon_fetch.hpp similarity index 81% rename from src/gui/icon_fetch.hpp rename to subprojects/memcard/include/memcard/icon_fetch.hpp index 10d8c24..f5ca745 100644 --- a/src/gui/icon_fetch.hpp +++ b/subprojects/memcard/include/memcard/icon_fetch.hpp @@ -1,6 +1,6 @@ #pragma once -#include "block.hpp" +#include "memcard/block.hpp" #include std::vector> icon_fetch (const ConstBlock& block, int width, int height); diff --git a/src/gui/memorycard.hpp b/subprojects/memcard/include/memcard/memorycard.hpp similarity index 100% rename from src/gui/memorycard.hpp rename to subprojects/memcard/include/memcard/memorycard.hpp diff --git a/subprojects/memcard/meson.build b/subprojects/memcard/meson.build new file mode 100644 index 0000000..7be88e2 --- /dev/null +++ b/subprojects/memcard/meson.build @@ -0,0 +1,19 @@ +project('memcard', 'cpp', default_options:['debug=true', 'cpp_std=c++17', 'b_ndebug=if-release']) +add_project_link_arguments(['-lstdc++fs'], language: 'cpp') + +private_incl = include_directories('src') +library_incl = include_directories('include') + +memcard = shared_library('memcard', + 'src/memorycard.cpp', + 'src/block.cpp', + 'src/icon_fetch.cpp', + 'src/resize_harris.cpp', + install: true, + include_directories: [private_incl, library_incl], +) + +memcard_dep = declare_dependency( + include_directories: library_incl, + link_with: memcard +) diff --git a/src/gui/block.cpp b/subprojects/memcard/src/block.cpp similarity index 97% rename from src/gui/block.cpp rename to subprojects/memcard/src/block.cpp index 2d46aca..b932291 100644 --- a/src/gui/block.cpp +++ b/subprojects/memcard/src/block.cpp @@ -1,5 +1,5 @@ -#include "block.hpp" -#include "memorycard.hpp" +#include "memcard/block.hpp" +#include "memcard/memorycard.hpp" #include #include #include diff --git a/src/gui/icon_fetch.cpp b/subprojects/memcard/src/icon_fetch.cpp similarity index 99% rename from src/gui/icon_fetch.cpp rename to subprojects/memcard/src/icon_fetch.cpp index 44c21ee..822be0f 100644 --- a/src/gui/icon_fetch.cpp +++ b/subprojects/memcard/src/icon_fetch.cpp @@ -1,4 +1,4 @@ -#include "icon_fetch.hpp" +#include "memcard/icon_fetch.hpp" #include "resize_harris.hpp" #include #include diff --git a/src/gui/memorycard.cpp b/subprojects/memcard/src/memorycard.cpp similarity index 92% rename from src/gui/memorycard.cpp rename to subprojects/memcard/src/memorycard.cpp index cb5ffe6..172cb90 100644 --- a/src/gui/memorycard.cpp +++ b/subprojects/memcard/src/memorycard.cpp @@ -1,5 +1,5 @@ -#include "memorycard.hpp" -#include "block.hpp" +#include "memcard/memorycard.hpp" +#include "memcard/block.hpp" #include #include #include diff --git a/src/gui/resize_harris.cpp b/subprojects/memcard/src/resize_harris.cpp similarity index 100% rename from src/gui/resize_harris.cpp rename to subprojects/memcard/src/resize_harris.cpp diff --git a/src/gui/resize_harris.hpp b/subprojects/memcard/src/resize_harris.hpp similarity index 100% rename from src/gui/resize_harris.hpp rename to subprojects/memcard/src/resize_harris.hpp