From 9fedb8dc6dd75e306c1778e600f95fc2bed9513d Mon Sep 17 00:00:00 2001 From: Maneesh Gupta Date: Fri, 19 Aug 2016 13:07:22 +0530 Subject: [PATCH] Make it easier to switch between HIP library formats Change-Id: Id16406795a81f4bb64dbcb76b9b8763ffe59aac6 [ROCm/clr commit: 8f19a5152168a0b3814a5d9c72263bbc00fdbea1] --- projects/clr/hipamd/CMakeLists.txt | 27 +++++++++++++++------------ projects/clr/hipamd/bin/hipcc | 11 ++++++----- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/projects/clr/hipamd/CMakeLists.txt b/projects/clr/hipamd/CMakeLists.txt index eb2ac7e79d..37d3534cd8 100644 --- a/projects/clr/hipamd/CMakeLists.txt +++ b/projects/clr/hipamd/CMakeLists.txt @@ -114,11 +114,14 @@ else() endif() # Set if we need to build shared or static library -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}) +if(NOT DEFINED HIP_LIB_TYPE) + if(NOT DEFINED ENV{HIP_LIB_TYPE}) + set(HIP_LIB_TYPE 0) + else() + set(HIP_LIB_TYPE $ENV{HIP_LIB_TYPE}) + endif() endif() +add_to_config(_buildInfo HIP_LIB_TYPE) # Check if we need to build clang hipify if(NOT DEFINED BUILD_CLANG_HIPIFY) @@ -177,11 +180,12 @@ if(HIP_PLATFORM STREQUAL "hcc") src/unpinned_copy_engine.cpp src/hip_module.cpp) - if(${HIP_USE_SHARED_LIBRARY} EQUAL 1) - add_library(hip_hcc SHARED ${SOURCE_FILES}) - else() - #add_library(hip_hcc STATIC ${SOURCE_FILES}) + if(${HIP_LIB_TYPE} EQUAL 0) add_library(hip_hcc OBJECT ${SOURCE_FILES}) + elseif(${HIP_LIB_TYPE} EQUAL 1) + add_library(hip_hcc STATIC ${SOURCE_FILES}) + else() + add_library(hip_hcc SHARED ${SOURCE_FILES}) endif() # Generate .buildInfo @@ -200,11 +204,10 @@ add_custom_target(doc COMMAND HIP_PATH=${CMAKE_CURRENT_SOURCE_DIR} doxygen ${CMA ############################# # Install hip_hcc if platform is hcc if(HIP_PLATFORM STREQUAL "hcc") - if(${HIP_USE_SHARED_LIBRARY} EQUAL 1) - install(TARGETS hip_hcc DESTINATION lib) - else() - #install(TARGETS hip_hcc DESTINATION lib) + if(${HIP_LIB_TYPE} EQUAL 0) install(DIRECTORY ${PROJECT_BINARY_DIR}/CMakeFiles/hip_hcc.dir/src/ DESTINATION lib) + else() + install(TARGETS hip_hcc DESTINATION lib) endif() # Install .buildInfo diff --git a/projects/clr/hipamd/bin/hipcc b/projects/clr/hipamd/bin/hipcc index 24b99e1d70..c51e351382 100755 --- a/projects/clr/hipamd/bin/hipcc +++ b/projects/clr/hipamd/bin/hipcc @@ -252,13 +252,14 @@ if ($setStdLib eq 0 and $HIP_PLATFORM eq 'hcc') } if ($needHipHcc) { - $HIP_USE_SHARED_LIBRARY = $ENV{'HIP_USE_SHARED_LIBRARY'} // 0; + $HIP_LIB_TYPE = $hipConfig{'HIP_LIB_TYPE'} // 0; - #$HIPLDFLAGS .= " -L/opt/rocm/hip/lib -lhip_hcc" ; - if ($HIP_USE_SHARED_LIBRARY) { - $HIPLDFLAGS .= " -L$HIP_PATH/lib -Wl,--rpath=$HIP_PATH/lib -lhip_hcc"; - } else { + if ($HIP_LIB_TYPE eq 0) { $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/unpinned_copy_engine.cpp.o $HIP_PATH/lib/hip_ldg.cpp.o $HIP_PATH/lib/hip_fp16.cpp.o $HIP_PATH/lib/hip_context.cpp.o $HIP_PATH/lib/hip_module.cpp.o"; + } elsif ($HIP_LIB_TYPE eq 1) { + $HIPLDFLAGS .= " -L$HIP_PATH/lib -lhip_hcc" ; + } else { + $HIPLDFLAGS .= " -L$HIP_PATH/lib -Wl,--rpath=$HIP_PATH/lib -lhip_hcc"; } }