aboutsummaryrefslogtreecommitdiff
path: root/source/lib/CMakeLists.txt
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2022-09-16 23:28:09 +0200
committerFelix Morgner <felix.morgner@gmail.com>2022-09-16 23:28:09 +0200
commitf4d9880d3c9555b48affad727589ef5c093b1841 (patch)
treea5552b5a33000a527748ac1c72ca366476af0936 /source/lib/CMakeLists.txt
parent64922e213ac731279cf3341253e67509adb2dfc8 (diff)
downloadwanda-f4d9880d3c9555b48affad727589ef5c093b1841.tar.xz
wanda-f4d9880d3c9555b48affad727589ef5c093b1841.zip
source: clean up structure
Diffstat (limited to 'source/lib/CMakeLists.txt')
-rw-r--r--source/lib/CMakeLists.txt66
1 files changed, 66 insertions, 0 deletions
diff --git a/source/lib/CMakeLists.txt b/source/lib/CMakeLists.txt
new file mode 100644
index 0000000..bf3cd5f
--- /dev/null
+++ b/source/lib/CMakeLists.txt
@@ -0,0 +1,66 @@
+find_package("asio")
+find_package("Boost")
+find_package("JPEG")
+find_package("PNG")
+find_package("spdlog")
+find_package("Threads")
+
+find_package("PkgConfig" REQUIRED)
+
+pkg_check_modules("GIO"
+ REQUIRED
+ IMPORTED_TARGET
+ GLOBAL
+ "gio-2.0"
+)
+
+pkg_check_modules("libmagic"
+ REQUIRED
+ IMPORTED_TARGET
+ GLOBAL
+ "libmagic"
+)
+
+file(GLOB_RECURSE WANDA_LIB_SOURCES RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" CONFIGURE_DEPENDS "**/*.cpp")
+file(GLOB_RECURSE WANDA_LIB_HEADERS RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" CONFIGURE_DEPENDS "**/*.hpp")
+
+add_library("wanda")
+
+target_sources("wanda" PRIVATE
+ ${WANDA_LIB_SOURCES}
+)
+
+target_sources("wanda" INTERFACE
+ FILE_SET HEADERS
+ FILES ${WANDA_LIB_HEADERS}
+ BASE_DIRS "include"
+)
+
+target_include_directories("wanda" PUBLIC
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
+)
+
+target_include_directories("wanda" SYSTEM PUBLIC
+ $<INSTALL_INTERFACE:include>
+)
+
+target_compile_features("wanda" PUBLIC
+ "cxx_std_20"
+)
+
+target_link_libraries("wanda" PUBLIC
+ "asio::asio"
+ "boost::boost"
+ "JPEG::JPEG"
+ "PkgConfig::GIO"
+ "PkgConfig::libmagic"
+ "PNG::PNG"
+ "spdlog::spdlog"
+ "Threads::Threads"
+)
+
+install(TARGETS "wanda"
+ FILE_SET HEADERS
+)
+
+add_library("wanda::wanda" ALIAS "wanda")