From c58aa32ca624caacf61d78dccf6eec65a0c9fc2b Mon Sep 17 00:00:00 2001
From: wangziyi <371291729@qq.com>
Date: Tue, 18 Feb 2025 18:35:43 +0800
Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20CMakeList.txt?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 CMakeList.txt | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)
 create mode 100644 CMakeList.txt

diff --git a/CMakeList.txt b/CMakeList.txt
new file mode 100644
index 0000000..9442ef8
--- /dev/null
+++ b/CMakeList.txt
@@ -0,0 +1,52 @@
+cmake_minimum_required(VERSION 3.0)
+project(modbus_plugin)
+
+# 设置编译选项
+set(CMAKE_C_STANDARD 99)
+set(CMAKE_C_FLAGS "-Wall -fPIC")
+
+# Arkime 安装目录(根据你的实际情况修改)
+set(ARKIME_PREFIX /opt/arkime)
+
+# libmodbus 安装目录(指向你手动编译安装的 Libmodbus 目录)
+set(LIBMODBUS_PREFIX /path/to/your/static/libmodbus)
+
+# GLib 安装目录
+# 方法1: 直接指定glibconfig.h所在的目录的上一级
+#set(GLIB_INCLUDE_DIR /usr/lib/glib-2.0/include) # 假设 glibconfig.h 在 /usr/lib/glib-2.0/include 目录下
+
+# 方法2: 更精确地指定所有需要的GLib头文件目录,确保万无一失
+include_directories(
+    /usr/include/glib-2.0
+    /usr/lib/x86_64-linux-gnu/glib-2.0/include
+)
+
+# Jansson 安装目录 (根据你的实际情况修改, 如果需要)
+# 可以在 /usr/include 或 /usr/local/include 中尝试
+# 如果找不到 jansson.h , 先安装 libjansson-dev
+# sudo apt-get install libjansson-dev
+set(JANSSON_INCLUDE_DIR /usr/include)
+
+# 包含头文件
+include_directories(
+    ${ARKIME_PREFIX}/include
+    ${LIBMODBUS_PREFIX}/include
+    #${GLIB_INCLUDE_DIR}   # 注释掉,使用更精确的include目录
+    ${JANSSON_INCLUDE_DIR}
+)
+
+# 源文件
+set(SOURCE_FILES
+    src/modbus_plugin.c
+)
+
+# 创建共享库
+add_library(modbus_plugin SHARED ${SOURCE_FILES})
+
+# 设置链接选项,强制静态链接 libmodbus
+target_link_libraries(modbus_plugin
+    -L${LIBMODBUS_PREFIX}/lib -lmodbus -lm -lglib-2.0 -ljansson
+)
+
+# 设置安装目录和目标
+install(TARGETS modbus_plugin DESTINATION /opt/arkime/plugins)
\ No newline at end of file