fix GPU + BUILD_SHARED_LIBS
X-Thanks: Robert Maynard <robert.maynard@kitware.com>
This commit is contained in:
@ -439,11 +439,12 @@ if(ENABLE_GPU)
|
||||
if(NOT BIN2C)
|
||||
message(FATAL_ERROR "Couldn't find bin2c")
|
||||
endif()
|
||||
include_directories(${CUDA_TOOLKIT_INCLUDE})
|
||||
include_directories(${CUDA_INCLUDE_DIRS})
|
||||
list(APPEND LAMMPS_LINK_LIBS ${CUDA_LIBRARIES} ${CUDA_CUDA_LIBRARY})
|
||||
set(GPU_PREC "SINGLE_DOUBLE" CACHE STRING "Lammps gpu precision size")
|
||||
set_property(CACHE GPU_PREC PROPERTY STRINGS SINGLE_DOUBLE SINGLE_SINGLE DOUBLE_DOUBLE)
|
||||
add_definitions(-D_${GPU_PREC})
|
||||
add_definitions(-DNV_KERNEL -DUSE_CUDPP -DUCL_CUDADR)
|
||||
add_definitions(-DNV_KERNEL -DUCL_CUDADR)
|
||||
|
||||
set(GPU_SOURCES_DIR ${LAMMPS_SOURCE_DIR}/GPU)
|
||||
set(GPU_SOURCES ${GPU_SOURCES_DIR}/gpu_extra.h)
|
||||
@ -455,12 +456,13 @@ if(ENABLE_GPU)
|
||||
|
||||
get_property(GPU_SOURCES GLOBAL PROPERTY GPU_SOURCES)
|
||||
|
||||
file(GLOB_RECURSE GPU_LIB_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/gpu/*.cpp)
|
||||
file(GLOB_RECURSE GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/*.cu ${CMAKE_SOURCE_DIR}/gpu/*.cu)
|
||||
file(GLOB GPU_LIB_SOURCES ${LAMMPS_LIB_SOURCE_DIR}/gpu/*.cpp)
|
||||
file(GLOB GPU_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/*.cu ${CMAKE_SOURCE_DIR}/gpu/*.cu)
|
||||
file(GLOB_RECURSE GPU_NOT_LIB_CU ${LAMMPS_LIB_SOURCE_DIR}/gpu/lal_pppm.cu)
|
||||
list(REMOVE_ITEM GPU_LIB_CU ${GPU_NOT_LIB_CU})
|
||||
add_custom_target(gpu_objs)
|
||||
cuda_wrap_srcs(gpu_objs OBJ GPU_OBJS ${GPU_LIB_CU})
|
||||
include_directories(${GPU_SOURCES_DIR} ${LAMMPS_LIB_SOURCE_DIR}/gpu
|
||||
${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini ${LAMMPS_LIB_BINARY_DIR}/gpu)
|
||||
cuda_compile(GPU_OBJS ${GPU_LIB_CU} OPTIONS $<$<BOOL:${BUILD_SHARED_LIBS}>:-Xcompiler=-fPIC>)
|
||||
file(MAKE_DIRECTORY ${LAMMPS_LIB_BINARY_DIR}/gpu)
|
||||
foreach(CU_OBJ ${GPU_OBJS})
|
||||
get_filename_component(CU_NAME ${CU_OBJ} NAME_WE)
|
||||
@ -470,10 +472,12 @@ if(ENABLE_GPU)
|
||||
DEPENDS ${CU_OBJ}
|
||||
COMMENT "Generating ${CU_NAME}_cubin.h")
|
||||
list(APPEND LIB_SOURCES ${LAMMPS_LIB_BINARY_DIR}/gpu/${CU_NAME}_cubin.h)
|
||||
if(${CU_NAME} STREQUAL "pppm_d") #pppm_d doesn't get linked into the lib
|
||||
set(CU_FORBIDDEN_OBJ "${CU_OBJ}")
|
||||
endif()
|
||||
endforeach()
|
||||
list(REMOVE_ITEM GPU_OBJS "${CU_FORBIDDEN_OBJ}")
|
||||
list(APPEND LIB_SOURCES ${GPU_SOURCES} ${GPU_LIB_SOURCES} ${GPU_OBJS})
|
||||
include_directories(${GPU_SOURCES_DIR} ${LAMMPS_LIB_SOURCE_DIR}/gpu
|
||||
${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini ${LAMMPS_LIB_BINARY_DIR}/gpu)
|
||||
set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${AMMPS_LIB_BINARY_DIR}/gpu/*_cubin.h")
|
||||
endif()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user