CMake improvements.

- Directed tests build hip_hcc as subdir.
- Support HCC_HOME env var to control which HCC to use for build
  hip_hcc.
Bu işleme şunda yer alıyor:
Ben Sander
2016-03-24 10:16:35 -05:00
ebeveyn 655534b1ba
işleme c4e1aba862
3 değiştirilmiş dosya ile 20 ekleme ve 12 silme
+13 -5
Dosyayı Görüntüle
@@ -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)
+1 -1
Dosyayı Görüntüle
@@ -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.
+6 -6
Dosyayı Görüntüle
@@ -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_OBJECTS:test_common> )
# target_link_libraries(${exe} hip_hcc)
target_link_libraries(${exe} hip_hcc)
else()
add_executable (${exe} ${cpp} ${ARGN} $<TARGET_OBJECTS:test_common> )
endif()