Skip to content

Commit a1de4c6

Browse files
committed
Fixing bug with MPI linking with spack
1 parent 35ab96a commit a1de4c6

File tree

3 files changed

+23
-11
lines changed

3 files changed

+23
-11
lines changed

CMakeLists.txt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Set some CMake properties
22
INCLUDE(CheckCXXCompilerFlag)
33
INCLUDE(CheckCXXSourceCompiles)
4-
CMAKE_MINIMUM_REQUIRED(VERSION 3.9)
4+
CMAKE_MINIMUM_REQUIRED(VERSION 3.20.0)
55

66

77
MESSAGE( "===========================" )
@@ -89,6 +89,7 @@ IF ( ( NOT DEFINED USE_MPI ) OR ( USE_MPI AND NOT MPI_SKIP_SEARCH ) )
8989
IF ( NOT DEFINED USE_MPI )
9090
SET( USE_MPI ${MPI_FOUND} )
9191
ENDIF()
92+
SET( USE_FIND_PACKAGE_MPI TRUE )
9293
ENDIF()
9394
IF ( USE_MPI )
9495
IF ( MPI_SKIP_SEARCH )
@@ -130,6 +131,9 @@ IF ( USE_MPI )
130131
ADD_DEFINITIONS( -DUSE_MPI )
131132
INCLUDE_DIRECTORIES( ${MPI_CXX_INCLUDE_PATH} )
132133
SET( SET_USE_MPI "1" )
134+
IF ( TARGET MPI::MPI_CXX )
135+
SET( MPICXX_LIBS MPI::MPI_CXX )
136+
ENDIF()
133137
ELSE()
134138
SET( SET_USE_MPI "0" )
135139
ENDIF()
@@ -212,7 +216,7 @@ ENDIF()
212216
# Add library
213217
ADD_LIBRARY( stacktrace ${LIB_TYPE} Utilities.cpp StackTrace.cpp StackTraceThreads.cpp )
214218
ADD_DEPENDENCIES( stacktrace StackTrace-include )
215-
TARGET_LINK_LIBRARIES( stacktrace ${CMAKE_DL_LIBS} ${SYSTEM_LIBS} ${TIMER_LIB} )
219+
TARGET_LINK_LIBRARIES( stacktrace ${CMAKE_DL_LIBS} ${SYSTEM_LIBS} ${TIMER_LIB} ${MPICXX_LIBS} )
216220
INSTALL( TARGETS stacktrace DESTINATION "${${PROJ}_INSTALL_DIR}/lib" )
217221
INSTALL( TARGETS stacktrace EXPORT StackTraceTargets DESTINATION "${${PROJ}_INSTALL_DIR}/lib" )
218222
INSTALL( EXPORT StackTraceTargets

cmake/StackTrace.cmake.in

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,16 @@ SET_AND_CHECK( STACKTRACE_LIB_DIR "@StackTrace_INSTALL_DIR@/lib" )
99
SET( STACKTRACE_USE_TIMER @USE_TIMER@ )
1010
SET( STACKTRACE_TIMER_DIRECTORY @TIMER_DIRECTORY@ )
1111

12+
IF ( @USE_FIND_PACKAGE_MPI@ AND NOT MPI_FOUND )
13+
IF ( NOT MPIEXEC_EXECUTABLE )
14+
SET( MPIEXEC_EXECUTABLE @MPIEXEC_EXECUTABLE@ )
15+
ENDIF()
16+
FIND_PACKAGE( MPI )
17+
ENDIF()
18+
IF ( TARGET MPI::MPI_CXX )
19+
SET( MPICXX_LIBS MPI::MPI_CXX )
20+
ENDIF()
21+
1222
INCLUDE( "${STACKTRACE_LIB_DIR}/cmake/StackTrace/StackTraceTargets.cmake" )
1323
INCLUDE_DIRECTORIES( ${STACKTRACE_INCLUDE_DIR} )
1424
SET( CMAKE_INSTALL_RPATH "${STACKTRACE_LIB_DIR}" ${CMAKE_INSTALL_RPATH} )

cmake/macros.cmake

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -159,14 +159,12 @@ FUNCTION( ADD_DISTCLEAN ${ARGN} )
159159
TPLs.h
160160
${ARGN}
161161
)
162-
ADD_CUSTOM_TARGET(distclean @echo cleaning for source distribution)
163162
IF (UNIX)
164-
ADD_CUSTOM_COMMAND(
165-
DEPENDS clean
163+
ADD_CUSTOM_TARGET(
164+
distclean
166165
COMMENT "distribution clean"
167-
COMMAND rm
168-
ARGS -Rf ${DISTCLEANED}
169-
TARGET distclean
166+
COMMAND rm -Rf ${DISTCLEANED}
167+
WORKING_DIRECTORY "${CMAKE_CURRENT_BUILD_DIR}"
170168
)
171169
ELSE()
172170
SET( DISTCLEANED
@@ -181,11 +179,11 @@ FUNCTION( ADD_DISTCLEAN ${ARGN} )
181179
APPEND_LIST( "${DISTCLEAN_FILE}" "${DISTCLEANED}" " " " " )
182180
FILE( APPEND "${DISTCLEAN_FILE}" "\n" )
183181
APPEND_LIST( "${DISTCLEAN_FILE}" "${DISTCLEANED}" "for /d %%x in (" ") do rd /s /q \"%%x\"\n" )
184-
ADD_CUSTOM_COMMAND(
185-
DEPENDS clean
182+
ADD_CUSTOM_TARGET(
183+
distclean
186184
COMMENT "distribution clean"
187185
COMMAND distclean.bat & del /s/q/f distclean.bat
188-
TARGET distclean
186+
WORKING_DIRECTORY "${CMAKE_CURRENT_BUILD_DIR}"
189187
)
190188
ENDIF()
191189
ENDFUNCTION()

0 commit comments

Comments
 (0)