# 令MSVC忽略 C4819 warning if (WIN32) add_compile_options(/wd4819) endif() aux_source_directory(${CMAKE_SOURCE_DIR}/lib/src SRC_FILES_IN_LIB) message(STATUS "SRC_FILES_IN_LIB: ${SRC_FILES_IN_LIB}") # 链接源码到WireRoutingLib add_library(WireRoutingLib SHARED ${SRC_FILES_IN_LIB}) # 添加WIREROUTINGDLL_EXPORTS预处理宏,构建WireRoutingLib时指定export target_compile_definitions(WireRoutingLib PRIVATE WIREROUTINGDLL_EXPORTS) # 指定C++标准与生成链接库文件名 set_target_properties( WireRoutingLib PROPERTIES OUTPUT_NAME "WireRoutingLib" PREFIX "" CXX_STANDARD 17 CXX_STANDARD_REQUIRED ON CXX_EXTENSIONS OFF ) get_target_property(CXX_STD_VER WireRoutingLib CXX_STANDARD) message(STATUS "C++ version using: " ${CXX_STD_VER}) # 添加头文件路径 target_include_directories( WireRoutingLib PUBLIC ${CMAKE_SOURCE_DIR}/lib/include ) file(GLOB INCLUDE_FILES_IN_LIB "${CMAKE_SOURCE_DIR}/lib/include/*.h") message(STATUS "INCLUDE_FILES_IN_LIB: ${INCLUDE_FILES_IN_LIB}") # make install 转移生成链接库的目标路径 set(CMAKE_INSTALL_PREFIX "${CMAKE_SOURCE_DIR}/publish" CACHE PATH "Install path prefix" FORCE) install(TARGETS WireRoutingLib ARCHIVE DESTINATION lib) install(TARGETS WireRoutingLib LIBRARY DESTINATION lib) install(TARGETS WireRoutingLib LIBRARY DESTINATION bin) install(FILES ${INCLUDE_FILES_IN_LIB} DESTINATION include)