find_package(Boost REQUIRED COMPONENTS log log_setup program_options) add_library(Universal BoostLog.h BoostLog.inl BoostLog.cpp BufferUtility.h BufferUtility.cpp DateTime.h DateTime.cpp FunctionTraits.h IoContext.h IoContext.cpp MessageManager.h MessageManager.inl MessageManager.cpp ProcessUtility.h ProcessUtility.inl ProcessUtility.cpp Singleton.h SingletonProcess.h SingletonProcess.cpp StreamFormat.h StreamFormat.inl StreamFormat.cpp StringUtility.h StringUtility.cpp ) if(CMAKE_VERSION VERSION_LESS 3.20) get_filename_component(KYLIN_CORE_INCLUDE_PATH ${CMAKE_CURRENT_SOURCE_DIR} DIRECTORY) else() cmake_path(GET CMAKE_CURRENT_SOURCE_DIR PARENT_PATH KYLIN_CORE_INCLUDE_PATH) endif() target_include_directories(Universal INTERFACE ${CMAKE_CURRENT_SOURCE_DIR} INTERFACE ${KYLIN_CORE_INCLUDE_PATH} PUBLIC ${Boost_INCLUDE_DIRS} ) target_link_libraries(Universal PUBLIC ${Boost_LIBRARIES} )