Skip to content

Commit 36a03dd

Browse files
committed
fix:add zmq support
1 parent b2d6d81 commit 36a03dd

File tree

4 files changed

+50
-23
lines changed

4 files changed

+50
-23
lines changed

CMakeLists.txt

Lines changed: 11 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,21 @@ cmake_minimum_required(VERSION 3.16)
22

33
project(infinite_sense VERSION 1.0)
44

5-
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake CACHE INTERNAL "" FORCE)
6-
75
set(CMAKE_CXX_STANDARD 17)
86
set(CMAKE_CXX_STANDARD_REQUIRED ON) # 确保强制使用指定的标准
97
set(CMAKE_CXX_EXTENSIONS OFF) # 禁用编译器特定的扩展(推荐)
108

119
add_subdirectory(infinite_sense_core)
1210

13-
if(NOT CMAKE_BUILD_TYPE)
14-
set(CMAKE_BUILD_TYPE Release)
15-
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -O3 -Wall")
16-
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -Wall")
17-
endif()
18-
19-
find_package(ZeroMQ QUIET)
20-
if (ZeroMQ_FOUND)
21-
message(STATUS "ZMQ found, Compiling ZMQ nodes")
22-
find_package(ZeroMQ REQUIRED)
23-
add_executable(${PROJECT_NAME}_zmq_node
24-
example/ZMQ/zmq_main.cpp
25-
)
26-
target_include_directories(${PROJECT_NAME}_zmq_node PRIVATE
27-
${ZeroMQ_INCLUDE_DIRS}
28-
)
29-
target_link_libraries(${PROJECT_NAME}_zmq_node PRIVATE
30-
${ZeroMQ_LIBRARIES}
31-
infinite_sense_core
32-
)
11+
if (NOT CMAKE_BUILD_TYPE)
12+
set(CMAKE_BUILD_TYPE Release)
13+
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -O3 -Wall")
14+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -Wall")
3315
endif ()
16+
17+
add_executable(${PROJECT_NAME}_zmq_node
18+
example/ZMQ/zmq_main.cpp
19+
)
20+
target_link_libraries(${PROJECT_NAME}_zmq_node PRIVATE
21+
infinite_sense_core
22+
)

example/ZMQ/zmq_main.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#include "infinite_sense.h"
22
#include <thread>
33
using namespace infinite_sense;
4-
[[noreturn]] int main() {
4+
int main() {
55
Synchronizer synchronizer;
66
// use net link
77
// synchronizer.SetNetLink("192.168.1.188", 8888);

infinite_sense_core/CMakeLists.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
cmake_minimum_required(VERSION 3.16)
22

33
project(infinite_sense_core VERSION 0.1.0)
4+
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake CACHE INTERNAL "" FORCE)
5+
find_package(ZeroMQ REQUIRED)
46

57
set(PROJECT_INSTALL_DIR ${PROJECT_NAME})
68

@@ -46,10 +48,12 @@ message(STATUS "Find MVCAM_LIB_DIR : ${MVCAM_LIB_DIR}")
4648
target_link_directories(${PROJECT_NAME} PUBLIC
4749
BEFORE ${MVCAM_LIB_DIR}
4850
${CMAKE_INSTALL_RPATH}
51+
${ZeroMQ_INCLUDE_DIRS}
4952
)
5053

5154
# 链接库
5255
target_link_libraries(${PROJECT_NAME} PUBLIC
56+
${ZeroMQ_LIBRARIES}
5357
MvCameraControl
5458
serial
5559
udp
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
set(PKG_CONFIG_USE_CMAKE_PREFIX_PATH ON)
2+
find_package(PkgConfig)
3+
pkg_check_modules(PC_LIBZMQ QUIET libzmq)
4+
5+
set(ZeroMQ_VERSION ${PC_LIBZMQ_VERSION})
6+
7+
find_path(ZeroMQ_INCLUDE_DIR zmq.h
8+
PATHS ${ZeroMQ_DIR}/include
9+
${PC_LIBZMQ_INCLUDE_DIRS})
10+
11+
find_library(ZeroMQ_LIBRARY
12+
NAMES zmq
13+
PATHS ${ZeroMQ_DIR}/lib
14+
${PC_LIBZMQ_LIBDIR}
15+
${PC_LIBZMQ_LIBRARY_DIRS})
16+
17+
if (ZeroMQ_LIBRARY)
18+
set(ZeroMQ_FOUND ON)
19+
endif ()
20+
21+
set(ZeroMQ_LIBRARIES ${ZeroMQ_LIBRARY})
22+
set(ZeroMQ_INCLUDE_DIRS ${ZeroMQ_INCLUDE_DIR})
23+
24+
if (NOT TARGET libzmq)
25+
add_library(libzmq UNKNOWN IMPORTED)
26+
set_target_properties(libzmq PROPERTIES
27+
IMPORTED_LOCATION ${ZeroMQ_LIBRARIES}
28+
INTERFACE_INCLUDE_DIRECTORIES ${ZeroMQ_INCLUDE_DIRS})
29+
endif ()
30+
31+
include(FindPackageHandleStandardArgs)
32+
# handle the QUIETLY and REQUIRED arguments and set ZeroMQ_FOUND to TRUE
33+
# if all listed variables are TRUE
34+
find_package_handle_standard_args(ZeroMQ DEFAULT_MSG ZeroMQ_LIBRARIES ZeroMQ_INCLUDE_DIRS)

0 commit comments

Comments
 (0)