diff --git a/CMakeLists.txt b/CMakeLists.txt index 9f17477ce..251ab4191 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -108,28 +108,15 @@ target_link_libraries(${PROJECT_NAME} metis) set_property(TARGET ${PROJECT_NAME} PROPERTY ENABLE_EXPORTS 1) if (USE_MPI) - add_executable(solver.pardiso Toolbox/solver.pardiso.cpp) - add_executable(tester.pardiso Toolbox/tester.pardiso.cpp) - add_dependencies(tester.pardiso solver.pardiso) - if (COMPILER_IDENTIFIER MATCHES "(linux|mac)") - target_link_libraries(solver.pardiso mpi) - target_link_libraries(tester.pardiso mpi) - target_link_libraries(${PROJECT_NAME} mpi) - if (NOT USE_INTEL_MPI) - target_link_libraries(solver.pardiso mpi_cxx mpi_mpifh) - target_link_libraries(tester.pardiso mpi_cxx mpi_mpifh) - target_link_libraries(${PROJECT_NAME} mpi_cxx mpi_mpifh) - else () - target_link_libraries(solver.pardiso mpifort) - target_link_libraries(tester.pardiso mpifort) - target_link_libraries(${PROJECT_NAME} mpifort) - endif () + if (NOT COMPILER_IDENTIFIER MATCHES "(linux|mac)") # windows only support intel mpi + set(MPI_LIBS impi impicxx) + elseif (USE_INTEL_MPI) + set(MPI_LIBS mpi mpifort) else () - target_link_libraries(solver.pardiso impi impicxx) - target_link_libraries(tester.pardiso impi impicxx) - target_link_libraries(${PROJECT_NAME} impi impicxx) + set(MPI_LIBS mpi mpi_cxx mpi_mpifh) endif () - add_dependencies(${PROJECT_NAME} solver.pardiso) + add_subdirectory(MPI) + target_link_libraries(${PROJECT_NAME} ${MPI_LIBS}) endif () if (COMPILER_IDENTIFIER MATCHES "(linux|mac)") diff --git a/MPI/CMakeLists.txt b/MPI/CMakeLists.txt new file mode 100644 index 000000000..fe038f0e5 --- /dev/null +++ b/MPI/CMakeLists.txt @@ -0,0 +1,13 @@ +cmake_minimum_required(VERSION 3.0) + +project(mpi-solver) + +add_executable(solver.pardiso solver.pardiso.cpp) +add_executable(tester.pardiso tester.pardiso.cpp) + +target_link_libraries(solver.pardiso ${MPI_LIBS}) +target_link_libraries(tester.pardiso ${MPI_LIBS}) + +add_dependencies(tester.pardiso solver.pardiso) + +add_dependencies(suanPan solver.pardiso) diff --git a/Toolbox/solver.pardiso.cpp b/MPI/solver.pardiso.cpp similarity index 100% rename from Toolbox/solver.pardiso.cpp rename to MPI/solver.pardiso.cpp diff --git a/Toolbox/tester.pardiso.cpp b/MPI/tester.pardiso.cpp similarity index 100% rename from Toolbox/tester.pardiso.cpp rename to MPI/tester.pardiso.cpp diff --git a/MSVC/suanPan/solver.pardiso/solver.pardiso.vcxproj b/MSVC/suanPan/solver.pardiso/solver.pardiso.vcxproj index 1372e83bd..606fae239 100644 --- a/MSVC/suanPan/solver.pardiso/solver.pardiso.vcxproj +++ b/MSVC/suanPan/solver.pardiso/solver.pardiso.vcxproj @@ -11,7 +11,7 @@ - + 16.0 diff --git a/MSVC/suanPan/solver.pardiso/solver.pardiso.vcxproj.filters b/MSVC/suanPan/solver.pardiso/solver.pardiso.vcxproj.filters index 82e19abfc..d81b308f0 100644 --- a/MSVC/suanPan/solver.pardiso/solver.pardiso.vcxproj.filters +++ b/MSVC/suanPan/solver.pardiso/solver.pardiso.vcxproj.filters @@ -7,7 +7,7 @@ - + SRC diff --git a/MSVC/suanPan/tester.pardiso/tester.pardiso.vcxproj b/MSVC/suanPan/tester.pardiso/tester.pardiso.vcxproj index cfdb8ce2f..ed37294a6 100644 --- a/MSVC/suanPan/tester.pardiso/tester.pardiso.vcxproj +++ b/MSVC/suanPan/tester.pardiso/tester.pardiso.vcxproj @@ -11,7 +11,7 @@ - + 16.0 diff --git a/MSVC/suanPan/tester.pardiso/tester.pardiso.vcxproj.filters b/MSVC/suanPan/tester.pardiso/tester.pardiso.vcxproj.filters index 767946c59..cf353f081 100644 --- a/MSVC/suanPan/tester.pardiso/tester.pardiso.vcxproj.filters +++ b/MSVC/suanPan/tester.pardiso/tester.pardiso.vcxproj.filters @@ -7,7 +7,7 @@ - + SRC