# ----------------------------------------# # Hesai Tech # # ----------------------------------------# cmake_minimum_required(VERSION 2.8) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_STANDARD 14) project(CommonModules) if(POLICY CMP0074) cmake_policy(SET CMP0074 NEW) else() cmake_policy(SET CMP0065 NEW) endif() set(CMAKE_BUILD_TYPE ON) # Add each module's entry set(WITH_LIDARBOARD ON CACHE BOOL "Build lidarboard code") set(WITH_PLATUTIL ON CACHE BOOL "Build platform utils code") set(WITH_UDPPARSER ON CACHE BOOL "Build udp parser code") set(WITH_PTCCLIENT ON CACHE BOOL "Build ptc client code") set(WITH_PTCPARSER ON CACHE BOOL "Build ptc parser code") set(WITH_CONTAINER ON CACHE BOOL "Build container code") set(WITH_LOG ON CACHE BOOL "Build log code") find_package(Boost REQUIRED COMPONENTS system filesystem thread iostreams) set(Boost_INCLUDE_DIRS "/usr/local/mdc_sdk_llvm/dp_gea/mdc_cross_compiler/sysroot/usr/include") add_definitions(-DQT_MESSAGELOGCONTEXT) include_directories( ./ include Lidar UdpProtocol Server UdpParser UdpParser/include UdpParser/src PtcParser PtcParser/include PtcParser/src Source/include Container/include Container/src PtcClient/include Logger/include ${OPENSSL_INCLUDE_DIR} ${Boost_INCLUDE_DIRS} ) # Make each module an 'OBJECT' library, can be refered to by get_link_libraries if(WITH_PTCCLIENT) add_library(ptcClient_lib PtcClient/src/ptc_client.cc PtcClient/src/tcp_client.cc PtcClient/src/tcp_ssl_client.cc ) target_link_libraries(ptcClient_lib ${OPENSSL_LIBRARIES} ) set_target_properties(ptcClient_lib PROPERTIES CXX_STANDARD_REQUIRED TRUE CXX_STANDARD 14) endif(WITH_PTCCLIENT) if(WITH_PTCPARSER) add_library(ptcParser_lib PtcParser/src/general_ptc_parser.cc PtcParser/src/ptc_1_0_parser.cc PtcParser/src/ptc_2_0_parser.cc PtcParser/ptc_parser.cc) set_target_properties(ptcParser_lib PROPERTIES CXX_STANDARD_REQUIRED TRUE CXX_STANDARD 14) endif(WITH_PTCPARSER) if(WITH_CONTAINER) add_library(container_lib Container/src/ring_2d_shared.cc Container/src/ring_2dex.cc) set_target_properties(container_lib PROPERTIES CXX_STANDARD_REQUIRED TRUE CXX_STANDARD 14) endif(WITH_CONTAINER) if(WITH_LIDARBOARD) add_library(source_lib Source/src/source.cc Source/src/socket_source.cc Source/src/pcap_source.cc Source/src/pcap_saver.cc ) target_link_libraries(source_lib platutils_lib container_lib ptcClient_lib Boost::iostreams ${Boost_LIBRARIES}) set_target_properties(source_lib PROPERTIES CXX_STANDARD_REQUIRED TRUE CXX_STANDARD 14) endif(WITH_LIDARBOARD) if(WITH_PLATUTIL) add_library(platutils_lib ./src/plat_utils.cc ./src/auto_tick_count.cc) set_target_properties(platutils_lib PROPERTIES CXX_STANDARD_REQUIRED TRUE CXX_STANDARD 14) endif(WITH_PLATUTIL) if(WITH_LOG) find_package(Threads) add_library(log_lib EXCLUDE_FROM_ALL Logger/src/logger.cc) target_link_libraries(log_lib ${CMAKE_THREAD_LIBS_INIT}) set_target_properties(log_lib PROPERTIES CXX_STANDARD_REQUIRED TRUE CXX_STANDARD 14) endif(WITH_LOG) # Property include_directories(${PROJECT_SOURCE_DIR})