2019-01-23 23:40:35 -06:00
|
|
|
cmake_minimum_required(VERSION 3.4.3)
|
2016-04-15 12:13:04 +05:30
|
|
|
project(hip)
|
2016-03-23 07:54:01 -05:00
|
|
|
|
2017-10-24 20:56:55 +01:00
|
|
|
#############################
|
|
|
|
|
# Options
|
|
|
|
|
#############################
|
|
|
|
|
option(BUILD_HIPIFY_CLANG "Enable building the CUDA->HIP converter" OFF)
|
|
|
|
|
|
2016-08-19 12:17:00 +05:30
|
|
|
#############################
|
|
|
|
|
# Setup config generation
|
|
|
|
|
#############################
|
2016-08-14 16:22:25 +05:30
|
|
|
string(TIMESTAMP _timestamp UTC)
|
|
|
|
|
set(_versionInfo "# Auto-generated by cmake\n")
|
|
|
|
|
set(_buildInfo "# Auto-generated by cmake on ${_timestamp} UTC\n")
|
2016-08-19 12:17:00 +05:30
|
|
|
macro(add_to_config _configfile _variable)
|
|
|
|
|
set(${_configfile} "${${_configfile}}${_variable}=${${_variable}}\n")
|
|
|
|
|
endmacro()
|
2016-08-14 16:22:25 +05:30
|
|
|
|
2016-04-12 12:42:12 +05:30
|
|
|
#############################
|
2016-08-12 23:21:37 +05:30
|
|
|
# Setup version information
|
2016-04-12 12:42:12 +05:30
|
|
|
#############################
|
2016-08-14 16:22:25 +05:30
|
|
|
# Determine HIP_BASE_VERSION
|
|
|
|
|
execute_process(COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bin/hipconfig --version
|
2016-10-03 22:52:23 +05:30
|
|
|
OUTPUT_VARIABLE HIP_BASE_VERSION
|
|
|
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
2016-08-14 16:22:25 +05:30
|
|
|
string(REPLACE "." ";" VERSION_LIST ${HIP_BASE_VERSION})
|
|
|
|
|
list(GET VERSION_LIST 0 HIP_VERSION_MAJOR)
|
|
|
|
|
list(GET VERSION_LIST 1 HIP_VERSION_MINOR)
|
2016-08-12 23:21:37 +05:30
|
|
|
|
|
|
|
|
# get date information based on UTC
|
2019-08-09 12:13:29 +00:00
|
|
|
# use the last two digits of year + week number + day in the week as HIP_VERSION_GITDATE
|
2016-08-12 23:21:37 +05:30
|
|
|
# use the commit date, instead of build date
|
|
|
|
|
# add xargs to remove strange trailing newline character
|
|
|
|
|
execute_process(COMMAND git show -s --format=@%ct
|
2016-10-03 22:52:23 +05:30
|
|
|
COMMAND xargs
|
|
|
|
|
COMMAND date -f - --utc +%y%U%w
|
|
|
|
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
2019-08-09 12:13:29 +00:00
|
|
|
OUTPUT_VARIABLE HIP_VERSION_GITDATE
|
2016-10-03 22:52:23 +05:30
|
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
2016-06-14 14:57:56 +05:30
|
|
|
|
2019-08-09 12:13:29 +00:00
|
|
|
# get commit short hash
|
|
|
|
|
execute_process(COMMAND git rev-parse --short HEAD
|
|
|
|
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
|
|
|
|
OUTPUT_VARIABLE HIP_VERSION_GITHASH
|
|
|
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
|
|
|
|
2019-08-21 10:01:23 +00:00
|
|
|
# get commit count
|
|
|
|
|
execute_process(COMMAND git rev-list --count HEAD
|
|
|
|
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
|
|
|
|
OUTPUT_VARIABLE HIP_VERSION_GITCOUNT
|
|
|
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
|
|
|
|
|
2019-08-09 12:13:29 +00:00
|
|
|
set(HIP_VERSION_PATCH ${HIP_VERSION_GITDATE}-${HIP_VERSION_GITHASH})
|
2016-08-19 12:17:00 +05:30
|
|
|
add_to_config(_versionInfo HIP_VERSION_MAJOR)
|
|
|
|
|
add_to_config(_versionInfo HIP_VERSION_MINOR)
|
|
|
|
|
add_to_config(_versionInfo HIP_VERSION_PATCH)
|
2016-08-14 16:22:25 +05:30
|
|
|
|
2019-09-05 05:03:04 -05:00
|
|
|
if(CMAKE_CXX_COMPILER MATCHES ".*hcc")
|
|
|
|
|
set(HIP_COMPILER "hcc" CACHE STRING "HIP Compiler")
|
|
|
|
|
set(HIP_PLATFORM "hcc" CACHE STRING "HIP Platform")
|
|
|
|
|
get_filename_component(CXX_PATH ${CMAKE_CXX_COMPILER} DIRECTORY)
|
|
|
|
|
get_filename_component(CXX_PATH ${CXX_PATH} DIRECTORY)
|
|
|
|
|
set(HCC_HOME "${CXX_PATH}" CACHE PATH "Path to which HCC has been installed")
|
|
|
|
|
endif()
|
|
|
|
|
|
2019-08-21 10:01:23 +00:00
|
|
|
# overwrite HIP_VERSION_PATCH for packaging
|
|
|
|
|
if(DEFINED ENV{ROCM_BUILD_ID})
|
|
|
|
|
set(HIP_VERSION_PATCH ${HIP_VERSION_GITDATE}.${HIP_VERSION_GITCOUNT}-$ENV{ROCM_BUILD_ID}-${HIP_VERSION_GITHASH})
|
|
|
|
|
else()
|
|
|
|
|
set(HIP_VERSION_PATCH ${HIP_VERSION_GITDATE}.${HIP_VERSION_GITCOUNT}-${HIP_VERSION_GITHASH})
|
|
|
|
|
endif()
|
|
|
|
|
set(HIP_VERSION ${HIP_VERSION_MAJOR}.${HIP_VERSION_MINOR}.${HIP_VERSION_PATCH})
|
|
|
|
|
|
2016-08-12 23:21:37 +05:30
|
|
|
#############################
|
|
|
|
|
# Configure variables
|
|
|
|
|
#############################
|
2016-04-12 12:42:12 +05:30
|
|
|
# Determine HIP_PLATFORM
|
|
|
|
|
if(NOT DEFINED HIP_PLATFORM)
|
|
|
|
|
if(NOT DEFINED ENV{HIP_PLATFORM})
|
|
|
|
|
execute_process(COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bin/hipconfig --platform
|
2016-10-03 22:52:23 +05:30
|
|
|
OUTPUT_VARIABLE HIP_PLATFORM
|
|
|
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
2016-04-12 12:42:12 +05:30
|
|
|
else()
|
|
|
|
|
set(HIP_PLATFORM $ENV{HIP_PLATFORM} CACHE STRING "HIP Platform")
|
2016-05-02 10:20:00 -05:00
|
|
|
endif()
|
2016-03-30 13:58:38 +05:30
|
|
|
endif()
|
2016-04-12 12:42:12 +05:30
|
|
|
message(STATUS "HIP Platform: " ${HIP_PLATFORM})
|
2016-03-24 10:16:35 -05:00
|
|
|
|
2018-08-01 20:37:46 +00:00
|
|
|
# Determine HIP_COMPILER
|
|
|
|
|
# Either hcc or clang; default is hcc
|
|
|
|
|
if(NOT DEFINED HIP_COMPILER)
|
|
|
|
|
if(NOT DEFINED ENV{HIP_COMPILER})
|
|
|
|
|
set(HIP_COMPILER "hcc" CACHE STRING "HIP Compiler")
|
|
|
|
|
else()
|
|
|
|
|
set(HIP_COMPILER $ENV{HIP_COMPILER} CACHE STRING "HIP Compiler")
|
|
|
|
|
endif()
|
|
|
|
|
endif()
|
|
|
|
|
if(NOT (HIP_COMPILER STREQUAL "hcc" OR HIP_COMPILER STREQUAL "clang"))
|
|
|
|
|
message(FATAL_ERROR "Must use HIP_COMPILER as hcc or clang")
|
|
|
|
|
endif()
|
|
|
|
|
message(STATUS "HIP Compiler: " ${HIP_COMPILER})
|
2019-02-01 16:52:55 +00:00
|
|
|
add_to_config(_buildInfo HIP_COMPILER)
|
2018-08-01 20:37:46 +00:00
|
|
|
|
2019-02-01 19:44:26 +00:00
|
|
|
# Determine HIP_RUNTIME
|
|
|
|
|
# Either HCC or VDI; default is HCC
|
|
|
|
|
if(NOT DEFINED ENV{HIP_RUNTIME})
|
|
|
|
|
set(HIP_RUNTIME "HCC" CACHE STRING "HIP Runtime")
|
|
|
|
|
else()
|
|
|
|
|
set(HIP_RUNTIME $ENV{HIP_RUNTIME} CACHE STRING "HIP Runtime")
|
|
|
|
|
endif()
|
|
|
|
|
add_to_config(_buildInfo HIP_RUNTIME)
|
2018-08-01 20:37:46 +00:00
|
|
|
|
|
|
|
|
|
2016-04-12 12:42:12 +05:30
|
|
|
# If HIP_PLATFORM is hcc, we need HCC_HOME and HSA_PATH to be defined
|
|
|
|
|
if(HIP_PLATFORM STREQUAL "hcc")
|
|
|
|
|
# Determine HCC_HOME
|
|
|
|
|
if(NOT DEFINED HCC_HOME)
|
|
|
|
|
if(NOT DEFINED ENV{HCC_HOME})
|
2016-04-15 12:56:31 +05:30
|
|
|
set(HCC_HOME "/opt/rocm/hcc" CACHE PATH "Path to which HCC has been installed")
|
2016-04-12 12:42:12 +05:30
|
|
|
else()
|
|
|
|
|
set(HCC_HOME $ENV{HCC_HOME} CACHE PATH "Path to which HCC has been installed")
|
|
|
|
|
endif()
|
|
|
|
|
endif()
|
2017-03-21 14:22:49 -05:00
|
|
|
|
2016-08-14 16:22:25 +05:30
|
|
|
if(DEFINED ENV{HIP_DEVELOPER})
|
2016-08-19 12:17:00 +05:30
|
|
|
add_to_config(_buildInfo HCC_HOME)
|
2016-08-14 16:22:25 +05:30
|
|
|
endif()
|
2016-04-12 12:42:12 +05:30
|
|
|
if(IS_ABSOLUTE ${HCC_HOME} AND EXISTS ${HCC_HOME} AND IS_DIRECTORY ${HCC_HOME})
|
2016-05-06 16:06:15 +05:30
|
|
|
execute_process(COMMAND ${HCC_HOME}/bin/hcc --version
|
2016-10-03 22:52:23 +05:30
|
|
|
OUTPUT_VARIABLE HCC_VERSION
|
|
|
|
|
OUTPUT_STRIP_TRAILING_WHITESPACE)
|
2017-03-03 03:11:41 -05:00
|
|
|
string(REGEX REPLACE ".*based on HCC " "" HCC_VERSION ${HCC_VERSION})
|
|
|
|
|
string(REGEX REPLACE " .*" "" HCC_VERSION ${HCC_VERSION})
|
2016-05-06 16:06:15 +05:30
|
|
|
message(STATUS "Looking for HCC in: " ${HCC_HOME} ". Found version: " ${HCC_VERSION})
|
2016-03-30 13:58:38 +05:30
|
|
|
else()
|
2016-04-12 12:42:12 +05:30
|
|
|
message(FATAL_ERROR "Don't know where to find HCC. Please specify abolute path using -DHCC_HOME")
|
2016-03-30 13:58:38 +05:30
|
|
|
endif()
|
2016-08-19 12:17:00 +05:30
|
|
|
add_to_config(_buildInfo HCC_VERSION)
|
2016-10-17 12:48:05 +05:30
|
|
|
string(REPLACE "-" ";" HCC_VERSION_LIST ${HCC_VERSION})
|
|
|
|
|
list(GET HCC_VERSION_LIST 0 HCC_PACKAGE_VERSION)
|
2016-12-22 15:30:38 +05:30
|
|
|
string(REPLACE "." ";" HCC_VERSION_LIST ${HCC_PACKAGE_VERSION})
|
|
|
|
|
list(GET HCC_VERSION_LIST 0 HCC_VERSION_MAJOR)
|
|
|
|
|
list(GET HCC_VERSION_LIST 1 HCC_VERSION_MINOR)
|
2016-03-24 13:33:07 -05:00
|
|
|
|
2016-04-12 12:42:12 +05:30
|
|
|
# Determine HSA_PATH
|
|
|
|
|
if(NOT DEFINED HSA_PATH)
|
|
|
|
|
if(NOT DEFINED ENV{HSA_PATH})
|
2016-04-15 12:56:31 +05:30
|
|
|
set(HSA_PATH "/opt/rocm/hsa" CACHE PATH "Path to which HSA runtime has been installed")
|
2016-04-12 12:42:12 +05:30
|
|
|
else()
|
|
|
|
|
set(HSA_PATH $ENV{HSA_PATH} CACHE PATH "Path to which HSA runtime has been installed")
|
|
|
|
|
endif()
|
|
|
|
|
endif()
|
|
|
|
|
if(IS_ABSOLUTE ${HSA_PATH} AND EXISTS ${HSA_PATH} AND IS_DIRECTORY ${HSA_PATH})
|
|
|
|
|
message(STATUS "Looking for HSA runtime in: " ${HSA_PATH})
|
2016-03-30 13:58:38 +05:30
|
|
|
else()
|
2016-04-12 12:42:12 +05:30
|
|
|
message(FATAL_ERROR "Don't know where to find HSA runtime. Please specify absolute path using -DHSA_PATH")
|
2016-03-30 13:58:38 +05:30
|
|
|
endif()
|
|
|
|
|
endif()
|
2016-04-12 12:42:12 +05:30
|
|
|
|
|
|
|
|
# Set default build type
|
|
|
|
|
if(NOT CMAKE_BUILD_TYPE)
|
|
|
|
|
set(CMAKE_BUILD_TYPE "Release")
|
2016-03-24 13:33:07 -05:00
|
|
|
endif()
|
|
|
|
|
|
2016-04-12 12:42:12 +05:30
|
|
|
# Determine HIP install path
|
2016-04-01 13:48:37 +05:30
|
|
|
if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT AND CMAKE_INSTALL_PREFIX MATCHES "/usr/local")
|
2016-03-30 13:58:38 +05:30
|
|
|
if(CMAKE_BUILD_TYPE MATCHES Debug)
|
2016-10-03 22:52:23 +05:30
|
|
|
set(CMAKE_INSTALL_PREFIX ${CMAKE_CURRENT_SOURCE_DIR} CACHE PATH "Installation path for HIP" FORCE)
|
2016-03-30 13:58:38 +05:30
|
|
|
elseif(CMAKE_BUILD_TYPE MATCHES Release)
|
2016-10-03 22:52:23 +05:30
|
|
|
set(CMAKE_INSTALL_PREFIX "/opt/rocm/hip" CACHE PATH "Installation path for HIP" FORCE)
|
2016-03-30 13:58:38 +05:30
|
|
|
else()
|
|
|
|
|
message(FATAL_ERROR "Invalid CMAKE_BUILD_TYPE specified. Valid values are Debug and Release")
|
|
|
|
|
endif()
|
|
|
|
|
endif()
|
2016-04-01 13:48:37 +05:30
|
|
|
if(IS_ABSOLUTE ${CMAKE_INSTALL_PREFIX})
|
|
|
|
|
message(STATUS "HIP will be installed in: " ${CMAKE_INSTALL_PREFIX})
|
2016-03-30 13:58:38 +05:30
|
|
|
else()
|
2016-04-01 13:48:37 +05:30
|
|
|
message(FATAL_ERROR "Don't know where to install HIP. Please specify absolute path using -DCMAKE_INSTALL_PREFIX")
|
2016-03-30 13:58:38 +05:30
|
|
|
endif()
|
|
|
|
|
|
2016-07-21 16:02:51 +05:30
|
|
|
# Check if we need to enable ATP marker
|
|
|
|
|
if(NOT DEFINED COMPILE_HIP_ATP_MARKER)
|
|
|
|
|
if(NOT DEFINED ENV{COMPILE_HIP_ATP_MARKER})
|
|
|
|
|
set(COMPILE_HIP_ATP_MARKER 0)
|
|
|
|
|
else()
|
|
|
|
|
set(COMPILE_HIP_ATP_MARKER $ENV{COMPILE_HIP_ATP_MARKER})
|
|
|
|
|
endif()
|
|
|
|
|
endif()
|
2016-08-19 12:17:00 +05:30
|
|
|
add_to_config(_buildInfo COMPILE_HIP_ATP_MARKER)
|
2016-07-21 16:02:51 +05:30
|
|
|
|
2019-03-20 00:11:40 -05:00
|
|
|
#############################
|
|
|
|
|
# Profiling API support
|
|
|
|
|
#############################
|
|
|
|
|
# Generate profiling API macros/structures header
|
|
|
|
|
set(PROF_API_STR "${CMAKE_CURRENT_SOURCE_DIR}/include/hip/hcc_detail/hip_prof_str.h")
|
|
|
|
|
set(PROF_API_HDR "${CMAKE_CURRENT_SOURCE_DIR}/include/hip/hcc_detail/hip_runtime_api.h")
|
|
|
|
|
set(PROF_API_SRC "${CMAKE_CURRENT_SOURCE_DIR}/src")
|
|
|
|
|
set(PROF_API_GEN "${CMAKE_CURRENT_SOURCE_DIR}/hip_prof_gen.py")
|
2019-03-21 00:28:18 -05:00
|
|
|
set(PROF_API_LOG "${PROJECT_BINARY_DIR}/hip_prof_gen.log.txt")
|
|
|
|
|
set(PROF_API_CMD "${PROF_API_GEN} -v ${OPT_PROF_API} ${PROF_API_HDR} ${PROF_API_SRC} ${PROF_API_STR} >${PROF_API_LOG}")
|
|
|
|
|
MESSAGE(STATUS "Generating profiling promitives: ${PROF_API_STR}")
|
|
|
|
|
execute_process(COMMAND sh -c "rm -f ${PROF_API_STR}; ${PROF_API_CMD}")
|
|
|
|
|
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${PROF_API_GEN} ${PROF_API_HDR} ${PROF_API_STR})
|
2019-03-20 00:11:40 -05:00
|
|
|
|
|
|
|
|
# Enable profiling API
|
2018-11-22 21:12:08 -06:00
|
|
|
if(USE_PROF_API EQUAL 1)
|
2019-03-06 06:06:34 -06:00
|
|
|
find_path(PROF_API_HEADER_DIR prof_protocol.h
|
|
|
|
|
HINTS
|
|
|
|
|
${PROF_API_HEADER_PATH}
|
|
|
|
|
PATHS
|
|
|
|
|
/opt/rocm/roctracer
|
|
|
|
|
PATH_SUFFIXES
|
|
|
|
|
include/ext
|
|
|
|
|
)
|
2019-01-18 13:23:57 +05:30
|
|
|
if(NOT PROF_API_HEADER_DIR)
|
|
|
|
|
MESSAGE(WARNING "Profiling API header not found. Disabling roctracer integration. Use -DPROF_API_HEADER_PATH=<path to prof_protocol.h header>")
|
|
|
|
|
else()
|
|
|
|
|
add_definitions(-DUSE_PROF_API=1)
|
|
|
|
|
include_directories(${PROF_API_HEADER_DIR})
|
|
|
|
|
MESSAGE(STATUS "Profiling API: ${PROF_API_HEADER_DIR}")
|
|
|
|
|
endif()
|
2018-11-22 21:12:08 -06:00
|
|
|
endif()
|
2016-11-09 21:38:43 -06:00
|
|
|
|
2016-04-12 12:42:12 +05:30
|
|
|
#############################
|
|
|
|
|
# Build steps
|
|
|
|
|
#############################
|
2016-05-04 14:44:00 +05:30
|
|
|
# Build clang hipify if enabled
|
2017-10-24 20:56:55 +01:00
|
|
|
if (BUILD_HIPIFY_CLANG)
|
|
|
|
|
add_subdirectory(hipify-clang)
|
|
|
|
|
endif()
|
2016-05-04 14:44:00 +05:30
|
|
|
|
2017-12-14 13:32:27 +00:00
|
|
|
# Build LPL an CA (fat binary generation / fat binary decomposition tools) if
|
|
|
|
|
# platform is hcc; do this before the ugly hijacking of the compiler, since no
|
|
|
|
|
# HC code is involved.
|
|
|
|
|
if (HIP_PLATFORM STREQUAL "hcc")
|
2018-02-22 13:15:10 +00:00
|
|
|
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/lpl_ca)
|
2017-12-14 13:32:27 +00:00
|
|
|
endif ()
|
|
|
|
|
|
2016-04-12 12:42:12 +05:30
|
|
|
# Build hip_hcc if platform is hcc
|
|
|
|
|
if(HIP_PLATFORM STREQUAL "hcc")
|
|
|
|
|
include_directories(${PROJECT_SOURCE_DIR}/include)
|
2016-09-23 10:44:39 +05:30
|
|
|
set(HIP_HCC_BUILD_FLAGS)
|
2016-07-21 16:02:51 +05:30
|
|
|
if(COMPILE_HIP_ATP_MARKER)
|
|
|
|
|
include_directories(/opt/rocm/profiler/CXLActivityLogger/include)
|
2016-09-23 10:44:39 +05:30
|
|
|
set(HIP_HCC_BUILD_FLAGS "${HIP_HCC_BUILD_FLAGS} -DCOMPILE_HIP_ATP_MARKER=1")
|
2016-07-21 16:02:51 +05:30
|
|
|
endif()
|
2016-04-12 12:42:12 +05:30
|
|
|
|
2016-09-22 12:27:07 +05:30
|
|
|
# Add HIP_VERSION to CMAKE_<LANG>_FLAGS
|
2019-08-09 12:13:29 +00:00
|
|
|
set(HIP_HCC_BUILD_FLAGS "${HIP_HCC_BUILD_FLAGS} -DHIP_VERSION_MAJOR=${HIP_VERSION_MAJOR} -DHIP_VERSION_MINOR=${HIP_VERSION_MINOR} -DHIP_VERSION_PATCH=${HIP_VERSION_GITDATE}")
|
2016-09-22 12:27:07 +05:30
|
|
|
|
2016-09-23 10:44:39 +05:30
|
|
|
# Add remaining flags
|
2019-08-08 04:33:04 -04:00
|
|
|
set(HCC_CXX_FLAGS "-hc -fno-gpu-rdc --amdgpu-target=gfx803 --amdgpu-target=gfx900 --amdgpu-target=gfx906 --amdgpu-target=gfx908 ")
|
2017-03-06 22:37:05 +05:30
|
|
|
set(HIP_HCC_BUILD_FLAGS "${HIP_HCC_BUILD_FLAGS} -fPIC ${HCC_CXX_FLAGS} -I${HSA_PATH}/include")
|
2016-09-23 10:44:39 +05:30
|
|
|
|
|
|
|
|
# Set compiler and compiler flags
|
|
|
|
|
set(CMAKE_CXX_COMPILER "${HCC_HOME}/bin/hcc")
|
|
|
|
|
set(CMAKE_C_COMPILER "${HCC_HOME}/bin/hcc")
|
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${HIP_HCC_BUILD_FLAGS}")
|
|
|
|
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${HIP_HCC_BUILD_FLAGS}")
|
2016-04-12 12:42:12 +05:30
|
|
|
|
2016-12-01 15:33:12 +05:30
|
|
|
set(SOURCE_FILES_RUNTIME
|
2017-11-10 01:20:50 +00:00
|
|
|
src/code_object_bundle.cpp
|
2019-05-12 09:54:03 -04:00
|
|
|
src/program_state.cpp
|
2018-04-04 13:32:33 -07:00
|
|
|
src/hip_clang.cpp
|
2016-10-03 22:52:23 +05:30
|
|
|
src/hip_hcc.cpp
|
|
|
|
|
src/hip_context.cpp
|
|
|
|
|
src/hip_device.cpp
|
|
|
|
|
src/hip_error.cpp
|
|
|
|
|
src/hip_event.cpp
|
2018-11-13 22:28:00 -05:00
|
|
|
src/hip_fatbin.cpp
|
2016-10-03 22:52:23 +05:30
|
|
|
src/hip_memory.cpp
|
|
|
|
|
src/hip_peer.cpp
|
|
|
|
|
src/hip_stream.cpp
|
2017-01-20 21:19:52 -06:00
|
|
|
src/hip_module.cpp
|
2017-07-03 15:05:30 -05:00
|
|
|
src/hip_db.cpp
|
2017-04-01 14:50:39 -05:00
|
|
|
src/grid_launch.cpp
|
2017-07-17 15:16:12 -04:00
|
|
|
src/hip_texture.cpp
|
2018-02-26 11:59:03 +05:30
|
|
|
src/hip_surface.cpp
|
2018-08-07 07:32:27 -05:00
|
|
|
src/hip_intercept.cpp
|
2017-11-10 01:20:50 +00:00
|
|
|
src/env.cpp
|
2019-02-21 12:48:28 -05:00
|
|
|
src/h2f.cpp)
|
2016-04-12 12:42:12 +05:30
|
|
|
|
2017-06-28 10:26:04 +05:30
|
|
|
if(COMPILE_HIP_ATP_MARKER)
|
|
|
|
|
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -L/opt/rocm/profiler/CXLActivityLogger/bin/x86_64 -lCXLActivityLogger")
|
|
|
|
|
endif()
|
2016-12-01 15:33:12 +05:30
|
|
|
add_library(hip_hcc SHARED ${SOURCE_FILES_RUNTIME})
|
|
|
|
|
add_library(hip_hcc_static STATIC ${SOURCE_FILES_RUNTIME})
|
2018-08-15 21:53:20 +00:00
|
|
|
if(HIP_COMPILER STREQUAL "hcc")
|
2019-01-18 13:23:57 +05:30
|
|
|
target_link_libraries(hip_hcc PRIVATE hc_am)
|
|
|
|
|
target_link_libraries(hip_hcc_static PRIVATE hc_am)
|
2019-05-16 15:58:54 +03:00
|
|
|
|
|
|
|
|
add_library(hiprtc SHARED src/hiprtc.cpp)
|
|
|
|
|
target_include_directories(
|
|
|
|
|
hiprtc SYSTEM
|
|
|
|
|
PRIVATE ${PROJECT_SOURCE_DIR}/include ${HSA_PATH}/include)
|
|
|
|
|
target_link_libraries(hiprtc PUBLIC stdc++fs)
|
2018-08-15 21:53:20 +00:00
|
|
|
endif()
|
2019-08-08 04:33:04 -04:00
|
|
|
set_target_properties(hip_hcc PROPERTIES CXX_VISIBILITY_PRESET hidden)
|
|
|
|
|
set_target_properties(hip_hcc PROPERTIES VISIBILITY_INLINES_HIDDEN 1)
|
2019-05-23 18:03:32 -07:00
|
|
|
|
|
|
|
|
if(HIP_PLATFORM STREQUAL "hcc")
|
|
|
|
|
find_package(amd_comgr REQUIRED CONFIG
|
|
|
|
|
PATHS
|
|
|
|
|
/opt/rocm/
|
|
|
|
|
PATH_SUFFIXES
|
|
|
|
|
cmake/amd_comgr
|
|
|
|
|
lib/cmake/amd_comgr
|
|
|
|
|
)
|
|
|
|
|
MESSAGE(STATUS "Code Object Manager found at ${amd_comgr_DIR}.")
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
target_link_libraries(hip_hcc PRIVATE amd_comgr)
|
|
|
|
|
target_link_libraries(hip_hcc_static PRIVATE amd_comgr)
|
|
|
|
|
|
2017-02-23 11:18:06 +05:30
|
|
|
string(REPLACE " " ";" HCC_CXX_FLAGS_LIST ${HCC_CXX_FLAGS})
|
2018-10-19 20:07:08 +00:00
|
|
|
foreach(TARGET hip_hcc hip_hcc_static)
|
2017-02-23 11:18:06 +05:30
|
|
|
target_include_directories(${TARGET} SYSTEM INTERFACE $<INSTALL_INTERFACE:$<INSTALL_PREFIX>/include>;${HSA_PATH}/include)
|
|
|
|
|
endforeach()
|
2018-04-24 14:04:24 -05:00
|
|
|
add_library(host INTERFACE)
|
|
|
|
|
target_link_libraries(host INTERFACE hip_hcc)
|
|
|
|
|
add_library(device INTERFACE)
|
2018-08-01 20:37:46 +00:00
|
|
|
if(HIP_COMPILER STREQUAL "hcc")
|
2018-10-19 20:07:08 +00:00
|
|
|
target_link_libraries(device INTERFACE host hcc::hccrt hcc::hc_am)
|
|
|
|
|
else()
|
|
|
|
|
target_link_libraries(device INTERFACE host)
|
2018-08-01 20:37:46 +00:00
|
|
|
endif()
|
2017-02-23 11:18:06 +05:30
|
|
|
|
2016-10-11 11:13:41 +05:30
|
|
|
# Generate .hipInfo
|
|
|
|
|
file(WRITE "${PROJECT_BINARY_DIR}/.hipInfo" ${_buildInfo})
|
2016-04-01 16:08:49 +05:30
|
|
|
endif()
|
2016-03-30 07:54:18 -05:00
|
|
|
|
2016-10-11 11:13:41 +05:30
|
|
|
# Generate .hipVersion
|
|
|
|
|
file(WRITE "${PROJECT_BINARY_DIR}/.hipVersion" ${_versionInfo})
|
2016-08-14 16:22:25 +05:30
|
|
|
|
2016-06-21 08:13:19 +05:30
|
|
|
# Build doxygen documentation
|
2018-02-12 10:21:27 +05:30
|
|
|
find_program(DOXYGEN_EXE doxygen)
|
|
|
|
|
if(DOXYGEN_EXE)
|
|
|
|
|
add_custom_target(doc COMMAND HIP_PATH=${CMAKE_CURRENT_SOURCE_DIR} ${DOXYGEN_EXE} ${CMAKE_CURRENT_SOURCE_DIR}/docs/doxygen-input/doxy.cfg
|
|
|
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/docs)
|
|
|
|
|
endif()
|
2016-06-21 08:13:19 +05:30
|
|
|
|
2016-04-12 12:42:12 +05:30
|
|
|
#############################
|
|
|
|
|
# Install steps
|
|
|
|
|
#############################
|
|
|
|
|
# Install hip_hcc if platform is hcc
|
|
|
|
|
if(HIP_PLATFORM STREQUAL "hcc")
|
2019-05-17 09:52:43 -04:00
|
|
|
if(HIP_COMPILER STREQUAL "hcc")
|
|
|
|
|
install(TARGETS hip_hcc_static hip_hcc hiprtc DESTINATION lib)
|
|
|
|
|
else()
|
|
|
|
|
install(TARGETS hip_hcc_static hip_hcc DESTINATION lib)
|
|
|
|
|
endif()
|
2016-10-11 11:13:41 +05:30
|
|
|
|
|
|
|
|
# Install .hipInfo
|
|
|
|
|
install(FILES ${PROJECT_BINARY_DIR}/.hipInfo DESTINATION lib)
|
2016-04-01 16:08:49 +05:30
|
|
|
endif()
|
2016-04-12 12:42:12 +05:30
|
|
|
|
2016-10-11 11:13:41 +05:30
|
|
|
# Install .hipVersion
|
|
|
|
|
install(FILES ${PROJECT_BINARY_DIR}/.hipVersion DESTINATION bin)
|
2016-08-12 23:21:37 +05:30
|
|
|
|
2016-09-02 15:08:36 +05:30
|
|
|
# Install src, bin, include & cmake if necessary
|
2016-04-12 12:42:12 +05:30
|
|
|
execute_process(COMMAND test ${CMAKE_INSTALL_PREFIX} -ef ${CMAKE_CURRENT_SOURCE_DIR}
|
2016-10-03 22:52:23 +05:30
|
|
|
RESULT_VARIABLE INSTALL_SOURCE)
|
2016-04-01 12:13:22 +05:30
|
|
|
if(NOT ${INSTALL_SOURCE} EQUAL 0)
|
2016-04-01 13:48:37 +05:30
|
|
|
install(DIRECTORY src DESTINATION .)
|
|
|
|
|
install(DIRECTORY bin DESTINATION . USE_SOURCE_PERMISSIONS)
|
|
|
|
|
install(DIRECTORY include DESTINATION .)
|
2016-09-02 15:08:36 +05:30
|
|
|
install(DIRECTORY cmake DESTINATION .)
|
2016-03-30 13:58:38 +05:30
|
|
|
endif()
|
2016-03-23 07:54:01 -05:00
|
|
|
|
2017-02-13 16:01:50 +05:30
|
|
|
#############################
|
|
|
|
|
# hip-config
|
|
|
|
|
#############################
|
|
|
|
|
set(LIB_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/lib)
|
|
|
|
|
set(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include)
|
|
|
|
|
set(BIN_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/bin)
|
|
|
|
|
set(CONFIG_PACKAGE_INSTALL_DIR ${LIB_INSTALL_DIR}/cmake/hip)
|
|
|
|
|
|
|
|
|
|
if(HIP_PLATFORM STREQUAL "hcc")
|
2018-10-19 20:07:08 +00:00
|
|
|
install(TARGETS hip_hcc_static hip_hcc host device EXPORT hip-targets DESTINATION ${LIB_INSTALL_DIR})
|
2017-02-13 16:01:50 +05:30
|
|
|
install(EXPORT hip-targets DESTINATION ${CONFIG_PACKAGE_INSTALL_DIR} NAMESPACE hip::)
|
|
|
|
|
include(CMakePackageConfigHelpers)
|
|
|
|
|
|
2018-09-19 18:29:56 +00:00
|
|
|
if(HIP_COMPILER STREQUAL "hcc")
|
2019-01-18 13:23:57 +05:30
|
|
|
configure_package_config_file(
|
|
|
|
|
hip-config-hcc.cmake.in
|
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/hip-config.cmake
|
|
|
|
|
INSTALL_DESTINATION ${CONFIG_PACKAGE_INSTALL_DIR}
|
|
|
|
|
PATH_VARS LIB_INSTALL_DIR INCLUDE_INSTALL_DIR BIN_INSTALL_DIR
|
|
|
|
|
)
|
2018-09-19 18:29:56 +00:00
|
|
|
elseif(HIP_COMPILER STREQUAL "clang")
|
2019-01-18 13:23:57 +05:30
|
|
|
configure_package_config_file(
|
|
|
|
|
hip-config-clang.cmake.in
|
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/hip-config.cmake
|
|
|
|
|
INSTALL_DESTINATION ${CONFIG_PACKAGE_INSTALL_DIR}
|
|
|
|
|
PATH_VARS LIB_INSTALL_DIR INCLUDE_INSTALL_DIR BIN_INSTALL_DIR
|
|
|
|
|
)
|
2018-09-19 18:29:56 +00:00
|
|
|
endif()
|
|
|
|
|
|
2017-02-13 16:01:50 +05:30
|
|
|
write_basic_package_version_file(
|
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/hip-config-version.cmake
|
2019-08-09 12:13:29 +00:00
|
|
|
VERSION "${HIP_VERSION_MAJOR}.${HIP_VERSION_MINOR}.${HIP_VERSION_GITDATE}"
|
2017-02-13 16:01:50 +05:30
|
|
|
COMPATIBILITY SameMajorVersion
|
|
|
|
|
)
|
|
|
|
|
install(
|
|
|
|
|
FILES
|
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/hip-config.cmake
|
|
|
|
|
${CMAKE_CURRENT_BINARY_DIR}/hip-config-version.cmake
|
|
|
|
|
DESTINATION
|
|
|
|
|
${CONFIG_PACKAGE_INSTALL_DIR}
|
|
|
|
|
)
|
|
|
|
|
endif()
|
|
|
|
|
|
2016-04-12 12:42:12 +05:30
|
|
|
#############################
|
|
|
|
|
# Packaging steps
|
|
|
|
|
#############################
|
2016-04-15 12:13:04 +05:30
|
|
|
# Package: hip_base
|
|
|
|
|
set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/packages/hip_base)
|
|
|
|
|
configure_file(packaging/hip_base.txt ${BUILD_DIR}/CMakeLists.txt @ONLY)
|
|
|
|
|
configure_file(packaging/hip_base.postinst ${BUILD_DIR}/postinst @ONLY)
|
|
|
|
|
configure_file(packaging/hip_base.prerm ${BUILD_DIR}/prerm @ONLY)
|
2017-10-24 20:59:30 +01:00
|
|
|
|
|
|
|
|
add_custom_target(pkg_hip_base COMMAND ${CMAKE_COMMAND} .
|
|
|
|
|
COMMAND rm -rf *.deb *.rpm *.tar.gz
|
|
|
|
|
COMMAND make package
|
|
|
|
|
COMMAND cp *.deb ${PROJECT_BINARY_DIR}
|
|
|
|
|
COMMAND cp *.rpm ${PROJECT_BINARY_DIR}
|
|
|
|
|
COMMAND cp *.tar.gz ${PROJECT_BINARY_DIR}
|
|
|
|
|
WORKING_DIRECTORY ${BUILD_DIR}
|
2018-04-11 15:30:13 +05:30
|
|
|
DEPENDS lpl ca)
|
2017-10-24 20:59:30 +01:00
|
|
|
|
|
|
|
|
# Packaging needs to wait for hipify-clang to build if it's enabled...
|
|
|
|
|
if (BUILD_HIPIFY_CLANG)
|
|
|
|
|
add_dependencies(pkg_hip_base hipify-clang)
|
2016-10-05 22:34:42 +05:30
|
|
|
endif()
|
2016-04-15 12:13:04 +05:30
|
|
|
|
|
|
|
|
# Package: hip_hcc
|
|
|
|
|
set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/packages/hip_hcc)
|
|
|
|
|
configure_file(packaging/hip_hcc.txt ${BUILD_DIR}/CMakeLists.txt @ONLY)
|
|
|
|
|
configure_file(packaging/hip_hcc.postinst ${BUILD_DIR}/postinst @ONLY)
|
|
|
|
|
configure_file(packaging/hip_hcc.prerm ${BUILD_DIR}/prerm @ONLY)
|
|
|
|
|
add_custom_target(pkg_hip_hcc COMMAND ${CMAKE_COMMAND} .
|
2016-10-03 22:52:23 +05:30
|
|
|
COMMAND rm -rf *.deb *.rpm *.tar.gz
|
|
|
|
|
COMMAND make package
|
|
|
|
|
COMMAND cp *.deb ${PROJECT_BINARY_DIR}
|
|
|
|
|
COMMAND cp *.rpm ${PROJECT_BINARY_DIR}
|
|
|
|
|
COMMAND cp *.tar.gz ${PROJECT_BINARY_DIR}
|
|
|
|
|
WORKING_DIRECTORY ${BUILD_DIR}
|
2019-08-21 10:01:23 +00:00
|
|
|
DEPENDS hip_hcc hip_hcc_static hiprtc)
|
2016-04-15 12:13:04 +05:30
|
|
|
|
|
|
|
|
# Package: hip_nvcc
|
|
|
|
|
set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/packages/hip_nvcc)
|
|
|
|
|
configure_file(packaging/hip_nvcc.txt ${BUILD_DIR}/CMakeLists.txt @ONLY)
|
|
|
|
|
add_custom_target(pkg_hip_nvcc COMMAND ${CMAKE_COMMAND} .
|
2016-10-03 22:52:23 +05:30
|
|
|
COMMAND rm -rf *.deb *.rpm *.tar.gz
|
|
|
|
|
COMMAND make package
|
|
|
|
|
COMMAND cp *.deb ${PROJECT_BINARY_DIR}
|
|
|
|
|
COMMAND cp *.rpm ${PROJECT_BINARY_DIR}
|
|
|
|
|
COMMAND cp *.tar.gz ${PROJECT_BINARY_DIR}
|
|
|
|
|
WORKING_DIRECTORY ${BUILD_DIR})
|
2016-04-15 12:13:04 +05:30
|
|
|
|
|
|
|
|
# Package: hip_doc
|
|
|
|
|
set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/packages/hip_doc)
|
|
|
|
|
configure_file(packaging/hip_doc.txt ${BUILD_DIR}/CMakeLists.txt @ONLY)
|
|
|
|
|
add_custom_target(pkg_hip_doc COMMAND ${CMAKE_COMMAND} .
|
2016-10-03 22:52:23 +05:30
|
|
|
COMMAND rm -rf *.deb *.rpm *.tar.gz
|
|
|
|
|
COMMAND make package
|
|
|
|
|
COMMAND cp *.deb ${PROJECT_BINARY_DIR}
|
|
|
|
|
COMMAND cp *.rpm ${PROJECT_BINARY_DIR}
|
|
|
|
|
COMMAND cp *.tar.gz ${PROJECT_BINARY_DIR}
|
|
|
|
|
WORKING_DIRECTORY ${BUILD_DIR})
|
2016-04-15 12:13:04 +05:30
|
|
|
|
2016-05-06 14:39:10 +05:30
|
|
|
# Package: hip_samples
|
|
|
|
|
set(BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/packages/hip_samples)
|
|
|
|
|
configure_file(packaging/hip_samples.txt ${BUILD_DIR}/CMakeLists.txt @ONLY)
|
|
|
|
|
add_custom_target(pkg_hip_samples COMMAND ${CMAKE_COMMAND} .
|
2016-10-03 22:52:23 +05:30
|
|
|
COMMAND rm -rf *.deb *.rpm *.tar.gz
|
|
|
|
|
COMMAND make package
|
|
|
|
|
COMMAND cp *.deb ${PROJECT_BINARY_DIR}
|
|
|
|
|
COMMAND cp *.rpm ${PROJECT_BINARY_DIR}
|
|
|
|
|
COMMAND cp *.tar.gz ${PROJECT_BINARY_DIR}
|
|
|
|
|
WORKING_DIRECTORY ${BUILD_DIR})
|
2016-05-06 14:39:10 +05:30
|
|
|
|
2016-04-15 12:13:04 +05:30
|
|
|
# Package: all
|
2016-07-19 06:52:38 +05:30
|
|
|
if(POLICY CMP0037)
|
|
|
|
|
cmake_policy(PUSH)
|
|
|
|
|
cmake_policy(SET CMP0037 OLD)
|
|
|
|
|
endif()
|
2019-09-10 01:35:16 -07:00
|
|
|
file(GENERATE OUTPUT ${PROJECT_BINARY_DIR}/fixnames
|
|
|
|
|
CONTENT "pwd; for i in *.deb; do mv \"\$i\" \"\${i/.deb/-amd64.deb}\" ; done
|
|
|
|
|
for i in *.rpm ; do mv \$i \${i/.rpm/.x86_64.rpm} ; done
|
|
|
|
|
")
|
2019-08-21 10:01:23 +00:00
|
|
|
add_custom_target(package
|
2019-09-10 01:35:16 -07:00
|
|
|
COMMAND bash ${PROJECT_BINARY_DIR}/fixnames
|
2019-08-21 10:01:23 +00:00
|
|
|
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
|
|
|
|
|
DEPENDS pkg_hip_base pkg_hip_hcc pkg_hip_nvcc pkg_hip_doc pkg_hip_samples)
|
2016-07-19 06:52:38 +05:30
|
|
|
if(POLICY CMP0037)
|
|
|
|
|
cmake_policy(POP)
|
|
|
|
|
endif()
|
2016-04-11 16:33:28 +05:30
|
|
|
|
2017-12-14 12:16:44 +05:30
|
|
|
#############################
|
|
|
|
|
# Code analysis
|
|
|
|
|
#############################
|
2018-02-12 10:21:27 +05:30
|
|
|
# Target: cppcheck
|
|
|
|
|
find_program(CPPCHECK_EXE cppcheck)
|
|
|
|
|
if(CPPCHECK_EXE)
|
|
|
|
|
add_custom_target(cppcheck COMMAND ${CPPCHECK_EXE} --force --quiet --enable=warning,performance,portability,information,missingInclude src include -I /opt/rocm/include/hcc -I /opt/rocm/include --suppress=*:/opt/rocm/include/hcc/hc.hpp
|
|
|
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
|
|
|
|
endif()
|
|
|
|
|
|
|
|
|
|
#############################
|
|
|
|
|
# Code formatting
|
|
|
|
|
#############################
|
|
|
|
|
# Target: clangformat
|
|
|
|
|
find_program(CLANGFORMAT_EXE clang-format PATHS ${HCC_HOME}/bin)
|
|
|
|
|
if(CLANGFORMAT_EXE)
|
|
|
|
|
file(GLOB_RECURSE FORMAT_SOURCE_FILE_LIST *.cpp *.hpp *.h)
|
|
|
|
|
add_custom_target(clangformat COMMAND ${CLANGFORMAT_EXE} -style=file -i ${FORMAT_SOURCE_FILE_LIST}
|
|
|
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
|
|
|
|
|
endif()
|
2017-12-14 12:16:44 +05:30
|
|
|
|
2016-09-23 14:46:48 +05:30
|
|
|
#############################
|
|
|
|
|
# Testing steps
|
|
|
|
|
#############################
|
|
|
|
|
# Target: test
|
2017-04-13 12:12:04 +05:30
|
|
|
set(HIP_ROOT_DIR ${CMAKE_INSTALL_PREFIX})
|
2017-02-27 13:14:08 +05:30
|
|
|
set(HIP_SRC_PATH ${CMAKE_CURRENT_SOURCE_DIR})
|
2017-04-13 12:12:04 +05:30
|
|
|
execute_process(COMMAND "${CMAKE_COMMAND}" -E copy_directory "${HIP_SRC_PATH}/cmake" "${HIP_ROOT_DIR}/cmake" RESULT_VARIABLE RUN_HIT ERROR_QUIET)
|
2017-03-06 15:32:21 +05:30
|
|
|
if(${RUN_HIT} EQUAL 0)
|
2017-04-13 12:12:04 +05:30
|
|
|
execute_process(COMMAND "${CMAKE_COMMAND}" -E copy_directory "${HIP_SRC_PATH}/bin" "${HIP_ROOT_DIR}/bin" RESULT_VARIABLE RUN_HIT ERROR_QUIET)
|
2017-03-06 15:32:21 +05:30
|
|
|
endif()
|
|
|
|
|
if(${RUN_HIT} EQUAL 0)
|
2017-04-13 12:12:04 +05:30
|
|
|
set(CMAKE_MODULE_PATH "${HIP_ROOT_DIR}/cmake" ${CMAKE_MODULE_PATH})
|
2017-03-06 15:32:21 +05:30
|
|
|
include(${HIP_SRC_PATH}/tests/hit/HIT.cmake)
|
|
|
|
|
|
|
|
|
|
# Add tests
|
|
|
|
|
include_directories(${HIP_SRC_PATH}/tests/src)
|
|
|
|
|
hit_add_directory_recursive(${HIP_SRC_PATH}/tests/src "directed_tests")
|
2017-02-27 13:14:08 +05:30
|
|
|
|
2017-03-06 15:32:21 +05:30
|
|
|
# Add top-level tests to build_tests
|
|
|
|
|
add_custom_target(build_tests DEPENDS directed_tests)
|
2017-02-27 13:14:08 +05:30
|
|
|
|
2017-03-06 15:32:21 +05:30
|
|
|
# Add custom target: check
|
|
|
|
|
add_custom_target(check COMMAND "${CMAKE_COMMAND}" --build . --target test DEPENDS build_tests)
|
|
|
|
|
else()
|
|
|
|
|
message(STATUS "Testing targets will not be available. To enable them please ensure that the HIP installation directory is writeable. Use -DCMAKE_INSTALL_PREFIX to specify a suitable location")
|
|
|
|
|
endif()
|
2017-02-27 13:14:08 +05:30
|
|
|
|
2016-10-03 22:52:23 +05:30
|
|
|
# vim: ts=4:sw=4:expandtab:smartindent
|