Initial (non-default) support for shared library HIP
This commit is contained in:
+16
-2
@@ -64,11 +64,25 @@ src/hip_peer.cpp
|
||||
src/hip_stream.cpp
|
||||
src/staging_buffer.cpp)
|
||||
|
||||
if(NOT DEFINED ENV{HIP_USE_SHARED_LIBRARY})
|
||||
set(HIP_USE_SHARED_LIBRARY 0)
|
||||
else()
|
||||
set(HIP_USE_SHARED_LIBRARY $ENV{HIP_USE_SHARED_LIBRARY})
|
||||
endif()
|
||||
|
||||
#add_library(hip_hcc STATIC ${SOURCE_FILES})
|
||||
add_library(hip_hcc OBJECT ${SOURCE_FILES})
|
||||
if(${HIP_USE_SHARED_LIBRARY} EQUAL 1)
|
||||
add_library(hip_hcc SHARED ${SOURCE_FILES})
|
||||
else()
|
||||
add_library(hip_hcc OBJECT ${SOURCE_FILES})
|
||||
endif()
|
||||
|
||||
#install(TARGETS hip_hcc DESTINATION lib)
|
||||
install(DIRECTORY ${PROJECT_BINARY_DIR}/CMakeFiles/hip_hcc.dir/src/ DESTINATION lib)
|
||||
if(${HIP_USE_SHARED_LIBRARY} EQUAL 1)
|
||||
install(TARGETS hip_hcc DESTINATION lib)
|
||||
else()
|
||||
install(DIRECTORY ${PROJECT_BINARY_DIR}/CMakeFiles/hip_hcc.dir/src/ DESTINATION lib)
|
||||
endif()
|
||||
set(EXECUTE_COMMAND test ${CMAKE_INSTALL_PREFIX} -ef ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
execute_process(COMMAND ${EXECUTE_COMMAND} RESULT_VARIABLE INSTALL_SOURCE)
|
||||
if(NOT ${INSTALL_SOURCE} EQUAL 0)
|
||||
|
||||
@@ -182,8 +182,15 @@ if ($hasCU and $HIP_PLATFORM eq 'hcc') {
|
||||
}
|
||||
|
||||
if ($needHipHcc) {
|
||||
$HIP_USE_SHARED_LIBRARY = $ENV{'HIP_USE_SHARED_LIBRARY'};
|
||||
$HIP_USE_SHARED_LIBRARY = 0 unless defined $HIP_USE_SHARED_LIBRARY;
|
||||
|
||||
#$HIPLDFLAGS .= " -L/opt/hip/lib -lhip_hcc" ;
|
||||
$HIPLDFLAGS .= " $HIP_PATH/lib/device_util.cpp.o $HIP_PATH/lib/hip_device.cpp.o $HIP_PATH/lib/hip_error.cpp.o $HIP_PATH/lib/hip_event.cpp.o $HIP_PATH/lib/hip_hcc.cpp.o $HIP_PATH/lib/hip_memory.cpp.o $HIP_PATH/lib/hip_peer.cpp.o $HIP_PATH/lib/hip_stream.cpp.o $HIP_PATH/lib/staging_buffer.cpp.o";
|
||||
if ($HIP_USE_SHARED_LIBRARY) {
|
||||
$HIPLDFLAGS .= " -L$HIP_PATH/lib -Wl,--rpath=$HIP_PATH/lib -lhip_hcc"
|
||||
} else {
|
||||
$HIPLDFLAGS .= " $HIP_PATH/lib/device_util.cpp.o $HIP_PATH/lib/hip_device.cpp.o $HIP_PATH/lib/hip_error.cpp.o $HIP_PATH/lib/hip_event.cpp.o $HIP_PATH/lib/hip_hcc.cpp.o $HIP_PATH/lib/hip_memory.cpp.o $HIP_PATH/lib/hip_peer.cpp.o $HIP_PATH/lib/hip_stream.cpp.o $HIP_PATH/lib/staging_buffer.cpp.o";
|
||||
}
|
||||
}
|
||||
|
||||
# hipcc currrently requires separate compilation of source files, ie it is not possible to pass
|
||||
|
||||
Referens i nytt ärende
Block a user