|
@@ -1,7 +1,7 @@
|
|
|
-cmake_minimum_required(VERSION 3.10)
|
|
|
+cmake_minimum_required(VERSION 3.14)
|
|
|
|
|
|
# 设置项目名称
|
|
|
-project(modulecomm)
|
|
|
+project(example)
|
|
|
|
|
|
# 设置C++标准(如果需要)
|
|
|
set(CMAKE_CXX_STANDARD 11)
|
|
@@ -10,30 +10,34 @@ set(CMAKE_CXX_STANDARD 11)
|
|
|
set(CMAKE_SHARED_LIBRARY_PREFIX "")
|
|
|
set(CMAKE_SHARED_LIBRARY_SUFFIX ".so")
|
|
|
|
|
|
-add_custom_command(
|
|
|
- OUTPUT modulecomm_wrap.cxx
|
|
|
- COMMAND swig -c++ -python -outcurrentdir ./../modulecomm.i # 这是要运行的命令
|
|
|
- COMMENT "Running script to generate files" # 这条信息将在构建时显示
|
|
|
- VERBATIM # 这使得命令中的参数被直接传递,而不是被CMake进一步处理
|
|
|
+# 首先,我们尝试使用find_package找到Python库
|
|
|
+find_package(PythonLibs REQUIRED)
|
|
|
+# 然后,我们尝试使用find_path找到Python.h
|
|
|
+find_path(PYTHON_INCLUDE_DIRS
|
|
|
+ NAMES Python.h
|
|
|
+ PATHS ${PYTHON_LIBRARIES_DIR}
|
|
|
+ NO_DEFAULT_PATH
|
|
|
)
|
|
|
-# 假设你已经找到了PYTHON_EXECUTABLE
|
|
|
-find_path(PYTHON_INCLUDE_DIRS NAMES Python.h PATHS "/usr/include/python3.10" PATH_SUFFIXES include NO_DEFAULT_PATH)
|
|
|
-
|
|
|
-
|
|
|
-if(PYTHON_INCLUDE_DIRS)
|
|
|
- message(STATUS "Found Python include dirs at ${PYTHON_INCLUDE_DIRS}")
|
|
|
- include_directories(${PYTHON_INCLUDE_DIRS})
|
|
|
-else()
|
|
|
- message(FATAL_ERROR "Could not find Python include dirs")
|
|
|
-endif()
|
|
|
+# 如果在PYTHON_LIBRARIES_DIR中找不到Python.h,那么我们将搜索默认的路径
|
|
|
+if(NOT PYTHON_INCLUDE_DIRS)
|
|
|
+ find_path(PYTHON_INCLUDE_DIRS
|
|
|
+ NAMES Python.h
|
|
|
+ )
|
|
|
+endif()
|
|
|
+
|
|
|
|
|
|
-# 查找Qt组件
|
|
|
+#set(BP "310")
|
|
|
|
|
|
+#find_package(Boost REQUIRED COMPONENTS python${BP})
|
|
|
+
|
|
|
+find_package(Boost REQUIRED COMPONENTS python numpy system)
|
|
|
find_package(Qt5 COMPONENTS Core Xml REQUIRED)
|
|
|
+
|
|
|
|
|
|
# 添加你的源文件
|
|
|
|
|
|
-set(SOURCE_FILES
|
|
|
+set(SOURCE_FILES
|
|
|
+ modulecommpython.cpp
|
|
|
modulecomm.cpp
|
|
|
modulecomm_base.cpp
|
|
|
shm/modulecomm_shm.cpp
|
|
@@ -69,37 +73,13 @@ qt5_wrap_cpp(MOC_SOURCES ${HEADER_FILES})
|
|
|
# 将moc生成的文件添加到源文件中
|
|
|
|
|
|
list(APPEND SOURCE_FILES ${MOC_SOURCES})
|
|
|
-
|
|
|
-# 添加源文件
|
|
|
-add_library(libmodulecomm SHARED ${SOURCE_FILES})
|
|
|
-
|
|
|
-#add_library(adcmodulecomm SHARED ${SOURCE_FILES})
|
|
|
-
|
|
|
-# 添加头文件路径
|
|
|
-target_include_directories(libmodulecomm PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/shm ${CMAKE_CURRENT_SOURCE_DIR}/inter)
|
|
|
+# 现在MY_LATEST_SO_LIBRARY变量包含了找到的最新库的完整路径
|
|
|
|
|
|
-# 链接Qt库
|
|
|
+# 你可以将它链接到你的目标中
|
|
|
|
|
|
-target_link_libraries(libmodulecomm Qt5::Core Qt5::Xml)
|
|
|
+add_library(modulecommpython SHARED ${SOURCE_FILES})
|
|
|
|
|
|
-# 添加源文件
|
|
|
-add_library(_modulecomm SHARED ${SOURCE_FILES} modulecomm_wrap.cxx)
|
|
|
-
|
|
|
-# 设置OUTPUT_NAME属性来去掉lib前缀
|
|
|
-
|
|
|
-#set_target_properties(_modulecomm PROPERTIES OUTPUT_NAME adcmodulecomm)
|
|
|
-
|
|
|
-#add_library(adcmodulecomm SHARED ${SOURCE_FILES})
|
|
|
-
|
|
|
# 添加头文件路径
|
|
|
-target_include_directories(_modulecomm PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/shm ${CMAKE_CURRENT_SOURCE_DIR}/inter)
|
|
|
+target_include_directories(modulecommpython PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${PYTHON_INCLUDE_DIRS} ${CMAKE_CURRENT_SOURCE_DIR}/shm ${CMAKE_CURRENT_SOURCE_DIR}/inter)
|
|
|
|
|
|
-# 链接Qt库
|
|
|
-
|
|
|
-target_link_libraries(_modulecomm Qt5::Core Qt5::Xml)
|
|
|
-
|
|
|
-# 安装目标(如果需要)
|
|
|
-#install(TARGETS MyLibrary DESTINATION lib)
|
|
|
-
|
|
|
-# 如果库依赖于其他库,可以使用 target_link_libraries 添加依赖
|
|
|
-# 例如:target_link_libraries(MyLibrary PRIVATE SomeOtherLibrary)
|
|
|
+target_link_libraries(modulecommpython Boost::python Boost::numpy Boost::system Qt5::Core Qt5::Xml)
|