123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- set(SON_PROJECT_NAME clamp_lidar)
- message("========== Load son project ${SON_PROJECT_NAME} ==========" )
- option(OPTION_COMMUNICATION_WITH_PLC "plc通信" OFF)
- message("<=${SON_PROJECT_NAME}=> OPTION_COMMUNICATION_WITH_PLC: " ${OPTION_COMMUNICATION_WITH_PLC})
- if(OPTION_COMMUNICATION_WITH_PLC AND NOT ENABLE_LIBRARY_PLC)
- message(FATAL_ERROR "OPTION_COMMUNICATION_WITH_PLC ON but ENABLE_LIBRARY_PLC OFF")
- endif ()
- if(NOT ENABLE_LIBRARY_PCL)
- message(FATAL_ERROR "ENABLE_LIBRARY_PCL OFF")
- endif ()
- if (NOT ENABLE_LIBRARY_GOOGLE_LOG)
- message(FATAL_ERROR "ENABLE_LIBRARY_GOOGLE_LOG OFF")
- endif ()
- if (NOT ENABLE_LIBRARY_JSON)
- message(FATAL_ERROR "ENABLE_LIBRARY_JSON OFF")
- endif ()
- if (NOT ENABLE_LIBRARY_THREAD)
- message(FATAL_ERROR "Not enable ENABLE_LIBRARY_THREAD")
- endif ()
- if (OPTION_COMMUNICATION_WITH_PLC)
- set(snap7_include "/usr/local/include/snap7")
- if(IS_DIRECTORY ${snap7_include})
- include_directories(${snap7_include})
- else ()
- message(FATAL_ERROR "Not found snap7 directory ${snap7_include}")
- endif ()
- aux_source_directory(${CMAKE_CURRENT_LIST_DIR}/plc plc)
- set(SON_PROJECT_SOURCE_LIST ${SON_PROJECT_SOURCE_LIST} ${plc})
- set(SON_PROJECT_DEPEND_LIST ${SON_PROJECT_DEPEND_LIST} libplc)
- add_definitions(-DOPTION_COMMUNICATION_WITH_PLC=1)
- else ()
- add_definitions(-DOPTION_COMMUNICATION_WITH_PLC=0)
- endif ()
- include_directories(
- ${PCL_INCLUDE_DIRS}
- )
- aux_source_directory(${CMAKE_CURRENT_LIST_DIR}/lidar lidar)
- aux_source_directory(${CMAKE_CURRENT_LIST_DIR}/detect detect)
- set(SON_PROJECT_SOURCE_LIST ${SON_PROJECT_SOURCE_LIST}
- ${lidar}
- ${detect}
- ${CMAKE_CURRENT_LIST_DIR}/main.cpp
- )
- set(SON_PROJECT_DEPEND_LIST ${SON_PROJECT_DEPEND_LIST}
- libjson
- liblog
- libpcl
- libthread
- ${PROTOBUF_LIBRARIES}
- )
- add_executable(${SON_PROJECT_NAME} ${SON_PROJECT_SOURCE_LIST})
- target_link_libraries(${SON_PROJECT_NAME} ${SON_PROJECT_DEPEND_LIST})
- target_compile_definitions(${SON_PROJECT_NAME} PRIVATE PROJECT_NAME="${SON_PROJECT_NAME}")
- install(TARGETS ${SON_PROJECT_NAME}
- LIBRARY DESTINATION lib # 动态库安装路径
- ARCHIVE DESTINATION lib # 静态库安装路径
- RUNTIME DESTINATION bin # 可执行文件安装路径
- PUBLIC_HEADER DESTINATION include # 头文件安装路径
- )
|