diff --git a/CMakeLists.txt b/CMakeLists.txt index 84c20108bb..e0175677bb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,19 +1,27 @@ cmake_minimum_required(VERSION 2.6) project(hip_hcc) -set(HCC_PATH "/opt/hcc") +set (HCC_HOME $ENV{HCC_HOME}) +if (NOT DEFINED HCC_HOME) + set(HCC_HOME "/opt/hcc") +endif() + + +MESSAGE ("HCC_HOME=" ${HCC_HOME}) + set(HSA_PATH "/opt/hsa") + if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) set(CMAKE_INSTALL_PREFIX "/opt/hip" CACHE PATH "Default installation path of hip" FORCE) endif () include_directories(${PROJECT_SOURCE_DIR}/include) -set(CMAKE_CXX_COMPILER "hcc") -set(CMAKE_C_COMPILER "hcc") +set(CMAKE_CXX_COMPILER "${HCC_HOME}/bin/hcc") +set(CMAKE_C_COMPILER "${HCC_HOME}/bin/hcc") -set(CMAKE_C_FLAGS " -hc -I${HCC_PATH}/include -I${HSA_PATH}/include -I${HIP_PATH}/include -stdlib=libc++ ") -set(CMAKE_CXX_FLAGS " -hc -I${HCC_PATH}/include -I${HSA_PATH}/include -I${HIP_PATH}/include -stdlib=libc++ ") +set(CMAKE_C_FLAGS " -hc -I${HCC_HOME}/include -I${HSA_PATH}/include -I${HIP_PATH}/include -stdlib=libc++ ") +set(CMAKE_CXX_FLAGS " -hc -I${HCC_HOME}/include -I${HSA_PATH}/include -I${HIP_PATH}/include -stdlib=libc++ ") set(SOURCE_FILES src/hip_hcc.cpp src/staging_buffer.cpp) diff --git a/include/hcc_detail/hip_hcc.h b/include/hcc_detail/hip_hcc.h index ef8f9193ee..57b59ca741 100644 --- a/include/hcc_detail/hip_hcc.h +++ b/include/hcc_detail/hip_hcc.h @@ -96,7 +96,7 @@ static thread_local hipError_t tls_lastHipError = hipSuccess; // #include CPP files to produce one object file -#define ONE_OBJECT_FILE 1 +//#define ONE_OBJECT_FILE 1 // Compile support for trace markers that are displayed on CodeXL GUI at start/stop of each function boundary. diff --git a/tests/src/CMakeLists.txt b/tests/src/CMakeLists.txt index c017d8d6a1..e9f29ca159 100644 --- a/tests/src/CMakeLists.txt +++ b/tests/src/CMakeLists.txt @@ -40,12 +40,12 @@ if (${HIP_PLATFORM} STREQUAL "hcc") #Include HIP and HC since the tests need both of these: #Note below HSA path is surgically included only where necessary. include_directories(${HIP_PATH}/include) - include_directories(${HSA_PATH}/include) - # hip_hcc.o: - #add_library(hip_hcc STATIC ${HIP_PATH}/src/hip_hcc.cpp ) - add_library(hip_hcc STATIC ${HIP_PATH}/src/hip_hcc.cpp ${HIP_PATH}/src/staging_buffer.cpp) - target_include_directories(hip_hcc PRIVATE ${HSA_PATH}/include ${CODEXL_SDK_ATAL_PATH}/include) + include_directories(${HSA_PATH}/include) + # This will create a subdir "hip_hcc" in the test build directory + # Any changes to hip_hcc source will be detected and force the library and then the tests to be rebuilt. + add_subdirectory(${HIP_PATH} hip_hcc) + link_directories(${CMAKE_CURRENT_BINARY_DIR}/hip_hcc) # search the local hip_hcc for libhip_hcc.a elseif (${HIP_PLATFORM} STREQUAL "nvcc") MESSAGE ("HIP_PLATFORM=nvcc") @@ -71,7 +71,7 @@ add_library(test_common OBJECT test_common.cpp ) macro (make_hip_executable exe cpp) if (${HIP_PLATFORM} STREQUAL "hcc") add_executable (${exe} ${cpp} ${ARGN} $ ) -# target_link_libraries(${exe} hip_hcc) + target_link_libraries(${exe} hip_hcc) else() add_executable (${exe} ${cpp} ${ARGN} $ ) endif()