diff --git a/CMakeLists.txt b/CMakeLists.txt index c57b996..1750991 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -89,13 +89,13 @@ if (WIN32) target_link_libraries( ${PROJECT_NAME} PUBLIC unofficial-tinyxml::unofficial-tinyxml - ${CMAKE_SOURCE_DIR}/lib/Debug/WireRoutingLib.lib + ${CMAKE_SOURCE_DIR}/build/Debug/WireRoutingLib.lib ) else() target_link_libraries( ${PROJECT_NAME} PUBLIC /opt/homebrew/Cellar/tinyxml/2.6.2/lib/libtinyxml.dylib - ${CMAKE_SOURCE_DIR}/lib/WireRoutingLib.dylib + ${CMAKE_SOURCE_DIR}/build/lib/WireRoutingLib.dylib ) endif() diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index af185cc..88387fa 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -1,48 +1,33 @@ -##------------REQUIRED_4 指定C++标准------------# -## !!!不要在库中使用此方式!!!,使用set_target_properties/set_property来针对目标设置标准 -## 设置缓存变量: 设置了 C++ 标准的级别为 17(STRING) ,保存在CMakeCache.txt文件中,此处“”内容会写入为注释 -#set(CMAKE_CXX_STANDARD 17 CACHE STRING "The C++ standard to use") -## 告诉 CMake 使用上述设置 -#set(CMAKE_CXX_STANDARD_REQUIRED ON) -## 关闭了拓展,来明确自己使用了 -std=c++11 还是 -std=g++11 -#set(CMAKE_CXX_EXTENSIONS OFF) - -#set_target_properties() - aux_source_directory(${CMAKE_SOURCE_DIR}/lib/src SRC_FILES_IN_LIB) message(STATUS "SRC_FILES_IN_LIB: ${SRC_FILES_IN_LIB}") +# 不报告C4819 warning +add_compile_options(/wd4819) + add_library(WireRoutingLib SHARED ${SRC_FILES_IN_LIB}) -if (APPLE) - 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}) +# 添加WIREROUTINGDLL_EXPORTS预处理宏,构建WireRoutingLib时指定export +target_compile_definitions(WireRoutingLib PRIVATE WIREROUTINGDLL_EXPORTS) - add_custom_command( - TARGET WireRoutingLib POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy - ${CMAKE_SOURCE_DIR}/build/lib/WireRoutingLib.dylib ${CMAKE_SOURCE_DIR}/lib - ) -elseif (WIN32) - target_compile_definitions(WireRoutingLib PUBLIC DMY_LIB_SHARED_BUILD) - target_compile_definitions(WireRoutingLib PRIVATE WireRoutingLibDLL_EXPORTS) - INSTALL(TARGETS WireRoutingLib DESTINATION ${CMAKE_SOURCE_DIR}/lib) - SET_TARGET_PROPERTIES( +set_target_properties( WireRoutingLib PROPERTIES - LINKER_LANGUAGE C - ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib - RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build - LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/lib 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}) + +if (WIN32) +# INSTALL(TARGETS WireRoutingLib DESTINATION ${CMAKE_SOURCE_DIR}/lib) + SET_TARGET_PROPERTIES( + WireRoutingLib PROPERTIES +# LINKER_LANGUAGE C + ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build + RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build + LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/build ) endif() diff --git a/lib/Debug/WireRouting.exp b/lib/Debug/WireRouting.exp deleted file mode 100644 index 1d99ec1..0000000 Binary files a/lib/Debug/WireRouting.exp and /dev/null differ diff --git a/lib/Debug/WireRouting.lib b/lib/Debug/WireRouting.lib deleted file mode 100644 index a7453ae..0000000 Binary files a/lib/Debug/WireRouting.lib and /dev/null differ diff --git a/lib/WireRoutingLib.dylib b/lib/WireRoutingLib.dylib deleted file mode 100755 index c1dc0ad..0000000 Binary files a/lib/WireRoutingLib.dylib and /dev/null differ