You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

41 lines
1.6 KiB

# 令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
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build # 生成DLL到build下
)
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 RUNTIME DESTINATION lib)
install(TARGETS WireRoutingLib RUNTIME DESTINATION bin) # .dll
install(FILES ${INCLUDE_FILES_IN_LIB} DESTINATION include)