100 lines
2.9 KiB
CMake
100 lines
2.9 KiB
CMake
cmake_minimum_required(VERSION 3.20)
|
|
|
|
project(location_plotter VERSION 0.2.0 LANGUAGES CXX)
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set(CMAKE_CXX_EXTENSIONS OFF)
|
|
|
|
set(CMAKE_AUTOMOC ON)
|
|
|
|
find_package(Qt6 REQUIRED COMPONENTS Core Widgets Network)
|
|
find_package(ZLIB REQUIRED)
|
|
|
|
add_executable(location_plotter
|
|
src/LocationParser.cpp
|
|
src/LocationParser.h
|
|
src/GlobeWidget.cpp
|
|
src/GlobeWidget.h
|
|
src/MainWindow.cpp
|
|
src/MainWindow.h
|
|
src/MapWidget.cpp
|
|
src/MapWidget.h
|
|
src/SerialReader.cpp
|
|
src/SerialReader.h
|
|
src/RinexNavigation.cpp
|
|
src/RinexNavigation.h
|
|
src/SatelliteData.h
|
|
src/TelemetryPoint.h
|
|
src/main.cpp
|
|
)
|
|
|
|
target_link_libraries(location_plotter PRIVATE Qt6::Core Qt6::Widgets Qt6::Network ZLIB::ZLIB)
|
|
|
|
if(APPLE)
|
|
set_target_properties(location_plotter PROPERTIES
|
|
MACOSX_BUNDLE TRUE
|
|
MACOSX_BUNDLE_BUNDLE_NAME "Location Plotter"
|
|
MACOSX_BUNDLE_GUI_IDENTIFIER "com.ankasys.location-plotter"
|
|
MACOSX_BUNDLE_BUNDLE_VERSION "${PROJECT_VERSION}"
|
|
MACOSX_BUNDLE_SHORT_VERSION_STRING "${PROJECT_VERSION}"
|
|
)
|
|
endif()
|
|
|
|
qt_add_resources(location_plotter "app_resources"
|
|
PREFIX "/"
|
|
FILES resources/ankasys-logo.png resources/land-110m.json resources/bluemarble-2048.png
|
|
)
|
|
|
|
if(UNIX AND NOT APPLE)
|
|
target_compile_definitions(location_plotter PRIVATE LOCATION_PLOTTER_LINUX_SERIAL=1)
|
|
endif()
|
|
|
|
enable_testing()
|
|
|
|
add_executable(location_parser_tests
|
|
tests/parser_tests.cpp
|
|
src/LocationParser.cpp
|
|
src/LocationParser.h
|
|
src/RinexNavigation.cpp
|
|
src/RinexNavigation.h
|
|
src/SatelliteData.h
|
|
src/TelemetryPoint.h
|
|
)
|
|
target_link_libraries(location_parser_tests PRIVATE Qt6::Core Qt6::Network ZLIB::ZLIB)
|
|
add_test(NAME location_parser_tests COMMAND location_parser_tests)
|
|
|
|
add_executable(location_main_window_tests
|
|
tests/main_window_tests.cpp
|
|
src/LocationParser.cpp
|
|
src/LocationParser.h
|
|
src/MainWindow.cpp
|
|
src/MainWindow.h
|
|
src/MapWidget.cpp
|
|
src/MapWidget.h
|
|
src/GlobeWidget.cpp
|
|
src/GlobeWidget.h
|
|
src/SerialReader.cpp
|
|
src/SerialReader.h
|
|
src/RinexNavigation.cpp
|
|
src/RinexNavigation.h
|
|
src/SatelliteData.h
|
|
src/TelemetryPoint.h
|
|
)
|
|
target_link_libraries(location_main_window_tests PRIVATE Qt6::Core Qt6::Widgets Qt6::Network ZLIB::ZLIB)
|
|
qt_add_resources(location_main_window_tests "test_app_resources"
|
|
PREFIX "/"
|
|
FILES resources/ankasys-logo.png resources/land-110m.json resources/bluemarble-2048.png
|
|
)
|
|
if(UNIX AND NOT APPLE)
|
|
target_compile_definitions(location_main_window_tests PRIVATE LOCATION_PLOTTER_LINUX_SERIAL=1)
|
|
endif()
|
|
add_test(NAME location_main_window_tests COMMAND location_main_window_tests)
|
|
set_tests_properties(location_main_window_tests PROPERTIES
|
|
ENVIRONMENT "QT_QPA_PLATFORM=offscreen;XDG_CACHE_HOME=/tmp/location-plotter-test-cache")
|
|
|
|
install(TARGETS location_plotter
|
|
BUNDLE DESTINATION .
|
|
RUNTIME DESTINATION bin
|
|
)
|