diff --git a/CMakeLists.txt b/CMakeLists.txt index 6f878c2..c57b996 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,7 +15,7 @@ project( #------------REQUIRED_4 指定C++标准------------# # !!!不要在库中使用此方式!!!,使用set_target_properties/set_property来针对目标设置标准 -# 设置缓存变量: 设置了 C++ 标准的级别为 11(STRING) ,保存在CMakeCache.txt文件中,此处“”内容会写入为注释 +# 设置缓存变量: 设置了 C++ 标准的级别为 17(STRING) ,保存在CMakeCache.txt文件中,此处“”内容会写入为注释 set(CMAKE_CXX_STANDARD 17 CACHE STRING "The C++ standard to use") # 告诉 CMake 使用上述设置 set(CMAKE_CXX_STANDARD_REQUIRED ON) @@ -76,7 +76,7 @@ add_subdirectory(lib) # 添加子目录,子目录中的CMakeLists.txt将会被 aux_source_directory(src SRC_DIR) add_executable( ${PROJECT_NAME} # 既是生成的可执行文件的名称,也是创建的 CMake 目标(target)的名称 - ${SRC_DIR} + ${SRC_DIR} ) @@ -89,12 +89,13 @@ if (WIN32) target_link_libraries( ${PROJECT_NAME} PUBLIC unofficial-tinyxml::unofficial-tinyxml - ${CMAKE_SOURCE_DIR}/lib/Debug/WireRouting.lib + ${CMAKE_SOURCE_DIR}/lib/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 ) endif() @@ -105,7 +106,7 @@ target_include_directories( # PUBLIC 影响当前目标和链接到这个目标的目标(库) # PRIVATE(只影响当前目标,不影响依赖) # INTERFACE(只影响依赖) - ${PROJECT_NAME} PUBLIC + ${PROJECT_NAME} PUBLIC ${PROJECT_BINARY_DIR} # config.h.in 会生成配置在 build 目录 ${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/lib/include diff --git a/include/ReadXML.h b/include/read_xml.h similarity index 100% rename from include/ReadXML.h rename to include/read_xml.h diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index 2256370..af185cc 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -1,23 +1,52 @@ +##------------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}") -add_library(WireRouting SHARED ${SRC_FILES_IN_LIB}) -target_compile_definitions(WireRouting PUBLIC DMY_LIB_SHARED_BUILD) -target_compile_definitions(WireRouting PRIVATE WIREROUTINGDLL_EXPORTS) +add_library(WireRoutingLib SHARED ${SRC_FILES_IN_LIB}) -INSTALL(TARGETS WireRouting DESTINATION ${CMAKE_SOURCE_DIR}/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}) -SET_TARGET_PROPERTIES( - WireRouting 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 "WireRouting" - PREFIX "" -) + 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( + 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 "" + ) +endif() target_include_directories( - WireRouting PUBLIC + WireRoutingLib PUBLIC ${CMAKE_SOURCE_DIR}/lib/include ) diff --git a/lib/WireRoutingLib.dylib b/lib/WireRoutingLib.dylib new file mode 100755 index 0000000..c1dc0ad Binary files /dev/null and b/lib/WireRoutingLib.dylib differ diff --git a/src/xmlsql.cpp b/src/xmlsql.cpp index 174f279..c4e1a16 100644 --- a/src/xmlsql.cpp +++ b/src/xmlsql.cpp @@ -1,7 +1,7 @@ #include "Astar.h" #include "Geometry.h" #include "Intersection.h" -#include "readxml.h" +#include "read_xml.h" #include "tinyxml.h" @@ -444,6 +444,7 @@ int main(int argc, char *argv[]) cerr << "Failed to parse OBJ file." << endl; } } + intersection_model = 0; //取消碰撞检测 // 读取卡箍点 vector clipFileNames;