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
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)
|
|
|