From c52ac371864f40a26cb7097ba829a4387597c497 Mon Sep 17 00:00:00 2001 From: Arnaud Giersch Date: Thu, 3 Mar 2022 14:30:09 +0100 Subject: [PATCH] Make smpi compilation script work when there are spaces in path names. Fix simgrid/simgrid#87 --- CMakeLists.txt | 6 +++--- ChangeLog | 1 + src/smpi/smpicc.in | 8 ++++---- src/smpi/smpicxx.in | 8 ++++---- src/smpi/smpif90.in | 8 ++++---- src/smpi/smpiff.in | 8 ++++---- 6 files changed, 20 insertions(+), 19 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 457be86f4a..c234bf3520 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -540,7 +540,7 @@ file(READ ${CMAKE_HOME_DIRECTORY}/src/smpi/smpitools.sh SMPITOOLS_SH) # Definiti set(exec_prefix ${CMAKE_INSTALL_PREFIX}) set(includedir "${CMAKE_INSTALL_FULL_INCLUDEDIR}") set(libdir "${CMAKE_INSTALL_FULL_LIBDIR}") -set(includeflag "-I${includedir} -I${includedir}/smpi") +set(includeflag "\"-I${includedir}\" \"-I${includedir}/smpi\"") set(CMAKE_SMPI_COMMAND "export LD_LIBRARY_PATH=\"${libdir}") if(NS3_LIBRARY_PATH) set(CMAKE_SMPI_COMMAND "${CMAKE_SMPI_COMMAND}:${NS3_LIBRARY_PATH}") @@ -568,8 +568,8 @@ endforeach() set(exec_prefix "${CMAKE_BINARY_DIR}/smpi_script/") set(includedir "${CMAKE_HOME_DIRECTORY}/include") set(libdir "${CMAKE_BINARY_DIR}/lib") -set(includeflag "-I${includedir} -I${includedir}/smpi") -set(includeflag "${includeflag} -I${CMAKE_BINARY_DIR}/include -I${CMAKE_BINARY_DIR}/include/smpi") +set(includeflag "\"-I${includedir}\" \"-I${includedir}/smpi\"") +set(includeflag "${includeflag} \"-I${CMAKE_BINARY_DIR}/include\" \"-I${CMAKE_BINARY_DIR}/include/smpi\"") set(CMAKE_SMPI_COMMAND "export LD_LIBRARY_PATH=\"${libdir}") if(NS3_LIBRARY_PATH) set(CMAKE_SMPI_COMMAND "${CMAKE_SMPI_COMMAND}:${NS3_LIBRARY_PATH}") diff --git a/ChangeLog b/ChangeLog index 730556e863..a868261f00 100644 --- a/ChangeLog +++ b/ChangeLog @@ -26,6 +26,7 @@ XBT: Fixed bugs (FG#.. -> FramaGit bugs; FG!.. -> FG merge requests) (FG: issues on Framagit; GH: issues on GitHub) - FG#57: Mc SimGrid should test whether ptrace is usable + - FG#87: Smpi scripts fail with spaces in paths - FG#100: [SMPI] Order of the message matching is not guaranteed - FG#101: LGPL 2.1 is deprecated license - GH#151: Missing mutexes for DPOR. diff --git a/src/smpi/smpicc.in b/src/smpi/smpicc.in index 7ed93ffa44..6463ec80fb 100755 --- a/src/smpi/smpicc.in +++ b/src/smpi/smpicc.in @@ -11,11 +11,11 @@ SIMGRID_GITHASH="@GIT_VERSION@" CC=@CMAKE_C_COMPILER@ -INCLUDEARGS="@includeflag@" -CMAKE_LINKARGS="-L@libdir@" - @SMPITOOLS_SH@ +list_set INCLUDEARGS @includeflag@ +list_set CMAKE_LINKARGS "-L@libdir@" + # Don't use -Wl,-z-defs with Clang and address sanitizer if [ "@CMAKE_C_COMPILER_ID@" = "Clang" ] && [ "@HAVE_SANITIZER_ADDRESS@" = "TRUE" ]; then LINKER_UNDEFINED_ERROR="" @@ -95,7 +95,7 @@ done list_set CMDLINE "${CC}" list_add_not_empty CMDLINE "${CFLAGS}" -list_add_not_empty CMDLINE ${INCLUDEARGS} +list_add_not_empty CMDLINE "${INCLUDEARGS}" list_add_not_empty CMDLINE "${CMAKE_LINKARGS}" list_add_not_empty CMDLINE "${CMDARGS}" list_add_not_empty CMDLINE "${LINKARGS}" diff --git a/src/smpi/smpicxx.in b/src/smpi/smpicxx.in index ac2beeb4ba..944870c189 100755 --- a/src/smpi/smpicxx.in +++ b/src/smpi/smpicxx.in @@ -11,11 +11,11 @@ SIMGRID_GITHASH="@GIT_VERSION@" CXX=@CMAKE_CXX_COMPILER@ -INCLUDEARGS="@includeflag@" -CMAKE_LINKARGS="-L@libdir@" - @SMPITOOLS_SH@ +list_set INCLUDEARGS @includeflag@ +list_set CMAKE_LINKARGS "-L@libdir@" + list_set CXXFLAGS "-std=gnu++11" @SMPI_CXX_FLAGS@ list_set LINKARGS @@ -92,7 +92,7 @@ done list_set CMDLINE "${CXX}" list_add_not_empty CMDLINE "${CXXFLAGS}" -list_add_not_empty CMDLINE ${INCLUDEARGS} +list_add_not_empty CMDLINE "${INCLUDEARGS}" list_add_not_empty CMDLINE "${CMAKE_LINKARGS}" list_add_not_empty CMDLINE "${CMDARGS}" list_add_not_empty CMDLINE "${LINKARGS}" diff --git a/src/smpi/smpif90.in b/src/smpi/smpif90.in index 2bae9781bd..a8a95db973 100644 --- a/src/smpi/smpif90.in +++ b/src/smpi/smpif90.in @@ -10,11 +10,11 @@ SIMGRID_GITHASH="@GIT_VERSION@" REAL_FORTRAN_COMPILER=@SMPI_Fortran_COMPILER@ -INCLUDEARGS="@includeflag@" -CMAKE_LINKARGS="-L@libdir@" - @SMPITOOLS_SH@ +list_set INCLUDEARGS @includeflag@ +list_set CMAKE_LINKARGS "-L@libdir@" + list_set FFLAGS @SMPI_Fortran_FLAGS@ list_set LINKARGS "-lsimgrid" @SMPI_Fortran_LIBS@ "-lm" if [ "x${SMPI_PRETEND_CC}" = "x" ]; then @@ -112,7 +112,7 @@ if [ $NEEDS_OUTPUT -ne 0 ]; then list_add CMDLINE "-o${ORIGFILE}.o" fi -list_add_not_empty CMDLINE ${INCLUDEARGS} +list_add_not_empty CMDLINE "${INCLUDEARGS}" list_add_not_empty CMDLINE "${CMAKE_LINKARGS}" list_add_not_empty CMDLINE "${LINKARGS}" diff --git a/src/smpi/smpiff.in b/src/smpi/smpiff.in index fa32a9cf1c..9ec8cff2a8 100644 --- a/src/smpi/smpiff.in +++ b/src/smpi/smpiff.in @@ -10,11 +10,11 @@ SIMGRID_GITHASH="@GIT_VERSION@" REAL_FORTRAN_COMPILER=@SMPI_Fortran_COMPILER@ -INCLUDEARGS="@includeflag@" -CMAKE_LINKARGS="-L@libdir@" - @SMPITOOLS_SH@ +list_add INCLUDEARGS @includeflag@ +list_set CMAKE_LINKARGS "-L@libdir@" + list_set FFLAGS @SMPI_Fortran_FLAGS@ list_set LINKARGS "-lsimgrid" @SMPI_Fortran_LIBS@ "-lm" if [ "x${SMPI_PRETEND_CC}" = "x" ]; then @@ -149,7 +149,7 @@ if [ $NEEDS_OUTPUT -ne 0 ]; then list_add CMDLINE "-o${ORIGFILE}.o" fi -list_add_not_empty CMDLINE ${INCLUDEARGS} +list_add_not_empty CMDLINE "${INCLUDEARGS}" list_add_not_empty CMDLINE "${CMAKE_LINKARGS}" list_add_not_empty CMDLINE "${LINKARGS}" -- 2.20.1