# Copyright (c) 2023, AgiBot Inc. # All rights reserved. # Get the current folder name string(REGEX REPLACE ".*/\(.*\)" "\\1" CUR_DIR ${CMAKE_CURRENT_SOURCE_DIR}) # Get namespace get_namespace(CUR_SUPERIOR_NAMESPACE) string(REPLACE "::" "_" CUR_SUPERIOR_NAMESPACE_UNDERLINE ${CUR_SUPERIOR_NAMESPACE}) # Set target name set(CUR_TARGET_NAME ${CUR_SUPERIOR_NAMESPACE_UNDERLINE}_${CUR_DIR}) set(CUR_TARGET_ALIAS_NAME ${CUR_SUPERIOR_NAMESPACE}::${CUR_DIR}) # Set file collection file(GLOB_RECURSE head_files ${CMAKE_CURRENT_SOURCE_DIR}/*.h) file(GLOB_RECURSE test_files ${CMAKE_CURRENT_SOURCE_DIR}/*_test.cc) # Add target add_library(${CUR_TARGET_NAME} INTERFACE) add_library(${CUR_TARGET_ALIAS_NAME} ALIAS ${CUR_TARGET_NAME}) # Set include path of target target_include_directories( ${CUR_TARGET_NAME} INTERFACE $ $) # Set link libraries of target target_link_libraries( ${CUR_TARGET_NAME} INTERFACE aimrt::common::util Boost::beast) # Set compile definitions of target target_compile_definitions(${CUR_TARGET_NAME} INTERFACE BOOST_ASIO_NO_DEPRECATED) # Set compile options of target if(WIN32) target_compile_options(${CUR_TARGET_NAME} INTERFACE /bigobj) endif() # Set test of target if(AIMRT_BUILD_TESTS AND test_files) add_gtest_target(TEST_TARGET ${CUR_TARGET_NAME} TEST_SRC ${test_files}) endif()