135 lines
4.0 KiB
CMake
135 lines
4.0 KiB
CMake
cmake_minimum_required(VERSION 3.21)
|
|
project(TactileIpc3D LANGUAGES CXX)
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
set(CMAKE_AUTOMOC ON)
|
|
set(CMAKE_AUTORCC ON)
|
|
set(CMAKE_AUTOUIC ON)
|
|
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
|
|
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/src)
|
|
|
|
find_package(Qt6 COMPONENTS
|
|
Core
|
|
Gui
|
|
Widgets
|
|
QuickWidgets
|
|
OpenGLWidgets
|
|
SerialPort
|
|
REQUIRED
|
|
Quick
|
|
QuickControls2
|
|
QuickLayouts
|
|
LinguistTools
|
|
)
|
|
|
|
qt_standard_project_setup()
|
|
|
|
add_executable(TactileIpc3D
|
|
main.cpp
|
|
resources.qrc
|
|
src/translation_manager.h
|
|
src/translation_manager.cpp
|
|
src/backend.h
|
|
src/backend.cpp
|
|
src/data_backend.h
|
|
src/data_backend.cpp
|
|
src/data_frame.h
|
|
src/glwidget.cpp
|
|
src/glwidget.h
|
|
src/serial/serial_backend.h
|
|
src/serial/serial_backend.cpp
|
|
src/serial/serial_codec.h
|
|
src/serial/serial_decoder.h
|
|
src/serial/serial_format.h
|
|
src/serial/serial_manager.h
|
|
src/serial/serial_manager.cpp
|
|
src/serial/serial_queue.h
|
|
src/serial/serial_threads.h
|
|
src/serial/serial_threads.cpp
|
|
src/serial/serial_transport.h
|
|
src/serial/serial_qt_transport.h
|
|
src/serial/serial_qt_transport.cpp
|
|
src/serial/serial_types.h
|
|
src/serial/piezoresistive_a_protocol.h
|
|
src/serial/piezoresistive_a_protocol.cpp
|
|
src/ringbuffer.h
|
|
src/ringbuffer.cpp
|
|
src/sparkline_plotitem.h
|
|
src/sparkling_plotitem.cpp
|
|
)
|
|
target_link_libraries(TactileIpc3D
|
|
Qt6::Core
|
|
Qt6::Gui
|
|
Qt6::Widgets
|
|
Qt6::QuickWidgets
|
|
Qt6::OpenGLWidgets
|
|
Qt6::SerialPort
|
|
Qt6::Quick
|
|
Qt6::QuickControls2
|
|
Qt6::QuickLayouts
|
|
)
|
|
|
|
set(TS_FILES
|
|
${CMAKE_CURRENT_SOURCE_DIR}/i18n/app_zh_CN.ts
|
|
${CMAKE_CURRENT_SOURCE_DIR}/i18n/app_en_US.ts
|
|
)
|
|
|
|
file(GLOB_RECURSE I18N_CPP_SOURCES CONFIGURE_DEPENDS
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp
|
|
${CMAKE_CURRENT_SOURCE_DIR}/src/*.h
|
|
${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
|
|
)
|
|
|
|
file(GLOB_RECURSE I18N_QML_FILES CONFIGURE_DEPENDS
|
|
${CMAKE_CURRENT_SOURCE_DIR}/qml/*.qml
|
|
)
|
|
|
|
qt_add_translations(TactileIpc3D
|
|
TS_FILES ${TS_FILES}
|
|
SOURCES ${I18N_CPP_SOURCES}
|
|
QML_FILES ${I18N_QML_FILES}
|
|
QM_FILES_OUTPUT_VARIABLE QM_FILES
|
|
)
|
|
|
|
foreach(qm_file IN LISTS QM_FILES)
|
|
get_filename_component(qm_name "${qm_file}" NAME)
|
|
set_source_files_properties("${qm_file}" PROPERTIES QT_RESOURCE_ALIAS "${qm_name}")
|
|
endforeach()
|
|
|
|
qt_add_resources(TactileIpc3D i18n_resources
|
|
PREFIX "/i18n"
|
|
FILES ${QM_FILES}
|
|
)
|
|
|
|
#if (WIN32 AND NOT DEFINED CMAKE_TOOLCHAIN_FILE)
|
|
# set(DEBUG_SUFFIX)
|
|
# if (MSVC AND CMAKE_BUILD_TYPE MATCHES "Debug")
|
|
# set(DEBUG_SUFFIX "d")
|
|
# endif ()
|
|
# set(QT_INSTALL_PATH "${CMAKE_PREFIX_PATH}")
|
|
# if (NOT EXISTS "${QT_INSTALL_PATH}/bin")
|
|
# set(QT_INSTALL_PATH "${QT_INSTALL_PATH}/..")
|
|
# if (NOT EXISTS "${QT_INSTALL_PATH}/bin")
|
|
# set(QT_INSTALL_PATH "${QT_INSTALL_PATH}/..")
|
|
# endif ()
|
|
# endif ()
|
|
# if (EXISTS "${QT_INSTALL_PATH}/plugins/platforms/qwindows${DEBUG_SUFFIX}.dll")
|
|
# add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
|
|
# COMMAND ${CMAKE_COMMAND} -E make_directory
|
|
# "$<TARGET_FILE_DIR:${PROJECT_NAME}>/plugins/platforms/")
|
|
# add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
|
|
# COMMAND ${CMAKE_COMMAND} -E copy
|
|
# "${QT_INSTALL_PATH}/plugins/platforms/qwindows${DEBUG_SUFFIX}.dll"
|
|
# "$<TARGET_FILE_DIR:${PROJECT_NAME}>/plugins/platforms/")
|
|
# endif ()
|
|
# foreach (QT_LIB Core Gui Widgets)
|
|
# add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
|
|
# COMMAND ${CMAKE_COMMAND} -E copy
|
|
# "${QT_INSTALL_PATH}/bin/Qt6${QT_LIB}${DEBUG_SUFFIX}.dll"
|
|
# "$<TARGET_FILE_DIR:${PROJECT_NAME}>")
|
|
# endforeach (QT_LIB)
|
|
#endif ()
|