initial
This commit is contained in:
@@ -0,0 +1,72 @@
|
||||
cmake_minimum_required(VERSION 3.10)
|
||||
project(serial_sample CXX)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
# 1. FIX: Tell CMake to use modern GLVND OpenGL libraries and suppress the warning
|
||||
set(OpenGL_GL_PREFERENCE GLVND)
|
||||
|
||||
# Define file paths for thirdparty modules
|
||||
set(IMGUI_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../thirdparty/imgui)
|
||||
set(IMPLOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../thirdparty/implot)
|
||||
|
||||
# Find Required Packages
|
||||
find_package(PkgConfig REQUIRED)
|
||||
find_package(OpenGL REQUIRED)
|
||||
pkg_check_modules(GLFW REQUIRED glfw3)
|
||||
pkg_check_modules(LIBSERIALPORT REQUIRED IMPORTED_TARGET libserialport)
|
||||
|
||||
|
||||
# Collect core library source files
|
||||
set(IMGUI_SOURCES
|
||||
${IMGUI_DIR}/imgui.cpp
|
||||
${IMGUI_DIR}/imgui_demo.cpp
|
||||
${IMGUI_DIR}/imgui_draw.cpp
|
||||
${IMGUI_DIR}/imgui_tables.cpp
|
||||
${IMGUI_DIR}/imgui_widgets.cpp
|
||||
${IMGUI_DIR}/backends/imgui_impl_glfw.cpp
|
||||
${IMGUI_DIR}/backends/imgui_impl_opengl3.cpp
|
||||
)
|
||||
|
||||
set(IMPLOT_SOURCES
|
||||
${IMPLOT_DIR}/implot.cpp
|
||||
${IMPLOT_DIR}/implot_items.cpp
|
||||
${IMPLOT_DIR}/implot_demo.cpp
|
||||
sources/SerialApp.cpp
|
||||
include/SerialApp.h
|
||||
)
|
||||
|
||||
add_executable(${PROJECT_NAME} main.cpp
|
||||
${IMGUI_SOURCES}
|
||||
${IMPLOT_SOURCES}
|
||||
sources/ConnectionWindow.cpp
|
||||
include/ConnectionWindow.h
|
||||
sources/PayloadWindow.cpp
|
||||
include/PayloadWindow.h
|
||||
sources/LogWindow.cpp
|
||||
include/LogWindow.h
|
||||
)
|
||||
|
||||
|
||||
# Provide Header Search Paths
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/src
|
||||
${IMGUI_DIR}
|
||||
${IMGUI_DIR}/backends
|
||||
${IMPLOT_DIR}
|
||||
${GLFW_INCLUDE_DIRS}
|
||||
${OPENGL_INCLUDE_DIR}
|
||||
)
|
||||
|
||||
# Link Libraries
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE
|
||||
${GLFW_LIBRARIES}
|
||||
OpenGL::GL
|
||||
X11
|
||||
pthread
|
||||
dl
|
||||
PkgConfig::LIBSERIALPORT
|
||||
)
|
||||
|
||||
configure_file(style/dracula.theme ${CMAKE_CURRENT_BINARY_DIR}/dracula.theme COPYONLY)
|
||||
Reference in New Issue
Block a user