diff options
| author | Felix Morgner <felix.morgner@gmail.com> | 2022-09-16 21:36:12 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@gmail.com> | 2022-09-16 21:36:12 +0200 |
| commit | 64922e213ac731279cf3341253e67509adb2dfc8 (patch) | |
| tree | ddcf4fd5b05ac426ecf032e43e8662c2f9ce0f57 /source/CMakeLists.txt | |
| parent | d22bc7b557d36da41fe88d3188a7cd335c3ccaa0 (diff) | |
| download | wanda-64922e213ac731279cf3341253e67509adb2dfc8.tar.xz wanda-64922e213ac731279cf3341253e67509adb2dfc8.zip | |
wanda: restructure source directory
Diffstat (limited to 'source/CMakeLists.txt')
| -rw-r--r-- | source/CMakeLists.txt | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt new file mode 100644 index 0000000..6d1ec20 --- /dev/null +++ b/source/CMakeLists.txt @@ -0,0 +1,130 @@ +cmake_minimum_required(VERSION 3.24) + +project("wanda" + LANGUAGES CXX + VERSION "1.0.0" +) + +set(CMAKE_THREAD_PREFER_PTHREAD ON) +set(THREADS_PREFER_PTHREAD_FLAG ON) + +find_package("asio") +find_package("Boost") +find_package("JPEG") +find_package("PNG") +find_package("lyra") +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" +) + +# Core Library + +add_library("${PROJECT_NAME}" STATIC + "${PROJECT_SOURCE_DIR}/src/wanda/command.cpp" + "${PROJECT_SOURCE_DIR}/src/wanda/control_connection.cpp" + "${PROJECT_SOURCE_DIR}/src/wanda/environment.cpp" + "${PROJECT_SOURCE_DIR}/src/wanda/logging.cpp" + "${PROJECT_SOURCE_DIR}/src/wanda/message.cpp" + "${PROJECT_SOURCE_DIR}/src/wanda/xdg.cpp" + + "${PROJECT_SOURCE_DIR}/include/wanda/command.hpp" + "${PROJECT_SOURCE_DIR}/include/wanda/control_connection.hpp" + "${PROJECT_SOURCE_DIR}/include/wanda/deferred_failure.hpp" + "${PROJECT_SOURCE_DIR}/include/wanda/environment.hpp" + "${PROJECT_SOURCE_DIR}/include/wanda/expected.hpp" + "${PROJECT_SOURCE_DIR}/include/wanda/keyed.hpp" + "${PROJECT_SOURCE_DIR}/include/wanda/logging.hpp" + "${PROJECT_SOURCE_DIR}/include/wanda/message.hpp" + "${PROJECT_SOURCE_DIR}/include/wanda/optional.hpp" + "${PROJECT_SOURCE_DIR}/include/wanda/type_wrapper.hpp" + "${PROJECT_SOURCE_DIR}/include/wanda/xdg.hpp" +) + +target_compile_features("${PROJECT_NAME}" PUBLIC + "cxx_std_20" +) + +target_link_libraries("${PROJECT_NAME}" PUBLIC + "asio::asio" + "spdlog::spdlog" + "Threads::Threads" +) + +target_include_directories("${PROJECT_NAME}" SYSTEM + PUBLIC "${PROJECT_SOURCE_DIR}/include" +) + +set_target_properties("${PROJECT_NAME}" PROPERTIES + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS OFF +) + +# Core Executables + +add_executable("${PROJECT_NAME}d" + "${PROJECT_SOURCE_DIR}/src/${PROJECT_NAME}/control_interface.cpp" + "${PROJECT_SOURCE_DIR}/src/${PROJECT_NAME}/filesystem.cpp" + "${PROJECT_SOURCE_DIR}/src/${PROJECT_NAME}/setting.cpp" + "${PROJECT_SOURCE_DIR}/src/${PROJECT_NAME}/wallpaper.cpp" + "${PROJECT_SOURCE_DIR}/src/${PROJECT_NAME}/wandad.cpp" + + "${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME}/control_interface.hpp" + "${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME}/filesystem.hpp" + "${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME}/setting.hpp" + "${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME}/wallpaper.hpp" +) + +target_link_libraries("${PROJECT_NAME}d" PRIVATE + "${PROJECT_NAME}" + "bfg::lyra" + "boost::boost" + "JPEG::JPEG" + "PkgConfig::GIO" + "PkgConfig::libmagic" + "PNG::PNG" +) + +set_target_properties("${PROJECT_NAME}d" PROPERTIES + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS OFF +) + +add_executable("${PROJECT_NAME}c" + "${PROJECT_SOURCE_DIR}/src/${PROJECT_NAME}/commander.cpp" + "${PROJECT_SOURCE_DIR}/src/${PROJECT_NAME}/wandac.cpp" + + "${PROJECT_SOURCE_DIR}/include/${PROJECT_NAME}/commander.hpp" +) + +target_link_libraries("${PROJECT_NAME}c" PRIVATE + "${PROJECT_NAME}" + "bfg::lyra" +) + +set_target_properties("${PROJECT_NAME}c" PROPERTIES + CXX_STANDARD_REQUIRED YES + CXX_EXTENSIONS OFF +) + +# Install Targets + +install(TARGETS + "${PROJECT_NAME}" + "${PROJECT_NAME}c" + "${PROJECT_NAME}d" +) |
