Modify hsa CMakeList.txt file to use PREFIX_PATH and git describe versioning.

Change-Id: I08668df07725369ecf8a2f35e74dd7d64c8ca94b
Этот коммит содержится в:
James Edwards
2017-02-13 16:28:24 -06:00
коммит произвёл JamesAdrian Edwards
родитель 9887c26113
Коммит 73e942cd8a
8 изменённых файлов: 416 добавлений и 364 удалений
+63 -18
Просмотреть файл
@@ -3,7 +3,7 @@
## The University of Illinois/NCSA
## Open Source License (NCSA)
##
## Copyright (c) 2014-2015, Advanced Micro Devices, Inc. All rights reserved.
## Copyright (c) 2014-2017, Advanced Micro Devices, Inc. All rights reserved.
##
## Developed by:
##
@@ -41,31 +41,76 @@
################################################################################
## Parses the VERSION_STRING variable and places
## the first, second and third number values in
## the first, second and third number values in
## the major, minor and patch variables.
function(parse_version VERSION_STRING)
function( parse_version VERSION_STRING )
string(REGEX MATCHALL "[0123456789]+" VERSIONS ${VERSION_STRING})
list(LENGTH VERSIONS VERSION_COUNT)
string ( FIND ${VERSION_STRING} "-" STRING_INDEX )
if (${VERSION_COUNT} GREATER 0)
list(GET VERSIONS 0 MAJOR)
set(VERSION_MAJOR ${MAJOR} PARENT_SCOPE)
set(TEMP_VERSION_STRING "${MAJOR}")
if ( ${STRING_INDEX} GREATER -1 )
math ( EXPR STRING_INDEX "${STRING_INDEX} + 1" )
string ( SUBSTRING ${VERSION_STRING} ${STRING_INDEX} -1 VERSION_BUILD )
endif ()
if (${VERSION_COUNT} GREATER 1)
list(GET VERSIONS 1 MINOR)
set(VERSION_MINOR ${MINOR} PARENT_SCOPE)
set(TEMP_VERSION_STRING "${TEMP_VERSION_STRING}.${MINOR}")
string ( REGEX MATCHALL "[0123456789]+" VERSIONS ${VERSION_STRING} )
list (LENGTH VERSIONS VERSION_COUNT )
if ( ${VERSION_COUNT} GREATER 0)
list ( GET VERSIONS 0 MAJOR )
set ( VERSION_MAJOR ${MAJOR} PARENT_SCOPE )
set ( TEMP_VERSION_STRING "${MAJOR}" )
endif ()
if (${VERSION_COUNT} GREATER 2)
list(GET VERSIONS 2 PATCH)
set(VERSION_PATCH ${PATCH} PARENT_SCOPE)
set(TEMP_VERSION_STRING "${TEMP_VERSION_STRING}.${PATCH}")
if ( ${VERSION_COUNT} GREATER 1 )
list ( GET VERSIONS 1 MINOR )
set ( VERSION_MINOR ${MINOR} PARENT_SCOPE )
set ( TEMP_VERSION_STRING "${TEMP_VERSION_STRING}.${MINOR}" )
endif ()
set(VERSION_STRING "${TEMP_VERSION_STRING}" PARENT_SCOPE)
if ( ${VERSION_COUNT} GREATER 2 )
list ( GET VERSIONS 2 PATCH )
set ( VERSION_PATCH ${PATCH} PARENT_SCOPE )
set ( TEMP_VERSION_STRING "${TEMP_VERSION_STRING}.${PATCH}" )
endif ()
if (DEFINED VERSION_BUILD )
set ( VERSION_BUILD "${VERSION_BUILD}" PARENT_SCOPE )
endif ()
set ( VERSION_STRING "${TEMP_VERSION_STRING}" PARENT_SCOPE )
endfunction ()
## Gets the current version of the repository
## using versioning tags and git describe.
## Passes back a packaging version string
## and a library version string.
function ( get_version DEFAULT_VERSION_STRING )
parse_version ( ${DEFAULT_VERSION_STRING} )
find_program ( GIT NAMES git )
if ( GIT )
execute_process ( COMMAND git describe --dirty --long --match [0-9]*
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_VARIABLE GIT_TAG_STRING
OUTPUT_STRIP_TRAILING_WHITESPACE
RESULT_VARIABLE RESULT )
if ( ${RESULT} EQUAL 0 )
parse_version ( ${GIT_TAG_STRING} )
endif ()
endif ()
set( VERSION_STRING "${VERSION_STRING}" PARENT_SCOPE )
set( VERSION_MAJOR "${VERSION_MAJOR}" PARENT_SCOPE )
set( VERSION_MINOR "${VERSION_MINOR}" PARENT_SCOPE )
set( VERSION_PATCH "${VERSION_PATCH}" PARENT_SCOPE )
set( VERSION_BUILD "${VERSION_BUILD}" PARENT_SCOPE )
endfunction()
+65 -60
Просмотреть файл
@@ -1,53 +1,29 @@
cmake_minimum_required ( VERSION 2.8.0 ) ## GCC 4.8 or higher compiler required.
cmake_minimum_required ( VERSION 3.5.0 )
if ( WIN32 )
MESSAGE ( FATAL_ERROR "Windows build is not supported." )
endif ()
## Process build type.
if( NOT DEFINED CMAKE_BUILD_TYPE )
set( CMAKE_BUILD_TYPE "Debug" )
endif()
## Verbose output.
set ( CMAKE_VERBOSE_MAKEFILE on )
## Determine external build folder.
if( "${CMAKE_BUILD_TYPE}" STREQUAL Release )
set( BUILD_TYPE "Release" )
set( ISDEBUG 0 )
set( BUILD_FOLDER "B_rel" )
set( BUILD_FOLDER "lnx64a/B_rel" )
else()
set( BUILD_TYPE "Debug" )
set( ISDEBUG 1)
set( BUILD_FOLDER "B_dbg" )
set( BUILD_FOLDER "lnx64a/B_dbg" )
endif()
## Process build target.
if ( "${HSA_BUILD_TARGET_BITS}" STREQUAL 32 )
set ( ONLY64STR "" )
set ( IS64BIT 0 )
set ( BUILD_FOLDER "lnx/${BUILD_FOLDER}" )
else ()
set ( ONLY64STR "64" )
set ( IS64BIT 1 )
set ( BUILD_FOLDER "lnx64a/${BUILD_FOLDER}" )
endif ()
## Check that the libhsail include and library directories are defined.
if ( NOT DEFINED LIBHSAIL_BUILD_FOLDER )
set ( LIBHSAIL_BUILD_FOLDER ${BUILD_FOLDER} )
endif()
## Used for packaging.
set ( CORE_RUNTIME_NAME "hsa-runtime" )
set ( CORE_RUNTIME_COMPONENT "lib${CORE_RUNTIME_NAME}" )
set ( CORE_RUNTIME_TARGET "${CORE_RUNTIME_NAME}${ONLY64STR}" )
set ( CORE_RUNTIME_LIB "lib${CORE_RUNTIME_NAME}${ONLY64STR}.so" )
set ( THUNK_LIB "libhsakmt.so" )
## Set ext runtime module name and project name.
set ( FINALIZE_NAME "hsa-ext-finalize" )
set ( FINALIZE_COMPONENT "lib${FINALIZE_NAME}" )
set ( FINALIZE_TARGET "${FINALIZE_NAME}64" )
project ( ${FINALIZE_TARGET} )
MESSAGE ( ------IS64BIT: ${IS64BIT} )
MESSAGE ( ------Compiler: ${CMAKE_CXX_COMPILER} )
MESSAGE ( ------Version: ${CMAKE_CXX_COMPILER_VERSION} )
## Verbose output.
set ( CMAKE_VERBOSE_MAKEFILE on )
## Include the cmake_modules utils.cmake
list ( APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../cmake_modules" )
include ( utils )
## Compiler preproc definitions.
add_definitions ( -D__linux__ )
@@ -59,11 +35,53 @@ add_definitions ( -DAMD_INTERNAL_BUILD )
add_definitions ( -DLITTLEENDIAN_CPU=1 )
add_definitions ( -D HSA_DEPRECATED= )
## Set ext runtime module name and project name.
set ( FINALIZE_NAME "hsa-ext-finalize" )
set ( FINALIZE_COMPONENT "lib${FINALIZE_NAME}" )
set ( FINALIZE_TARGET "${FINALIZE_NAME}${ONLY64STR}" )
project ( ${FINALIZE_TARGET} )
## Get the package version. The defaults to 1.0.0.
get_version ( "1.0.0" )
set ( BUILD_VERSION_MAJOR ${VERSION_MAJOR} )
set ( BUILD_VERSION_MINOR ${VERSION_MINOR} )
set ( BUILD_VERSION_PATCH ${VERSION_PATCH} )
set ( LIB_VERSION_STRING "${BUILD_VERSION_MAJOR}.${BUILD_VERSION_MINOR}.${BUILD_VERSION_PATCH}" )
if ( DEFINED VERSION_BUILD )
set ( BUILD_VERSION_PATCH "${BUILD_VERSION_PATCH}-${VERSION_BUILD}" )
endif ()
set ( BUILD_VERSION_STRING "${BUILD_VERSION_MAJOR}.${BUILD_VERSION_MINOR}.${BUILD_VERSION_PATCH}" )
## Find the hsakmt library and include files
find_file ( HSAKMT_INC "libhsakmt/hsakmt.h" )
find_library ( HSAKMT_LIB libhsakmt.so )
get_filename_component ( HSAKMT_LIB_PATH ${HSAKMT_LIB} DIRECTORY )
get_filename_component ( HSAKMT_INC_PATH ${HSAKMT_INC} DIRECTORY )
include_directories ( ${HSAKMT_BUILD_INC_PATH} )
link_directories (${HSAKMT_BUILD_LIB_PATH})
## Find the hsa-runtime and include files
find_file ( HSA_INC "hsa/hsa.h" )
find_library ( HSA_LIB libhsa-runtime64.so )
get_filename_component ( HSA_LIB_PATH ${HSA_LIB} DIRECTORY )
get_filename_component ( HSA_INC_PATH ${HSA_INC} DIRECTORY )
include_directories ( ${HSA_BUILD_INC_PATH} )
link_directories (${HSA_BUILD_LIB_PATH})
## Find the external library files and set the link command
find_library ( HSAIL_LIB libhsail.a )
set ( LIBHSAIL -Wl,--no-whole-archive PRIVATE ${HSAIL_LIB} )
find_library ( HSAIL_AMD_LIB libhsail-amd.a )
set ( LIBHSAILAMD -Wl,--no-whole-archive PRIVATE ${HSAIL_AMD_LIB} )
find_library ( AMDHSAFIN_LIB amdhsafin64.a )
set ( LIBAMDHSAFIN -Wl,--no-whole-archive ${AMDHSAFIN_LIB} )
find_library ( LIBAMDHSACODE libamdhsacode.a )
find_library ( LIBCACHING libcaching.a )
find_library ( LIBSCP3 scSP3_R1000.a )
find_library ( LIBDWARF libdwarf.a )
find_library ( LIBELF libelf.a )
## External dependencies and directories
if ( NOT DEFINED REG_INCLUDE )
@@ -132,21 +150,8 @@ set ( FINALIZE_SRCS ${EXT_SOURCE_DIR}/finalize/hsa_ext_finalize.cpp
add_library ( ${FINALIZE_TARGET} SHARED ${FINALIZE_SRCS} )
## Set the VERSION and SOVERSION values
if ( DEFINED VERSION_STRING )
set_property ( TARGET ${FINALIZE_TARGET} PROPERTY VERSION "${VERSION_STRING}" )
endif ()
set_property ( TARGET ${FINALIZE_TARGET} PROPERTY SOVERSION "${VERSION_MAJOR}" )
## Add the core runtime in the link
set ( LIBAMDHSAFIN -Wl,--no-whole-archive ${HSA_BUILD_LIB_PATH}/amdhsafin64.a )
set ( LIBAMDHSACODE ${HSA_BUILD_LIB_PATH}/libamdhsacode.a )
set ( LIBCACHING ${HSA_BUILD_LIB_PATH}/libcaching.a )
set ( LIBSCP3 ${HSA_BUILD_LIB_PATH}/scSP3_R1000.a )
set ( LIBHSAILAMD ${HSA_BUILD_LIB_PATH}/libhsail-amd.a )
set ( LIBHSAIL ${HSA_BUILD_LIB_PATH}/libhsail.a )
set ( LIBDWARF ${HSA_BUILD_LIB_PATH}/libdwarf.a )
set ( LIBELF ${HSA_BUILD_LIB_PATH}/libelf.a )
set_property ( TARGET ${FINALIZE_TARGET} PROPERTY VERSION "${LIB_VERSION_STRING}" )
set_property ( TARGET ${FINALIZE_TARGET} PROPERTY SOVERSION "${BUILD_VERSION_MAJOR}" )
## Add the core runtime in the link
link_directories(${HSA_BUILD_LIB_PATH})
@@ -161,8 +166,8 @@ target_link_libraries (
PRIVATE ${LIBHSAIL}
PRIVATE ${LIBDWARF}
PRIVATE ${LIBELF}
PRIVATE ${HSA_BUILD_LIB_PATH}/${CORE_RUNTIME_LIB}
PRIVATE ${HSA_BUILD_LIB_PATH}/${THUNK_LIB}
PRIVATE hsa-runtime64
PRIVATE hsakmt
c stdc++ dl pthread rt
)
+52 -58
Просмотреть файл
@@ -1,52 +1,29 @@
cmake_minimum_required ( VERSION 2.8.0 ) ## GCC 4.8 or higher compiler required.
cmake_minimum_required ( VERSION 3.5.0 )
if ( WIN32 )
MESSAGE ( FATAL_ERROR "Windows build is not supported." )
endif ()
## Process build type.
if( NOT DEFINED CMAKE_BUILD_TYPE )
set( CMAKE_BUILD_TYPE "Debug" )
endif()
## Verbose output.
set ( CMAKE_VERBOSE_MAKEFILE on )
## Determine external build folder.
if( "${CMAKE_BUILD_TYPE}" STREQUAL Release )
set( BUILD_TYPE "Release" )
set( ISDEBUG 0 )
set( BUILD_FOLDER "B_rel" )
set( BUILD_FOLDER "lnx64a/B_rel" )
else()
set( BUILD_TYPE "Debug" )
set( ISDEBUG 1)
set( BUILD_FOLDER "B_dbg" )
set( BUILD_FOLDER "lnx64a/B_dbg" )
endif()
## Process build target.
if ( "${HSA_BUILD_TARGET_BITS}" STREQUAL 32 )
set ( ONLY64STR "" )
set ( IS64BIT 0 )
set ( BUILD_FOLDER "lnx/${BUILD_FOLDER}" )
else ()
set ( ONLY64STR "64" )
set ( IS64BIT 1 )
set ( BUILD_FOLDER "lnx64a/${BUILD_FOLDER}" )
endif ()
## Check that the libhsail include and library directories are defined.
if ( NOT DEFINED LIBHSAIL_BUILD_FOLDER )
set ( LIBHSAIL_BUILD_FOLDER ${BUILD_FOLDER} )
endif()
## Used for packaging.
set ( CORE_RUNTIME_NAME "hsa-runtime" )
set ( CORE_RUNTIME_COMPONENT "lib${CORE_RUNTIME_NAME}" )
set ( CORE_RUNTIME_TARGET "${CORE_RUNTIME_NAME}${ONLY64STR}" )
set ( CORE_RUNTIME_LIB "lib${CORE_RUNTIME_NAME}${ONLY64STR}.so" )
## Set ext runtime module name and project name.
set ( IMAGE_NAME "hsa-ext-image" )
set ( IMAGE_COMPONENT "lib${IMAGE_NAME}" )
set ( IMAGE_TARGET "${IMAGE_NAME}64" )
project ( ${IMAGE_TARGET} )
MESSAGE ( ------IS64BIT: ${IS64BIT} )
MESSAGE ( ------Compiler: ${CMAKE_CXX_COMPILER} )
MESSAGE ( ------Version: ${CMAKE_CXX_COMPILER_VERSION} )
## Verbose output.
set ( CMAKE_VERBOSE_MAKEFILE on )
## Include the cmake_modules utils.cmake
list ( APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../cmake_modules" )
include ( utils )
## Compiler preproc definitions.
add_definitions ( -D__linux__ )
@@ -58,11 +35,40 @@ add_definitions ( -DAMD_INTERNAL_BUILD )
add_definitions ( -DLITTLEENDIAN_CPU=1 )
add_definitions ( -D HSA_DEPRECATED= )
## Set ext runtime module name and project name.
set ( IMAGE_NAME "hsa-ext-image" )
set ( IMAGE_COMPONENT "lib${IMAGE_NAME}" )
set ( IMAGE_TARGET "${IMAGE_NAME}${ONLY64STR}" )
project ( ${IMAGE_TARGET} )
## Get the package version. The defaults to 1.0.0.
get_version ( "1.0.0" )
set ( BUILD_VERSION_MAJOR ${VERSION_MAJOR} )
set ( BUILD_VERSION_MINOR ${VERSION_MINOR} )
set ( BUILD_VERSION_PATCH ${VERSION_PATCH} )
set ( LIB_VERSION_STRING "${BUILD_VERSION_MAJOR}.${BUILD_VERSION_MINOR}.${BUILD_VERSION_PATCH}" )
if ( DEFINED VERSION_BUILD )
set ( BUILD_VERSION_PATCH "${BUILD_VERSION_PATCH}-${VERSION_BUILD}" )
endif ()
set ( BUILD_VERSION_STRING "${BUILD_VERSION_MAJOR}.${BUILD_VERSION_MINOR}.${BUILD_VERSION_PATCH}" )
## Find the hsakmt library and include files
find_file ( HSAKMT_INC "libhsakmt/hsakmt.h" )
find_library ( HSAKMT_LIB libhsakmt.so )
get_filename_component ( HSAKMT_LIB_PATH ${HSAKMT_LIB} DIRECTORY )
get_filename_component ( HSAKMT_INC_PATH ${HSAKMT_INC} DIRECTORY )
include_directories ( ${HSAKMT_BUILD_INC_PATH} )
link_directories (${HSAKMT_BUILD_LIB_PATH})
## Find the hsa-runtime and include files
find_file ( HSA_INC "hsa/hsa.h" )
find_library ( HSA_LIB libhsa-runtime64.so )
get_filename_component ( HSA_LIB_PATH ${HSA_LIB} DIRECTORY )
get_filename_component ( HSA_INC_PATH ${HSA_INC} DIRECTORY )
include_directories ( ${HSA_BUILD_INC_PATH} )
link_directories (${HSA_BUILD_LIB_PATH})
## Find the libhsail files in the link
find_library ( HSAIL_LIB libhsail.a )
set ( LIBHSAIL -Wl,--no-whole-archive PRIVATE ${HSAIL_LIB} )
find_library ( HSAIL_AMD_LIB libhsail-amd.a )
set ( LIBHSAILAMD -Wl,--no-whole-archive PRIVATE ${HSAIL_AMD_LIB} )
## External dependencies and directories
if ( NOT DEFINED REG_INCLUDE )
@@ -122,9 +128,6 @@ include_directories ( ${HSA_CLOSED_SOURCE_DIR}/drivers/hsa/compiler/ext_finalize
include_directories ( ${HSA_CLOSED_SOURCE_DIR}/drivers/hsa/compiler/finalizer/HSAIL/hsail-tools/libHSAIL-AMD )
include_directories ( ${HSA_CLOSED_SOURCE_DIR}/drivers/hsa/compiler/finalizer/HSAIL/hsail-tools/libHSAIL )
include_directories ( ${HSA_CLOSED_SOURCE_DIR}/drivers/hsa/compiler/finalizer/HSAIL/hsail-tools/libHSAIL/build/${LIBHSAIL_BUILD_FOLDER} )
include_directories ( ${HSAKMT_BUILD_INC_PATH} )
link_directories (${HSAKMT_BUILD_LIB_PATH})
set ( IMAGE_SRCS ${EXT_SOURCE_DIR}/image/addrlib/addrinterface.cpp
${EXT_SOURCE_DIR}/image/addrlib/core/addrelemlib.cpp
@@ -149,24 +152,15 @@ set ( IMAGE_SRCS ${EXT_SOURCE_DIR}/image/addrlib/addrinterface.cpp
add_library ( ${IMAGE_TARGET} SHARED ${IMAGE_SRCS} )
## Set the VERSION and SOVERSION values
if ( DEFINED VERSION_STRING )
set_property ( TARGET ${IMAGE_TARGET} PROPERTY VERSION "${VERSION_STRING}" )
endif ()
set_property ( TARGET ${IMAGE_TARGET} PROPERTY SOVERSION "${VERSION_MAJOR}" )
set_property ( TARGET ${IMAGE_TARGET} PROPERTY VERSION "${LIB_VERSION_STRING}" )
set_property ( TARGET ${IMAGE_TARGET} PROPERTY SOVERSION "${BUILD_VERSION_MAJOR}" )
## Add the core runtime in the link
set ( LIBHSAIL -Wl,--no-whole-archive PRIVATE ${HSA_BUILD_LIB_PATH}/libhsail.a )
set ( LIBHSAILAMD -Wl,--no-whole-archive PRIVATE ${HSA_BUILD_LIB_PATH}/libhsail-amd.a )
## Add the core runtime in the link
link_directories(${HSA_BUILD_LIB_PATH})
target_link_libraries (
${IMAGE_TARGET}
PRIVATE ${LIBHSAIL}
PRIVATE ${LIBHSAILAMD}
PRIVATE ${HSA_BUILD_LIB_PATH}/libhsail.a
PRIVATE ${HSA_BUILD_LIB_PATH}/${CORE_RUNTIME_LIB}
PRIVATE hsa-runtime64
PRIVATE hsakmt
c dl pthread rt
)
@@ -177,4 +171,4 @@ if ( "${CMAKE_BUILD_TYPE}" STREQUAL Release )
endif ()
## Set install information
install ( TARGETS ${IMAGE_TARGET} LIBRARY DESTINATION lib COMPONENT ${IMAGE_COMPONENT})
install ( TARGETS ${IMAGE_TARGET} LIBRARY DESTINATION hsa/lib COMPONENT ${IMAGE_COMPONENT})
+47 -45
Просмотреть файл
@@ -1,34 +1,17 @@
cmake_minimum_required ( VERSION 2.8.0 )
## GCC 4.8 or higher compiler required.
if ( WIN32 )
MESSAGE ( FATAL_ERROR "Windows build is not supported." )
endif ()
## Process environment variables.
if ( "${HSA_BUILD_TARGET_BITS}" STREQUAL 32 )
set ( ONLY64STR "" )
set ( IS64BIT 0 )
else ()
set ( ONLY64STR "64" )
set ( IS64BIT 1 )
endif ()
## Build information
MESSAGE ( ------IS64BIT: ${IS64BIT} )
MESSAGE ( ------Compiler: ${CMAKE_CXX_COMPILER} )
MESSAGE ( ------Version: ${CMAKE_CXX_COMPILER_VERSION} )
set ( CMAKE_BUILD_TYPE ${BUILD_TYPE} )
cmake_minimum_required ( VERSION 3.5.0 )
## Verbose output.
set ( CMAKE_VERBOSE_MAKEFILE on )
## Used for packaging.
set ( CORE_RUNTIME_NAME "hsa-runtime" )
set ( CORE_RUNTIME_COMPONENT "lib${CORE_RUNTIME_NAME}" )
set ( CORE_RUNTIME_TARGET "${CORE_RUNTIME_NAME}${ONLY64STR}" )
set ( CORE_RUNTIME_LIB "lib${CORE_RUNTIME_NAME}${ONLY64STR}.so" )
## Set ext runtime module name and project name.
set ( TOOLS_NAME "hsa-runtime-tools" )
set ( TOOLS_COMPONENT "lib${TOOLS_NAME}" )
set ( TOOLS_TARGET "${TOOLS_NAME}64" )
project ( ${TOOLS_TARGET} )
## Include the cmake_modules utils.cmake
list ( APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../cmake_modules" )
include ( utils )
## Compiler preproc definitions.
add_definitions ( -D__linux__ )
@@ -40,11 +23,33 @@ add_definitions ( -DAMD_INTERNAL_BUILD )
add_definitions ( -DLITTLEENDIAN_CPU=1 )
add_definitions ( -D HSA_DEPRECATED= )
## Set ext runtime module name and project name.
set ( TOOLS_NAME "hsa-runtime-tools" )
set ( TOOLS_COMPONENT "lib${TOOLS_NAME}" )
set ( TOOLS_TARGET "${TOOLS_NAME}${ONLY64STR}" )
project ( ${TOOLS_TARGET} )
## Get the package version. The defaults to 1.0.0.
get_version ( "1.0.0" )
set ( BUILD_VERSION_MAJOR ${VERSION_MAJOR} )
set ( BUILD_VERSION_MINOR ${VERSION_MINOR} )
set ( BUILD_VERSION_PATCH ${VERSION_PATCH} )
set ( LIB_VERSION_STRING "${BUILD_VERSION_MAJOR}.${BUILD_VERSION_MINOR}.${BUILD_VERSION_PATCH}" )
if ( DEFINED VERSION_BUILD )
set ( BUILD_VERSION_PATCH "${BUILD_VERSION_PATCH}-${VERSION_BUILD}" )
endif ()
set ( BUILD_VERSION_STRING "${BUILD_VERSION_MAJOR}.${BUILD_VERSION_MINOR}.${BUILD_VERSION_PATCH}" )
## Find the hsakmt library and include files
find_file ( HSAKMT_INC "libhsakmt/hsakmt.h" )
find_library ( HSAKMT_LIB libhsakmt.so )
get_filename_component ( HSAKMT_LIB_PATH ${HSAKMT_LIB} DIRECTORY )
get_filename_component ( HSAKMT_INC_PATH ${HSAKMT_INC} DIRECTORY )
include_directories ( ${HSAKMT_BUILD_INC_PATH} )
link_directories (${HSAKMT_BUILD_LIB_PATH})
## Find the hsa-runtime and include files
find_file ( HSA_INC "hsa/hsa.h" )
find_library ( HSA_LIB libhsa-runtime64.so )
get_filename_component ( HSA_LIB_PATH ${HSA_LIB} DIRECTORY )
get_filename_component ( HSA_INC_PATH ${HSA_INC} DIRECTORY )
include_directories ( ${HSA_BUILD_INC_PATH} )
link_directories (${HSA_BUILD_LIB_PATH})
## External dependencies
if ( NOT DEFINED REG_INCLUDE )
@@ -216,29 +221,26 @@ add_library ( ${TOOLS_TARGET} SHARED ${CORE_SRC}
${INTERCEPT_SRC}
${PROFILER_SRC}
${THREAD_TRACE_SRC}
${SP3_R1000_SRC}
${SP3_R1000_SRC}
${UTIL_SRC} )
## Set the VERSION and SOVERSION values
set_property ( TARGET ${TOOLS_TARGET} PROPERTY VERSION "${LIB_VERSION_STRING}" )
set_property ( TARGET ${TOOLS_TARGET} PROPERTY SOVERSION "${BUILD_VERSION_MAJOR}" )
## Add the required link libraries
target_link_libraries (
target_link_libraries (
${TOOLS_TARGET}
PRIVATE ${HSA_BUILD_LIB_PATH}/${CORE_RUNTIME_LIB}
PRIVATE ${HSA_BUILD_LIB_PATH}/libhsakmt.so
PRIVATE hsa-runtime64
PRIVATE hsakmt
c dl pthread rt
)
## Set the VERSION and SOVERSION values
if ( DEFINED VERSION_STRING )
set_property ( TARGET ${TOOLS_TARGET} PROPERTY VERSION "${VERSION_STRING}" )
endif ()
set_property ( TARGET ${TOOLS_TARGET} PROPERTY SOVERSION "${VERSION_MAJOR}" )
## If the build is Release, strip the target library
if ( "${CMAKE_BUILD_TYPE}" STREQUAL Release )
add_custom_command ( TARGET ${TOOLS_TARGET} POST_BUILD COMMAND ${CMAKE_STRIP} *.so )
endif ()
## Set install information
install ( TARGETS ${TOOLS_TARGET} LIBRARY DESTINATION lib COMPONENT ${TOOLS_COMPONENT} )
install ( DIRECTORY ${TOOLS_SOURCE_DIR}/inc/ DESTINATION include COMPONENT tools-headers FILES_MATCHING PATTERN "*.h" )
install ( TARGETS ${TOOLS_TARGET} LIBRARY DESTINATION hsa/lib COMPONENT ${TOOLS_COMPONENT} )
install ( DIRECTORY ${TOOLS_SOURCE_DIR}/inc/ DESTINATION hsa/include/hsa FILES_MATCHING PATTERN "*.h" )
+45 -62
Просмотреть файл
@@ -3,7 +3,7 @@
## The University of Illinois/NCSA
## Open Source License (NCSA)
##
## Copyright (c) 2014-2016, Advanced Micro Devices, Inc. All rights reserved.
## Copyright (c) 2014-2017, Advanced Micro Devices, Inc. All rights reserved.
##
## Developed by:
##
@@ -40,15 +40,11 @@
##
################################################################################
cmake_minimum_required ( VERSION 2.8.0 )
## GCC 4.8 or higher compiler required.
if ( WIN32 )
MESSAGE ( FATAL_ERROR "Windows build is not supported." )
endif ()
cmake_minimum_required ( VERSION 3.5.0 )
## Verbose output.
set ( CMAKE_VERBOSE_MAKEFILE on )
## Set core runtime module name and project name.
set ( CORE_RUNTIME_NAME "hsa-runtime" )
set ( CORE_RUNTIME_COMPONENT "lib${CORE_RUNTIME_NAME}" )
@@ -56,6 +52,8 @@ set ( CORE_RUNTIME_TARGET "${CORE_RUNTIME_NAME}64" )
project( ${CORE_RUNTIME_TARGET} )
list ( APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules" )
include ( utils )
include ( hsa_common )
## Find LibElf
find_package(LibElf REQUIRED)
@@ -67,50 +65,39 @@ add_definitions ( -DHSA_EXPORT_FINALIZER=1 )
add_definitions ( -DHSA_EXPORT_IMAGES=1 )
add_definitions ( -D HSA_DEPRECATED= )
include ( utils )
include ( hsa_common )
## Get the package version. The defaults to 1.0.0.
get_version ( "1.0.0" )
## Parse the package version
if( NOT DEFINED VERSION_STRING )
set ( VERSION_STRING "1.1.0" )
endif()
set ( BUILD_VERSION_MAJOR ${VERSION_MAJOR} )
set ( BUILD_VERSION_MINOR ${VERSION_MINOR} )
set ( BUILD_VERSION_PATCH ${VERSION_PATCH} )
set ( LIB_VERSION_STRING "${BUILD_VERSION_MAJOR}.${BUILD_VERSION_MINOR}.${BUILD_VERSION_PATCH}" )
if ( DEFINED VERSION_BUILD )
set ( BUILD_VERSION_PATCH "${BUILD_VERSION_PATCH}-${VERSION_BUILD}" )
endif ()
set ( BUILD_VERSION_STRING "${BUILD_VERSION_MAJOR}.${BUILD_VERSION_MINOR}.${BUILD_VERSION_PATCH}" )
## Parse the package version
parse_version ( ${VERSION_STRING} )
## Find the hsakmt library and include files
find_file ( HSAKMT_INC "libhsakmt/hsakmt.h" )
find_library ( HSAKMT_LIB libhsakmt.so )
get_filename_component ( HSAKMT_LIB_PATH ${HSAKMT_LIB} DIRECTORY )
get_filename_component ( HSAKMT_INC_PATH ${HSAKMT_INC} DIRECTORY )
set ( PACKAGE_VERSION_MAJOR ${VERSION_MAJOR} )
set ( PACKAGE_VERSION_MINOR ${VERSION_MINOR} )
set ( PACKAGE_VERSION_PATCH ${VERSION_PATCH} )
## Parse the library version
if( NOT DEFINED RUNTIME_VERSION_STRING )
set ( RUNTIME_VERSION_STRING "1" )
endif()
parse_version ( ${RUNTIME_VERSION_STRING} )
set ( RUNTIME_VERSION_MAJOR ${VERSION_MAJOR} )
set ( RUNTIME_VERSION_MINOR ${VERSION_MINOR} )
set ( RUNTIME_VERSION_PATCH ${VERSION_PATCH} )
## Set include and link directories for libhsakmt
include_directories ( ${HSAKMT_INC_PATH} )
link_directories ( ${HSAKMT_LIB_PATH} )
## Set include directories for ROCr runtime
include_directories ( ${CMAKE_CURRENT_SOURCE_DIR} )
include_directories ( ${CMAKE_CURRENT_SOURCE_DIR}/inc )
include_directories ( ${CMAKE_CURRENT_SOURCE_DIR}/core/inc )
include_directories ( ${CMAKE_CURRENT_SOURCE_DIR}/libamdhsacode )
include_directories ( ${HSAKMT_BUILD_INC_PATH})
link_directories ( ${HSAKMT_BUILD_LIB_PATH} )
if ( DEFINED BUILDID )
add_definitions ( -DROCR_BUILD_ID=${BUILDID} )
else ( NOT DEFINED BUILDID )
## get date information based on UTC - full date
execute_process(COMMAND date --utc +%F WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} OUTPUT_VARIABLE ROCR_BUILD_TIME OUTPUT_STRIP_TRAILING_WHITESPACE )
## get commit information
execute_process(COMMAND git rev-parse --short HEAD WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} OUTPUT_VARIABLE ROCR_BUILD_COMMIT OUTPUT_STRIP_TRAILING_WHITESPACE )
## check dirty tree status
execute_process(COMMAND git diff --shortstat COMMAND wc -l WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} OUTPUT_VARIABLE ROCR_DIRTY_TREE OUTPUT_STRIP_TRAILING_WHITESPACE )
set ( BUILD_ID "${ROCR_BUILD_COMMIT}.${ROCR_BUILD_TIME}.${ROCR_DIRTY_TREE}" )
add_definitions ( -DROCR_BUILD_ID=${BUILD_ID} )
## ROCr build internal versioning
if ( DEFINED VERSION_BUILD )
add_definitions ( -DROCR_BUILD_ID=${BUILD_VERSION_STRING} )
else ()
add_definitions ( -DROCR_BUILD_ID="${BUILD_VERSION_STRING}-unknown" )
endif ()
## ------------------------- Linux Compiler and Linker options -------------------------
@@ -159,18 +146,14 @@ set ( SRCS "core/util/lnx/os_linux.cpp"
"libamdhsacode/amd_hsa_code_util.cpp"
"libamdhsacode/amd_hsa_locks.cpp"
"libamdhsacode/amd_options.cpp"
"libamdhsacode/amd_hsa_code.cpp"
"libamdhsacode/amd_hsa_code.cpp"
)
add_library( ${CORE_RUNTIME_TARGET} SHARED ${SRCS} )
link_directories ( ${HSAKMT_BUILD_LIB_PATH} )
## Set the VERSION and SOVERSION values
if ( DEFINED VERSION_STRING )
set_property ( TARGET ${CORE_RUNTIME_TARGET} PROPERTY VERSION "${RUNTIME_VERSION_STRING}" )
endif ()
set_property ( TARGET ${CORE_RUNTIME_TARGET} PROPERTY SOVERSION "${RUNTIME_VERSION_MAJOR}" )
set_property ( TARGET ${CORE_RUNTIME_TARGET} PROPERTY VERSION "${LIB_VERSION_STRING}" )
set_property ( TARGET ${CORE_RUNTIME_TARGET} PROPERTY SOVERSION "${BUILD_VERSION_MAJOR}" )
target_link_libraries ( ${CORE_RUNTIME_TARGET}
PRIVATE hsakmt
@@ -182,33 +165,33 @@ if ( "${CMAKE_BUILD_TYPE}" STREQUAL Release )
add_custom_command ( TARGET ${CORE_RUNTIME_TARGET} POST_BUILD COMMAND ${CMAKE_STRIP} *.so )
endif ()
## Create symlinks for packaging and install
add_custom_target ( ${CORE_RUNTIME_COMPONENT} ALL WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${CMAKE_COMMAND} -E create_symlink ../hsa/include/hsa hsa-link )
add_custom_target ( ${CORE_RUNTIME_COMPONENT}.so-link ALL WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} COMMAND ${CMAKE_COMMAND} -E create_symlink ../hsa/lib/${CORE_RUNTIME_COMPONENT}.so ${CORE_RUNTIME_COMPONENT}.so-link )
## Set install information
install ( TARGETS ${CORE_RUNTIME_TARGET} LIBRARY DESTINATION lib COMPONENT ${CORE_RUNTIME_COMPONENT} )
install ( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/inc/ DESTINATION include/hsa )
install ( TARGETS ${CORE_RUNTIME_TARGET} LIBRARY DESTINATION hsa/lib COMPONENT ${CORE_RUNTIME_COMPONENT} )
install ( DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/inc/ DESTINATION hsa/include/hsa )
install ( FILES ${CMAKE_CURRENT_BINARY_DIR}/hsa-link DESTINATION include PERMISSIONS OWNER_WRITE OWNER_READ RENAME hsa )
install ( FILES ${CMAKE_CURRENT_BINARY_DIR}/${CORE_RUNTIME_COMPONENT}.so-link DESTINATION lib PERMISSIONS OWNER_WRITE OWNER_READ RENAME ${CORE_RUNTIME_COMPONENT}.so )
## Packaging directives
set ( CPACK_PACKAGE_NAME "hsa-rocr-dev" )
set ( CPACK_PACKAGE_VENDOR "AMD" )
set ( CPACK_PACKAGE_VERSION_MAJOR ${PACKAGE_VERSION_MAJOR} )
set ( CPACK_PACKAGE_VERSION_MINOR ${PACKAGE_VERSION_MINOR} )
set ( CPACK_PACKAGE_VERSION_PATCH ${PACKAGE_VERSION_PATCH} )
set ( CPACK_PACKAGE_VERSION_MAJOR ${BUILD_VERSION_MAJOR} )
set ( CPACK_PACKAGE_VERSION_MINOR ${BUILD_VERSION_MINOR} )
set ( CPACK_PACKAGE_VERSION_PATCH ${BUILD_VERSION_PATCH} )
set ( CPACK_PACKAGE_CONTACT "Advanced Micro Devices Inc." )
set ( CPACK_PACKAGE_DESCRIPTION_SUMMARY "AMD Heterogeneous System Architecture HSA - Linux HSA Runtime for Boltzmann (ROCm) platforms" )
set ( CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.md" )
## Set dependency strings
set ( HSAKMT_ROCT_DEV_DEPS "" )
if ( DEFINED HSAKMT_VERSION_STRING )
set ( HSAKMT_ROCT_DEV_DEPS " (=${HSAKMT_VERSION_STRING})" )
endif ()
# Debian package specific variables
set ( CPACK_DEBIAN_PACKAGE_DEPENDS "hsakmt-roct-dev${HSAKMT_ROCT_DEV_DEPS}" )
set ( CPACK_DEBIAN_PACKAGE_DEPENDS "hsakmt-roct-dev" )
set ( CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://github.com/RadeonOpenCompute/ROCR-Runtime" )
set ( CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_SOURCE_DIR}/DEBIAN/postinst;${CMAKE_CURRENT_SOURCE_DIR}/DEBIAN/prerm" )
## RPM package specific variables
set ( CPACK_RPM_PACKAGE_DEPENDS "hsakmt-roct-dev${HSAKMT_ROCT_DEV_DEPS}" )
set ( CPACK_RPM_PACKAGE_DEPENDS "hsakmt-roct-dev" )
set ( CPACK_RPM_PRE_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/RPM/rpm_post" )
set ( CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/RPM/rpm_postun" )
+63 -18
Просмотреть файл
@@ -3,7 +3,7 @@
## The University of Illinois/NCSA
## Open Source License (NCSA)
##
## Copyright (c) 2014-2016, Advanced Micro Devices, Inc. All rights reserved.
## Copyright (c) 2014-2017, Advanced Micro Devices, Inc. All rights reserved.
##
## Developed by:
##
@@ -41,31 +41,76 @@
################################################################################
## Parses the VERSION_STRING variable and places
## the first, second and third number values in
## the first, second and third number values in
## the major, minor and patch variables.
function(parse_version VERSION_STRING)
function( parse_version VERSION_STRING )
string(REGEX MATCHALL "[0123456789]+" VERSIONS ${VERSION_STRING})
list(LENGTH VERSIONS VERSION_COUNT)
string ( FIND ${VERSION_STRING} "-" STRING_INDEX )
if (${VERSION_COUNT} GREATER 0)
list(GET VERSIONS 0 MAJOR)
set(VERSION_MAJOR ${MAJOR} PARENT_SCOPE)
set(TEMP_VERSION_STRING "${MAJOR}")
if ( ${STRING_INDEX} GREATER -1 )
math ( EXPR STRING_INDEX "${STRING_INDEX} + 1" )
string ( SUBSTRING ${VERSION_STRING} ${STRING_INDEX} -1 VERSION_BUILD )
endif ()
if (${VERSION_COUNT} GREATER 1)
list(GET VERSIONS 1 MINOR)
set(VERSION_MINOR ${MINOR} PARENT_SCOPE)
set(TEMP_VERSION_STRING "${TEMP_VERSION_STRING}.${MINOR}")
string ( REGEX MATCHALL "[0123456789]+" VERSIONS ${VERSION_STRING} )
list (LENGTH VERSIONS VERSION_COUNT )
if ( ${VERSION_COUNT} GREATER 0)
list ( GET VERSIONS 0 MAJOR )
set ( VERSION_MAJOR ${MAJOR} PARENT_SCOPE )
set ( TEMP_VERSION_STRING "${MAJOR}" )
endif ()
if (${VERSION_COUNT} GREATER 2)
list(GET VERSIONS 2 PATCH)
set(VERSION_PATCH ${PATCH} PARENT_SCOPE)
set(TEMP_VERSION_STRING "${TEMP_VERSION_STRING}.${PATCH}")
if ( ${VERSION_COUNT} GREATER 1 )
list ( GET VERSIONS 1 MINOR )
set ( VERSION_MINOR ${MINOR} PARENT_SCOPE )
set ( TEMP_VERSION_STRING "${TEMP_VERSION_STRING}.${MINOR}" )
endif ()
set(VERSION_STRING "${TEMP_VERSION_STRING}" PARENT_SCOPE)
if ( ${VERSION_COUNT} GREATER 2 )
list ( GET VERSIONS 2 PATCH )
set ( VERSION_PATCH ${PATCH} PARENT_SCOPE )
set ( TEMP_VERSION_STRING "${TEMP_VERSION_STRING}.${PATCH}" )
endif ()
if (DEFINED VERSION_BUILD )
set ( VERSION_BUILD "${VERSION_BUILD}" PARENT_SCOPE )
endif ()
set ( VERSION_STRING "${TEMP_VERSION_STRING}" PARENT_SCOPE )
endfunction ()
## Gets the current version of the repository
## using versioning tags and git describe.
## Passes back a packaging version string
## and a library version string.
function ( get_version DEFAULT_VERSION_STRING )
parse_version ( ${DEFAULT_VERSION_STRING} )
find_program ( GIT NAMES git )
if ( GIT )
execute_process ( COMMAND git describe --dirty --long --match [0-9]*
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_VARIABLE GIT_TAG_STRING
OUTPUT_STRIP_TRAILING_WHITESPACE
RESULT_VARIABLE RESULT )
if ( ${RESULT} EQUAL 0 )
parse_version ( ${GIT_TAG_STRING} )
endif ()
endif ()
set( VERSION_STRING "${VERSION_STRING}" PARENT_SCOPE )
set( VERSION_MAJOR "${VERSION_MAJOR}" PARENT_SCOPE )
set( VERSION_MINOR "${VERSION_MINOR}" PARENT_SCOPE )
set( VERSION_PATCH "${VERSION_PATCH}" PARENT_SCOPE )
set( VERSION_BUILD "${VERSION_BUILD}" PARENT_SCOPE )
endfunction()
+56 -62
Просмотреть файл
@@ -3,7 +3,7 @@
## The University of Illinois/NCSA
## Open Source License (NCSA)
##
## Copyright (c) 2014-2016, Advanced Micro Devices, Inc. All rights reserved.
## Copyright (c) 2014-2017, Advanced Micro Devices, Inc. All rights reserved.
##
## Developed by:
##
@@ -40,42 +40,36 @@
##
################################################################################
cmake_minimum_required(VERSION 3.5.1)
cmake_minimum_required ( VERSION 3.5.0 )
## Verbose output.
set ( CMAKE_VERBOSE_MAKEFILE on )
## Set the name and project name.
set ( PROJECT_STRING hsa-ext-rocr-dev )
project ( ${PROJECT_STRING} )
project( ${PROJECT_STRING} )
list(APPEND CMAKE_MODULE_PATH "${HSA_OPENSOURCE_ROOT}/cmake_modules")
list ( APPEND CMAKE_MODULE_PATH "${HSA_OPENSOURCE_ROOT}/cmake_modules" )
include ( utils )
if(NOT DEFINED VERSION_STRING)
set (VERSION_STRING "1.0.0")
endif()
## Get the package version. The defaults to 1.0.0.
get_version ( "1.0.0" )
parse_version(${VERSION_STRING})
set ( PACKAGE_VERSION_MAJOR ${VERSION_MAJOR} )
set ( PACKAGE_VERSION_MINOR ${VERSION_MINOR} )
set ( PACKAGE_VERSION_PATCH ${VERSION_PATCH} )
if(NOT DEFINED RUNTIME_VERSION_STRING)
set (RUNTIME_VERSION_STRING "1.0.0")
set ( BUILD_VERSION_MAJOR ${VERSION_MAJOR} )
set ( BUILD_VERSION_MINOR ${VERSION_MINOR} )
set ( BUILD_VERSION_PATCH ${VERSION_PATCH} )
set ( LIB_VERSION_STRING "${BUILD_VERSION_MAJOR}.${BUILD_VERSION_MINOR}.${BUILD_VERSION_PATCH}" )
if ( DEFINED VERSION_BUILD )
set ( BUILD_VERSION_PATCH "${BUILD_VERSION_PATCH}-${VERSION_BUILD}" )
endif ()
parse_version(${RUNTIME_VERSION_STRING})
set ( RUNTIME_VERSION_MAJOR ${VERSION_MAJOR} )
set ( RUNTIME_VERSION_MINOR ${VERSION_MINOR} )
set ( RUNTIME_VERSION_PATCH ${VERSION_PATCH} )
set ( BUILD_VERSION_STRING "${BUILD_VERSION_MAJOR}.${BUILD_VERSION_MINOR}.${BUILD_VERSION_PATCH}" )
set ( PACKAGE_DIRECTORIES
"bin"
"hsa/bin"
"bin"
"hsa/bin"
"hsa/lib")
add_custom_command(OUTPUT ${PACKAGE_DIRECTORIES} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
add_custom_command ( OUTPUT ${PACKAGE_DIRECTORIES} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMAND mkdir -p bin
COMMAND mkdir -p hsa/lib
COMMAND mkdir -p hsa/bin )
@@ -88,55 +82,55 @@ set ( IMAGE_NAME "libhsa-ext-image64" )
set ( AMDHSACOD_NAME "amdhsacod" )
set ( AMDHSAFIN_NAME "amdhsafin" )
set ( FINALIZER_LIBRARY_SOURCE "${OUT_DIR}/lib/${FINALIZER_NAME}.so.${RUNTIME_VERSION_STRING}" )
set ( TOOLS_LIBRARY_SOURCE "${OUT_DIR}/lib/${TOOLS_NAME}.so.${RUNTIME_VERSION_STRING}" )
set ( IMAGE_LIBRARY_SOURCE "${OUT_DIR}/lib/${IMAGE_NAME}.so.${RUNTIME_VERSION_STRING}" )
set ( FINALIZER_LIBRARY_SOURCE "${OUT_DIR}/lib/${FINALIZER_NAME}.so.${LIB_VERSION_STRING}" )
set ( TOOLS_LIBRARY_SOURCE "${OUT_DIR}/lib/${TOOLS_NAME}.so.${LIB_VERSION_STRING}" )
set ( IMAGE_LIBRARY_SOURCE "${OUT_DIR}/lib/${IMAGE_NAME}.so.${LIB_VERSION_STRING}" )
set ( AMDHSACOD_SOURCE "${OUT_DIR}/bin/${AMDHSACOD_NAME}" )
set ( AMDHSAFIN_SOURCE "${OUT_DIR}/bin/${AMDHSAFIN_NAME}" )
set ( FINALIZER_LIBRARY_TARGET "${CMAKE_CURRENT_BINARY_DIR}/hsa/lib/${FINALIZER_NAME}.so.${RUNTIME_VERSION_STRING}" )
set ( TOOLS_LIBRARY_TARGET "${CMAKE_CURRENT_BINARY_DIR}/hsa/lib/${TOOLS_NAME}.so.${RUNTIME_VERSION_STRING}" )
set ( IMAGE_LIBRARY_TARGET "${CMAKE_CURRENT_BINARY_DIR}/hsa/lib/${IMAGE_NAME}.so.${RUNTIME_VERSION_STRING}" )
set ( FINALIZER_LIBRARY_TARGET "${CMAKE_CURRENT_BINARY_DIR}/hsa/lib/${FINALIZER_NAME}.so.${LIB_VERSION_STRING}" )
set ( TOOLS_LIBRARY_TARGET "${CMAKE_CURRENT_BINARY_DIR}/hsa/lib/${TOOLS_NAME}.so.${LIB_VERSION_STRING}" )
set ( IMAGE_LIBRARY_TARGET "${CMAKE_CURRENT_BINARY_DIR}/hsa/lib/${IMAGE_NAME}.so.${LIB_VERSION_STRING}" )
set ( AMDHSACOD_TARGET "${CMAKE_CURRENT_BINARY_DIR}/hsa/bin/${AMDHSACOD_NAME}" )
set ( AMDHSAFIN_TARGET "${CMAKE_CURRENT_BINARY_DIR}/hsa/bin/${AMDHSAFIN_NAME}" )
set ( FINALIZER_LIBRARY_SONAME "${CMAKE_CURRENT_BINARY_DIR}/hsa/lib/${FINALIZER_NAME}.so.${RUNTIME_VERSION_MAJOR}" )
set ( TOOLS_LIBRARY_SONAME "${CMAKE_CURRENT_BINARY_DIR}/hsa/lib/${TOOLS_NAME}.so.${RUNTIME_VERSION_MAJOR}" )
set ( IMAGE_LIBRARY_SONAME "${CMAKE_CURRENT_BINARY_DIR}/hsa/lib/${IMAGE_NAME}.so.${RUNTIME_VERSION_MAJOR}" )
set ( FINALIZER_LIBRARY_SONAME "${CMAKE_CURRENT_BINARY_DIR}/hsa/lib/${FINALIZER_NAME}.so.${BUILD_VERSION_MAJOR}" )
set ( TOOLS_LIBRARY_SONAME "${CMAKE_CURRENT_BINARY_DIR}/hsa/lib/${TOOLS_NAME}.so.${BUILD_VERSION_MAJOR}" )
set ( IMAGE_LIBRARY_SONAME "${CMAKE_CURRENT_BINARY_DIR}/hsa/lib/${IMAGE_NAME}.so.${BUILD_VERSION_MAJOR}" )
set ( AMDHSACOD_LINK "${CMAKE_CURRENT_BINARY_DIR}/bin/${AMDHSACOD_NAME}" )
set ( AMDHSAFIN_LINK "${CMAKE_CURRENT_BINARY_DIR}/bin/${AMDHSAFIN_NAME}" )
add_custom_command(OUTPUT ${FINALIZER_LIBRARY_TARGET} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} -E copy ${FINALIZER_LIBRARY_SOURCE} ${FINALIZER_LIBRARY_TARGET})
add_custom_command ( OUTPUT ${FINALIZER_LIBRARY_TARGET} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} -E copy ${FINALIZER_LIBRARY_SOURCE} ${FINALIZER_LIBRARY_TARGET} )
add_custom_command(OUTPUT ${TOOLS_LIBRARY_TARGET} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} -E copy ${TOOLS_LIBRARY_SOURCE} ${TOOLS_LIBRARY_TARGET})
add_custom_command ( OUTPUT ${TOOLS_LIBRARY_TARGET} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} -E copy ${TOOLS_LIBRARY_SOURCE} ${TOOLS_LIBRARY_TARGET} )
add_custom_command(OUTPUT ${IMAGE_LIBRARY_TARGET} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} -E copy ${IMAGE_LIBRARY_SOURCE} ${IMAGE_LIBRARY_TARGET})
add_custom_command ( OUTPUT ${IMAGE_LIBRARY_TARGET} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} -E copy ${IMAGE_LIBRARY_SOURCE} ${IMAGE_LIBRARY_TARGET} )
add_custom_command(OUTPUT ${AMDHSACOD_TARGET} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} -E copy ${AMDHSACOD_SOURCE} ${AMDHSACOD_TARGET})
add_custom_command ( OUTPUT ${AMDHSACOD_TARGET} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} -E copy ${AMDHSACOD_SOURCE} ${AMDHSACOD_TARGET} )
add_custom_command(OUTPUT ${AMDHSAFIN_TARGET} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} -E copy ${AMDHSAFIN_SOURCE} ${AMDHSAFIN_TARGET})
add_custom_command ( OUTPUT ${AMDHSAFIN_TARGET} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_COMMAND} -E copy ${AMDHSAFIN_SOURCE} ${AMDHSAFIN_TARGET} )
add_custom_command(OUTPUT ${FINALIZER_LIBRARY_SONAME} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/hsa/lib
COMMAND ${CMAKE_COMMAND} -E create_symlink ${FINALIZER_NAME}.so.${VERSION_STRING} ${FINALIZER_NAME}.so.${RUNTIME_VERSION_MAJOR} )
add_custom_command ( OUTPUT ${FINALIZER_LIBRARY_SONAME} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/hsa/lib
COMMAND ${CMAKE_COMMAND} -E create_symlink ${FINALIZER_NAME}.so.${VERSION_STRING} ${FINALIZER_NAME}.so.${RUNTIME_VERSION_MAJOR} )
add_custom_command(OUTPUT ${TOOLS_LIBRARY_SONAME} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/hsa/lib
COMMAND ${CMAKE_COMMAND} -E create_symlink ${TOOLS_NAME}.so.${VERSION_STRING} ${TOOLS_NAME}.so.${RUNTIME_VERSION_MAJOR} )
add_custom_command ( OUTPUT ${TOOLS_LIBRARY_SONAME} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/hsa/lib
COMMAND ${CMAKE_COMMAND} -E create_symlink ${TOOLS_NAME}.so.${VERSION_STRING} ${TOOLS_NAME}.so.${RUNTIME_VERSION_MAJOR} )
add_custom_command(OUTPUT ${IMAGE_LIBRARY_SONAME} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/hsa/lib
COMMAND ${CMAKE_COMMAND} -E create_symlink ${IMAGE_NAME}.so.${VERSION_STRING} ${IMAGE_NAME}.so.${RUNTIME_VERSION_MAJOR} )
add_custom_command ( OUTPUT ${IMAGE_LIBRARY_SONAME} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/hsa/lib
COMMAND ${CMAKE_COMMAND} -E create_symlink ${IMAGE_NAME}.so.${VERSION_STRING} ${IMAGE_NAME}.so.${RUNTIME_VERSION_MAJOR} )
add_custom_command(OUTPUT ${AMDHSACOD_LINK} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin
COMMAND ${CMAKE_COMMAND} -E create_symlink ../hsa/bin/${AMDHSACOD_NAME} ${AMDHSACOD_NAME} )
add_custom_command ( OUTPUT ${AMDHSACOD_LINK} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin
COMMAND ${CMAKE_COMMAND} -E create_symlink ../hsa/bin/${AMDHSACOD_NAME} ${AMDHSACOD_NAME} )
add_custom_command(OUTPUT ${AMDHSAFIN_LINK} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin
COMMAND ${CMAKE_COMMAND} -E create_symlink ../hsa/bin/${AMDHSAFIN_NAME} ${AMDHSAFIN_NAME} )
add_custom_command ( OUTPUT ${AMDHSAFIN_LINK} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin
COMMAND ${CMAKE_COMMAND} -E create_symlink ../hsa/bin/${AMDHSAFIN_NAME} ${AMDHSAFIN_NAME} )
add_custom_target (copy_targets ALL DEPENDS create_dirs
add_custom_target ( copy_targets ALL DEPENDS create_dirs
${FINALIZER_LIBRARY_TARGET}
${TOOLS_LIBRARY_TARGET}
${IMAGE_LIBRARY_TARGET}
@@ -149,14 +143,14 @@ add_custom_target (copy_targets ALL DEPENDS create_dirs
${AMDHSAFIN_LINK}
)
install (DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin/ DESTINATION bin USE_SOURCE_PERMISSIONS )
install (DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/hsa/ DESTINATION hsa USE_SOURCE_PERMISSIONS )
install ( DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin/ DESTINATION bin USE_SOURCE_PERMISSIONS )
install ( DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/hsa/ DESTINATION hsa USE_SOURCE_PERMISSIONS )
set ( CPACK_PACKAGE_NAME ${PROJECT_NAME} )
set ( CPACK_PACKAGE_VENDOR "AMD" )
set ( CPACK_PACKAGE_VERSION_MAJOR ${PACKAGE_VERSION_MAJOR} )
set ( CPACK_PACKAGE_VERSION_MINOR ${PACKAGE_VERSION_MINOR} )
set ( CPACK_PACKAGE_VERSION_PATCH ${PACKAGE_VERSION_PATCH} )
set ( CPACK_PACKAGE_VERSION_MAJOR ${BUILD_VERSION_MAJOR} )
set ( CPACK_PACKAGE_VERSION_MINOR ${BUILD_VERSION_MINOR} )
set ( CPACK_PACKAGE_VERSION_PATCH ${BUILD_VERSION_PATCH} )
set ( CPACK_PACKAGE_CONTACT "James Edwards (JamesAdrian.Edwards@amd.com)" )
set ( CPACK_PACKAGE_DESCRIPTION_SUMMARY "AMD Heterogeneous System Architecture HSA - Linux HSA Runtime extensions for ROCm platforms" )
set ( CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/description" )
+25 -41
Просмотреть файл
@@ -3,7 +3,7 @@
## The University of Illinois/NCSA
## Open Source License (NCSA)
##
## Copyright (c) 2014-2016, Advanced Micro Devices, Inc. All rights reserved.
## Copyright (c) 2014-2017, Advanced Micro Devices, Inc. All rights reserved.
##
## Developed by:
##
@@ -40,51 +40,35 @@
##
################################################################################
cmake_minimum_required(VERSION 3.5.1)
cmake_minimum_required ( VERSION 3.5.0 )
## Verbose output.
set ( CMAKE_VERBOSE_MAKEFILE on )
## Set the name and project name.
set ( PROJECT_STRING hsa-rocr-dev )
project( ${PROJECT_STRING} )
list(APPEND CMAKE_MODULE_PATH "${HSA_OPENSOURCE_ROOT}/cmake_modules")
list ( APPEND CMAKE_MODULE_PATH "${HSA_OPENSOURCE_ROOT}/cmake_modules" )
include ( utils )
if(NOT DEFINED VERSION_STRING)
set (VERSION_STRING "1.0.0")
endif()
## Get the package version. The defaults to 1.0.0.
get_version ( "1.0.0" )
parse_version(${VERSION_STRING})
set ( PROJECT_VERSION_MAJOR ${VERSION_MAJOR} )
set ( PROJECT_VERSION_MINOR ${VERSION_MINOR} )
set ( PROJECT_VERSION_PATCH ${VERSION_PATCH} )
if(NOT DEFINED RUNTIME_VERSION_STRING)
set (RUNTIME_VERSION_STRING "1.0.0")
set ( BUILD_VERSION_MAJOR ${VERSION_MAJOR} )
set ( BUILD_VERSION_MINOR ${VERSION_MINOR} )
set ( BUILD_VERSION_PATCH ${VERSION_PATCH} )
set ( LIB_VERSION_STRING "${BUILD_VERSION_MAJOR}.${BUILD_VERSION_MINOR}.${BUILD_VERSION_PATCH}" )
if ( DEFINED VERSION_BUILD )
set ( BUILD_VERSION_PATCH "${BUILD_VERSION_PATCH}-${VERSION_BUILD}" )
endif ()
set ( BUILD_VERSION_STRING "${BUILD_VERSION_MAJOR}.${BUILD_VERSION_MINOR}.${BUILD_VERSION_PATCH}" )
parse_version(${RUNTIME_VERSION_STRING})
set ( RUNTIME_VERSION_MAJOR ${VERSION_MAJOR} )
set ( RUNTIME_VERSION_MINOR ${VERSION_MINOR} )
set ( RUNTIME_VERSION_PATCH ${VERSION_PATCH} )
if(NOT DEFINED HSAKMT_VERSION_STRING)
set (HSAKMT_VERSION_STRING "2.0.1")
endif ()
parse_version(${HSAKMT_VERSION_STRING})
set ( HSAKMT_VERSION_MAJOR ${VERSION_MAJOR} )
set ( HSAKMT_VERSION_MINOR ${VERSION_MINOR} )
set ( HSAKMT_VERSION_PATCH ${VERSION_PATCH} )
## Define the runtime components
set ( RUNTIME_NAME "libhsa-runtime64" )
set ( RUNTIME_LIBRARY_SOURCE "${OUT_DIR}/lib/${RUNTIME_NAME}.so.${RUNTIME_VERSION_STRING}" )
set ( RUNTIME_LIBRARY_TARGET "${CMAKE_CURRENT_BINARY_DIR}/hsa/lib/${RUNTIME_NAME}.so.${RUNTIME_VERSION_STRING}" )
set ( RUNTIME_LIBRARY_SONAME "${CMAKE_CURRENT_BINARY_DIR}/hsa/lib/${RUNTIME_NAME}.so.${RUNTIME_VERSION_MAJOR}" )
set ( RUNTIME_LIBRARY_SOURCE "${OUT_DIR}/lib/${RUNTIME_NAME}.so.${LIB_VERSION_STRING}" )
set ( RUNTIME_LIBRARY_TARGET "${CMAKE_CURRENT_BINARY_DIR}/hsa/lib/${RUNTIME_NAME}.so.${LIB_VERSION_STRING}" )
set ( RUNTIME_LIBRARY_SONAME "${CMAKE_CURRENT_BINARY_DIR}/hsa/lib/${RUNTIME_NAME}.so.${BUILD_VERSION_MAJOR}" )
set ( RUNTIME_LIBRARY_LINKNAME "${CMAKE_CURRENT_BINARY_DIR}/lib/${RUNTIME_NAME}.so" )
set ( PACKAGE_DIRECTORIES
@@ -182,21 +166,21 @@ install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/README.md DESTINATION hsa )
## Packaging directives
set ( CPACK_PACKAGE_NAME ${PROJECT_NAME} )
set ( CPACK_PACKAGE_VENDOR "AMD" )
set ( CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR} )
set ( CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR} )
set ( CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH} )
set ( CPACK_PACKAGE_VERSION_MAJOR ${BUILD_VERSION_MAJOR} )
set ( CPACK_PACKAGE_VERSION_MINOR ${BUILD_VERSION_MINOR} )
set ( CPACK_PACKAGE_VERSION_PATCH ${BUILD_VERSION_PATCH} )
set ( CPACK_PACKAGE_CONTACT "James Edwards (JamesAdrian.Edwards@amd.com)" )
set ( CPACK_PACKAGE_DESCRIPTION_SUMMARY "AMD Heterogeneous System Architecture HSA - Linux HSA Runtime for ROCm platforms" )
set ( CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/description" )
set ( CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/copyright" )
# Debian package specific variables
set ( CPACK_DEBIAN_PACKAGE_DEPENDS "hsa-ext-rocr-dev (=${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}), hsakmt-roct-dev (=${HSAKMT_VERSION_STRING})" )
set ( CPACK_DEBIAN_PACKAGE_DEPENDS "hsa-ext-rocr-dev (=${BUILD_VERSION_MAJOR}.${BUILD_VERSION_MINOR}.${BUILD_VERSION_PATCH}) , hsakmt-roct-dev" )
set ( CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://github.com/RadeonOpenCompute/ROCR-Runtime" )
set ( CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA "${CMAKE_CURRENT_SOURCE_DIR}/postinst;${CMAKE_CURRENT_SOURCE_DIR}/prerm" )
# RPM package specific variables
set ( CPACK_RPM_PACKAGE_DEPENDS "hsa-ext-rocr-dev (=${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH}), hsakmt-roct-dev (=${HSAKMT_VERSION_STRING})" )
set ( CPACK_RPM_PACKAGE_DEPENDS "hsa-ext-rocr-dev (=${BUILD_VERSION_MAJOR}.${BUILD_VERSION_MINOR}.${BUILD_VERSION_PATCH}), hsakmt-roct-dev" )
set ( CPACK_RPM_PRE_INSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/rpm_post" )
set ( CPACK_RPM_POST_UNINSTALL_SCRIPT_FILE "${CMAKE_CURRENT_SOURCE_DIR}/rpm_postun" )