cmake_minimum_required(VERSION 3.19) set(VERSION 0.3.10) project(hyprwayland-scanner DESCRIPTION "A hyprland version of wayland-scanner in and for C++" VERSION ${VERSION} ) include(GNUInstallDirs) include(CMakePackageConfigHelpers) set(PREFIX ${CMAKE_INSTALL_PREFIX}) set(CMAKE_MESSAGE_LOG_LEVEL "STATUS") if(CMAKE_BUILD_TYPE MATCHES Debug OR CMAKE_BUILD_TYPE MATCHES DEBUG) message(STATUS "Configuring hyprwayland-scanner in Debug with CMake") add_compile_definitions(HYPRLAND_DEBUG) else() add_compile_options(-O3) message(STATUS "Configuring hyprwayland-scanner in Release with CMake") endif() # configure set(CMAKE_CXX_STANDARD 23) add_compile_options(-Wall -Wextra -Wno-unused-parameter -Wno-unused-value -Wno-missing-field-initializers -Wno-narrowing) add_compile_definitions(SCANNER_VERSION="${VERSION}") configure_file(hyprwayland-scanner.pc.in hyprwayland-scanner.pc @ONLY) # dependencies message(STATUS "Checking deps...") find_package(Threads REQUIRED) find_package(PkgConfig REQUIRED) pkg_check_modules(deps REQUIRED IMPORTED_TARGET pugixml) file(GLOB_RECURSE SRCFILES CONFIGURE_DEPENDS "src/*.cpp") add_executable(hyprwayland-scanner ${SRCFILES}) target_link_libraries(hyprwayland-scanner PRIVATE rt Threads::Threads PkgConfig::deps) configure_package_config_file( hyprwayland-scanner-config.cmake.in hyprwayland-scanner-config.cmake INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/hyprwayland-scanner" PATH_VARS CMAKE_INSTALL_BINDIR ) write_basic_package_version_file( "hyprwayland-scanner-config-version.cmake" VERSION "${VERSION}" COMPATIBILITY AnyNewerVersion ) # Installation install(TARGETS hyprwayland-scanner) install(FILES ${CMAKE_BINARY_DIR}/hyprwayland-scanner.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) install(FILES ${CMAKE_BINARY_DIR}/hyprwayland-scanner-config.cmake ${CMAKE_BINARY_DIR}/hyprwayland-scanner-config-version.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/hyprwayland-scanner )