Files
tactileipc3d/CMakeLists.txt

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 ()