63 lines
1.4 KiB
CMake
63 lines
1.4 KiB
CMake
cmake_minimum_required(VERSION 3.16)
|
|
|
|
project(wayviewer VERSION 0.1.0 LANGUAGES CXX)
|
|
|
|
include(GNUInstallDirs)
|
|
|
|
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
|
|
set(CMAKE_BUILD_TYPE Release CACHE STRING "Build type" FORCE)
|
|
endif()
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
|
|
|
find_package(PkgConfig REQUIRED)
|
|
pkg_check_modules(SDL2 REQUIRED IMPORTED_TARGET sdl2)
|
|
pkg_check_modules(LIBVNCCLIENT REQUIRED IMPORTED_TARGET libvncclient)
|
|
include(CTest)
|
|
|
|
add_executable(wayviewer
|
|
src/input.cpp
|
|
src/main.cpp
|
|
src/options.cpp
|
|
src/sdl_app.cpp
|
|
src/ui_prompt.cpp
|
|
src/viewer_state.cpp
|
|
src/vnc_client.cpp
|
|
)
|
|
|
|
target_compile_options(wayviewer PRIVATE
|
|
-Wall
|
|
-Wextra
|
|
-Wpedantic
|
|
)
|
|
|
|
target_link_libraries(wayviewer PRIVATE
|
|
PkgConfig::SDL2
|
|
PkgConfig::LIBVNCCLIENT
|
|
)
|
|
|
|
configure_file(
|
|
packaging/wayviewer.desktop.in
|
|
${CMAKE_CURRENT_BINARY_DIR}/wayviewer.desktop
|
|
@ONLY
|
|
)
|
|
|
|
install(TARGETS wayviewer RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
|
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/wayviewer.desktop DESTINATION ${CMAKE_INSTALL_DATADIR}/applications)
|
|
|
|
if(BUILD_TESTING)
|
|
add_executable(wayviewer_input_tests
|
|
tests/input_tests.cpp
|
|
src/input.cpp
|
|
)
|
|
|
|
target_link_libraries(wayviewer_input_tests PRIVATE
|
|
PkgConfig::SDL2
|
|
PkgConfig::LIBVNCCLIENT
|
|
)
|
|
|
|
add_test(NAME input_mapping COMMAND wayviewer_input_tests)
|
|
endif()
|