Fix CMakeLists.txt conventions

Fix indentation, quoting, and white spaces.

Change-Id: I5e5e95b961e83e5957bdd137ef9893615396bb53
This commit is contained in:
Laurent Morichetti
2022-05-20 09:12:22 -07:00
rodzic c66fc25741
commit 13fe79ab09
6 zmienionych plików z 168 dodań i 218 usunięć
+22 -23
Wyświetl plik
@@ -20,14 +20,17 @@
## IN THE SOFTWARE.
################################################################################
cmake_minimum_required(VERSION 3.16.0)
cmake_minimum_required(VERSION 3.18.0)
project(ROCTRACER VERSION 4.1.0)
## Set module name
string(TOLOWER "${CMAKE_PROJECT_NAME}" ROCTRACER_NAME)
## Build is not supported on Windows plaform
if(WIN32)
message(FATAL_ERROR "Windows build is not supported.")
endif ()
endif()
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
@@ -43,15 +46,17 @@ if(NOT DEFINED LIBRARY_TYPE)
set(LIBRARY_TYPE SHARED)
endif()
## Set module name
string(TOLOWER "${CMAKE_PROJECT_NAME}" ROCTRACER_NAME)
## FIXME!!! should not depend on another project's internal files
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory inc/rocprofiler)
execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${PROJECT_SOURCE_DIR}/../rocprofiler/inc/rocprofiler.h inc/rocprofiler/rocprofiler.h)
execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink ${PROJECT_SOURCE_DIR}/../rocprofiler/src/core/activity.h inc/rocprofiler/activity.h)
## Build libraries
include(src/CMakeLists.txt)
add_subdirectory(src)
## Build tests
if(${LIBRARY_TYPE} STREQUAL SHARED)
add_subdirectory(test ${PROJECT_BINARY_DIR}/test)
add_subdirectory(test)
endif()
if(${LIBRARY_TYPE} STREQUAL SHARED)
@@ -61,16 +66,11 @@ if(DEFINED CPACK_PACKAGING_INSTALL_PREFIX)
get_filename_component(DEST_NAME ${CPACK_PACKAGING_INSTALL_PREFIX} NAME)
get_filename_component(DEST_DIR ${CPACK_PACKAGING_INSTALL_PREFIX} DIRECTORY)
set(CPACK_PACKAGING_INSTALL_PREFIX ${DEST_DIR})
endif ()
endif()
message("-----------Dest-name: ${DEST_NAME}")
message("------Install-prefix: ${CMAKE_INSTALL_PREFIX}")
message("-----------CPACK-dir: ${CPACK_PACKAGING_INSTALL_PREFIX}")
option(FILE_REORG_BACKWARD_COMPATIBILITY "Enable File Reorg with backward compatibility" ON)
if(FILE_REORG_BACKWARD_COMPATIBILITY)
include(roctracer-backward-compat.cmake)
endif()
## Packaging directives
set(CPACK_GENERATOR "DEB" "RPM" "TGZ" CACHE STRING "CPACK GENERATOR DEB;RPM")
set(ENABLE_LDCONFIG ON CACHE BOOL "Set library links and caches using ldconfig.")
@@ -89,8 +89,8 @@ if(DEFINED ENV{ROCM_LIBPATCH_VERSION})
message("Using CPACK_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION}")
endif()
# Install license file
install(FILES ${CPACK_RESOURCE_FILE_LICENSE} DESTINATION share/doc/${CPACK_PACKAGE_NAME})
## Install license file
install(FILES ${CPACK_RESOURCE_FILE_LICENSE} DESTINATION share/doc/${ROCTRACER_NAME})
## Debian package specific variables
if(DEFINED ENV{CPACK_DEBIAN_PACKAGE_RELEASE})
@@ -98,8 +98,8 @@ if(DEFINED ENV{CPACK_DEBIAN_PACKAGE_RELEASE})
else()
set(CPACK_DEBIAN_PACKAGE_RELEASE "local")
endif()
message ("Using CPACK_DEBIAN_PACKAGE_RELEASE ${CPACK_DEBIAN_PACKAGE_RELEASE}")
set (CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT")
message("Using CPACK_DEBIAN_PACKAGE_RELEASE ${CPACK_DEBIAN_PACKAGE_RELEASE}")
set(CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT")
## RPM package specific variables
if(DEFINED ENV{CPACK_RPM_PACKAGE_RELEASE})
@@ -112,10 +112,10 @@ message("Using CPACK_RPM_PACKAGE_RELEASE ${CPACK_RPM_PACKAGE_RELEASE}")
set( CPACK_RPM_PACKAGE_LICENSE "MIT")
## 'dist' breaks manual builds on debian systems due to empty Provides
execute_process( COMMAND rpm --eval %{?dist}
RESULT_VARIABLE PROC_RESULT
OUTPUT_VARIABLE EVAL_RESULT
OUTPUT_STRIP_TRAILING_WHITESPACE)
execute_process(COMMAND rpm --eval %{?dist}
RESULT_VARIABLE PROC_RESULT
OUTPUT_VARIABLE EVAL_RESULT
OUTPUT_STRIP_TRAILING_WHITESPACE)
message("RESULT_VARIABLE ${PROC_RESULT} OUTPUT_VARIABLE: ${EVAL_RESULT}")
if(PROC_RESULT EQUAL "0" AND NOT EVAL_RESULT STREQUAL "")
@@ -130,11 +130,11 @@ endif()
find_package(Doxygen)
if(DOXYGEN_FOUND)
# set input and output files
## Set input and output files
set(DOXYGEN_IN ${CMAKE_CURRENT_SOURCE_DIR}/doc/Doxyfile.in)
set(DOXYGEN_OUT ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile)
# request to configure the file
## Request to configure the file
configure_file(${DOXYGEN_IN} ${DOXYGEN_OUT} @ONLY)
add_custom_command(
@@ -158,5 +158,4 @@ if(DOXYGEN_FOUND)
"${CMAKE_CURRENT_BINARY_DIR}/doc/html/"
DESTINATION share/html/roctracer
OPTIONAL)
endif()
+6 -6
Wyświetl plik
@@ -37,7 +37,7 @@ function(set_file_contents input_file)
${file_contents}
#endif")
get_filename_component(file_name ${input_file} NAME)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/header_template.hpp.in ${ROCT_WRAPPER_INC_DIR}/${file_name})
configure_file(${PROJECT_SOURCE_DIR}/header_template.hpp.in ${ROCT_WRAPPER_INC_DIR}/${file_name})
endfunction()
#use header template file and generate wrapper header files
@@ -54,18 +54,18 @@ function(generate_wrapper_header)
get_filename_component ( header_subdir ${header_file} DIRECTORY )
if(header_subdir)
set(include_statements "#include \"../../../include/${ROCTRACER_NAME}/${header_subdir}/${file_name}\"\n")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/header_template.hpp.in ${ROCT_WRAPPER_INC_DIR}/${header_subdir}/${file_name})
configure_file(${PROJECT_SOURCE_DIR}/header_template.hpp.in ${ROCT_WRAPPER_INC_DIR}/${header_subdir}/${file_name})
else()
set(include_statements "#include \"../../include/${ROCTRACER_NAME}/${file_name}\"\n")
if(${file_name} STREQUAL "roctracer.h")
set_file_contents(${CMAKE_CURRENT_SOURCE_DIR}/inc/${file_name})
set_file_contents(${PROJECT_SOURCE_DIR}/inc/${file_name})
else()
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/header_template.hpp.in ${ROCT_WRAPPER_INC_DIR}/${file_name})
configure_file(${PROJECT_SOURCE_DIR}/header_template.hpp.in ${ROCT_WRAPPER_INC_DIR}/${file_name})
endif()
endif()
endforeach()
foreach(header_file ${GEN_HEADERS})
foreach(header_file ${GENERATED_HEADERS})
#set include guard
get_filename_component(INC_GAURD_NAME ${header_file} NAME_WE)
string(TOUPPER ${INC_GAURD_NAME} INC_GAURD_NAME)
@@ -73,7 +73,7 @@ function(generate_wrapper_header)
#set include statements
get_filename_component(file_name ${header_file} NAME)
set(include_statements "#include \"../../include/${ROCTRACER_NAME}/${file_name}\"\n")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/header_template.hpp.in ${ROCT_WRAPPER_INC_DIR}/${file_name})
configure_file(${PROJECT_SOURCE_DIR}/header_template.hpp.in ${ROCT_WRAPPER_INC_DIR}/${file_name})
endforeach()
+2 -2
Wyświetl plik
@@ -23,9 +23,9 @@
from __future__ import print_function
import os, sys, re
OUT='inc/hsa_prof_str.h'
OUT='hsa_prof_str.h'
API_TABLES_H = 'hsa_api_trace.h'
API_HEADERS_H = (
API_HEADERS_H = (
('CoreApiTable', 'hsa.h'),
('AmdExtTable', 'hsa_ext_amd.h'),
('ImageExtTable', 'hsa_ext_image.h'),
+112 -153
Wyświetl plik
@@ -20,216 +20,175 @@
## IN THE SOFTWARE.
################################################################################
find_package(Python3 COMPONENTS Interpreter REQUIRED)
execute_process(
COMMAND ${Python3_EXECUTABLE} -c "import CppHeaderParser"
RESULT_VARIABLE CPPHEADERPARSER
OUTPUT_QUIET
)
if(NOT ${CPPHEADERPARSER} EQUAL 0)
message(FATAL_ERROR
"The \"CppHeaderParser\" Python3 package is not installed. Please install it using the following command: \"pip3 install CppHeaderParser\"."
)
endif()
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR})
if(${LIBRARY_TYPE} STREQUAL STATIC)
add_definitions(-DSTATIC_BUILD=1)
add_compile_definitions(STATIC_BUILD=1)
endif()
option(DEBUG_TRACE "Enable debug tracing")
if(DEBUG_TRACE)
add_definitions(-DDEBUG_TRACE_ON=1)
add_compile_definitions(DEBUG_TRACE_ON=1)
endif()
set(GEN_INC_DIR ${PROJECT_BINARY_DIR}/inc)
find_package(Python3 COMPONENTS Interpreter REQUIRED)
# FIXME!!! should not depend on another project's internal files
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory "${GEN_INC_DIR}/rocprofiler")
execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink "${PROJECT_SOURCE_DIR}/../rocprofiler/inc/rocprofiler.h" "${GEN_INC_DIR}/rocprofiler/rocprofiler.h")
execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink "${PROJECT_SOURCE_DIR}/../rocprofiler/src/core/activity.h" "${GEN_INC_DIR}/rocprofiler/activity.h")
execute_process(COMMAND ${Python3_EXECUTABLE} -c "import CppHeaderParser"
RESULT_VARIABLE CPP_HEADER_PARSER
OUTPUT_QUIET)
if(NOT ${CPP_HEADER_PARSER} EQUAL 0)
message(FATAL_ERROR "\
The \"CppHeaderParser\" Python3 package is not installed. \
Please install it using the following command: \"pip3 install CppHeaderParser\".\
")
endif()
get_property(HSA_RUNTIME_INCLUDE_DIRECTORIES TARGET hsa-runtime64::hsa-runtime64 PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
find_file(hsa_h_file hsa.h
PATHS ${HSA_RUNTIME_INCLUDE_DIRECTORIES}
PATH_SUFFIXES hsa
NO_DEFAULT_PATH
REQUIRED
)
get_filename_component(HSA_RUNTIME_INC_PATH ${hsa_h_file} DIRECTORY)
find_file(HSA_H hsa.h
PATHS ${HSA_RUNTIME_INCLUDE_DIRECTORIES}
PATH_SUFFIXES hsa
NO_DEFAULT_PATH
REQUIRED)
get_filename_component(HSA_RUNTIME_INC_PATH ${HSA_H} DIRECTORY)
## Generate the HSA wrapper functions header
add_custom_command(
OUTPUT "${GEN_INC_DIR}/hsa_prof_str.h"
COMMAND ${CMAKE_COMMAND} -E make_directory "${GEN_INC_DIR}"
COMMAND ${Python3_EXECUTABLE}
"${PROJECT_SOURCE_DIR}/script/hsaap.py"
"${PROJECT_BINARY_DIR}" "${HSA_RUNTIME_INC_PATH}" > /dev/null
DEPENDS "${PROJECT_SOURCE_DIR}/script/hsaap.py"
"${HSA_RUNTIME_INC_PATH}/hsa.h" "${HSA_RUNTIME_INC_PATH}/hsa_ext_amd.h"
"${HSA_RUNTIME_INC_PATH}/hsa_ext_image.h" "${HSA_RUNTIME_INC_PATH}/hsa_api_trace.h"
COMMENT "Generating hsa_prof_str.h..."
)
OUTPUT hsa_prof_str.h
COMMAND ${Python3_EXECUTABLE} ${PROJECT_SOURCE_DIR}/script/hsaap.py ${CMAKE_CURRENT_BINARY_DIR} "${HSA_RUNTIME_INC_PATH}" > /dev/null
DEPENDS ${PROJECT_SOURCE_DIR}/script/hsaap.py
"${HSA_RUNTIME_INC_PATH}/hsa.h" "${HSA_RUNTIME_INC_PATH}/hsa_ext_amd.h"
"${HSA_RUNTIME_INC_PATH}/hsa_ext_image.h" "${HSA_RUNTIME_INC_PATH}/hsa_api_trace.h"
COMMENT "Generating hsa_prof_str.h...")
## Generate the HSA pretty printers
add_custom_command(
OUTPUT "${GEN_INC_DIR}/hsa_ostream_ops.h"
COMMAND ${CMAKE_COMMAND} -E make_directory "${GEN_INC_DIR}"
COMMAND ${CMAKE_C_COMPILER} -E "${HSA_RUNTIME_INC_PATH}/hsa.h" -o "${GEN_INC_DIR}/hsa.h.i"
COMMAND ${CMAKE_C_COMPILER} -E "${HSA_RUNTIME_INC_PATH}/hsa_ext_amd.h" -o "${GEN_INC_DIR}/hsa_ext_amd.h.i"
BYPRODUCTS "${GEN_INC_DIR}/hsa.h.i" "${GEN_INC_DIR}/hsa_ext_amd.h.i"
COMMAND ${Python3_EXECUTABLE}
"${PROJECT_SOURCE_DIR}/script/gen_ostream_ops.py"
-in "${GEN_INC_DIR}/hsa.h.i,${GEN_INC_DIR}/hsa_ext_amd.h.i"
-out "${GEN_INC_DIR}/hsa_ostream_ops.h" > /dev/null
DEPENDS "${PROJECT_SOURCE_DIR}/script/gen_ostream_ops.py"
"${HSA_RUNTIME_INC_PATH}/hsa.h" "${HSA_RUNTIME_INC_PATH}/hsa_ext_amd.h"
COMMENT "Generating hsa_ostream_ops.h..."
)
OUTPUT hsa_ostream_ops.h
COMMAND ${CMAKE_C_COMPILER} -E "${HSA_RUNTIME_INC_PATH}/hsa.h" -o hsa.h.i
COMMAND ${CMAKE_C_COMPILER} -E "${HSA_RUNTIME_INC_PATH}/hsa_ext_amd.h" -o hsa_ext_amd.h.i
BYPRODUCTS hsa.h.i hsa_ext_amd.h.i
COMMAND ${Python3_EXECUTABLE} ${PROJECT_SOURCE_DIR}/script/gen_ostream_ops.py
-in hsa.h.i,hsa_ext_amd.h.i -out hsa_ostream_ops.h > /dev/null
DEPENDS ${PROJECT_SOURCE_DIR}/script/gen_ostream_ops.py
"${HSA_RUNTIME_INC_PATH}/hsa.h" "${HSA_RUNTIME_INC_PATH}/hsa_ext_amd.h"
COMMENT "Generating hsa_ostream_ops.h...")
get_property(HIP_INCLUDE_DIRECTORIES TARGET hip::amdhip64 PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
find_file(HIP_RUNTIME_API_H hip_runtime_api.h
PATHS ${HIP_INCLUDE_DIRECTORIES}
PATH_SUFFIXES hip
NO_DEFAULT_PATH
REQUIRED
)
PATHS ${HIP_INCLUDE_DIRECTORIES}
PATH_SUFFIXES hip
NO_DEFAULT_PATH
REQUIRED)
## Generate the HIP pretty printers
add_custom_command(
OUTPUT "${GEN_INC_DIR}/hip_ostream_ops.h"
COMMAND ${CMAKE_COMMAND} -E make_directory "${GEN_INC_DIR}"
COMMAND ${CMAKE_C_COMPILER}
"$<$<BOOL:${HIP_INCLUDE_DIRECTORIES}>:-I$<JOIN:${HIP_INCLUDE_DIRECTORIES},$<SEMICOLON>-I>>"
-E "${HIP_RUNTIME_API_H}" -D__HIP_PLATFORM_HCC__=1 -D__HIP_ROCclr__=1 -o ${GEN_INC_DIR}/hip_runtime_api.h.i
BYPRODUCTS "${GEN_INC_DIR}/hip_runtime_api.h.i"
COMMAND ${Python3_EXECUTABLE}
"${PROJECT_SOURCE_DIR}/script/gen_ostream_ops.py"
-in "${GEN_INC_DIR}/hip_runtime_api.h.i"
-out "${GEN_INC_DIR}/hip_ostream_ops.h" > /dev/null
DEPENDS "${PROJECT_SOURCE_DIR}/script/gen_ostream_ops.py" "${HIP_RUNTIME_API_H}"
COMMENT "Generating hip_ostream_ops.h..."
COMMAND_EXPAND_LISTS
)
# Build the ROCtracer library
file(GLOB ROCTRACER_SOURCES "src/roctracer/*.cpp" "src/util/*.cpp")
OUTPUT hip_ostream_ops.h
COMMAND ${CMAKE_C_COMPILER} "$<$<BOOL:${HIP_INCLUDE_DIRECTORIES}>:-I$<JOIN:${HIP_INCLUDE_DIRECTORIES},$<SEMICOLON>-I>>"
-E "${HIP_RUNTIME_API_H}" -D__HIP_PLATFORM_HCC__=1 -D__HIP_ROCclr__=1 -o hip_runtime_api.h.i
BYPRODUCTS hip_runtime_api.h.i
COMMAND ${Python3_EXECUTABLE} ${PROJECT_SOURCE_DIR}/script/gen_ostream_ops.py
-in hip_runtime_api.h.i -out hip_ostream_ops.h > /dev/null
DEPENDS ${PROJECT_SOURCE_DIR}/script/gen_ostream_ops.py "${HIP_RUNTIME_API_H}"
COMMENT "Generating hip_ostream_ops.h..."
COMMAND_EXPAND_LISTS)
set(PUBLIC_HEADERS
roctx.h
roctracer.h
roctracer_ext.h
roctracer_hip.h
roctracer_hcc.h
roctracer_hsa.h
roctracer_roctx.h
ext/prof_protocol.h
)
roctx.h
roctracer.h
roctracer_ext.h
roctracer_hip.h
roctracer_hcc.h
roctracer_hsa.h
roctracer_roctx.h
ext/prof_protocol.h)
set(GEN_HEADERS
hip_ostream_ops.h
hsa_prof_str.h
hsa_ostream_ops.h
)
foreach(header ${PUBLIC_HEADERS})
get_filename_component(header_subdir ${header} DIRECTORY)
install(FILES ${PROJECT_SOURCE_DIR}/inc/${header} DESTINATION include/${ROCTRACER_NAME}/${header_subdir})
endforeach()
add_library(roctracer ${LIBRARY_TYPE}
${ROCTRACER_SOURCES}
"${GEN_INC_DIR}/hsa_ostream_ops.h"
"${GEN_INC_DIR}/hsa_prof_str.h"
"${GEN_INC_DIR}/hip_ostream_ops.h"
)
set(GENERATED_HEADERS
hip_ostream_ops.h
hsa_prof_str.h
hsa_ostream_ops.h)
foreach(header ${GENERATED_HEADERS})
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${header} DESTINATION include/${ROCTRACER_NAME})
endforeach()
## Build the ROCtracer library
file(GLOB ROCTRACER_SOURCES "roctracer/*.cpp" "util/*.cpp")
add_library(roctracer ${LIBRARY_TYPE} ${ROCTRACER_SOURCES} ${GENERATED_HEADERS})
set_target_properties(roctracer PROPERTIES
CXX_VISIBILITY_PRESET hidden
OUTPUT_NAME "roctracer64"
LINK_DEPENDS roctracer.exportmap
VERSION ${ROCTRACER_VERSION}
SOVERSION ${ROCTRACER_VERSION_MAJOR}
)
CXX_VISIBILITY_PRESET hidden
OUTPUT_NAME "roctracer64"
LINK_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/roctracer.exportmap
VERSION ${ROCTRACER_VERSION}
SOVERSION ${ROCTRACER_VERSION_MAJOR})
target_compile_definitions(roctracer
PUBLIC
AMD_INTERNAL_BUILD
PRIVATE
PROF_API_IMPL
HIP_PROF_HIP_API_STRING=1
__HIP_PLATFORM_HCC__=1
)
PUBLIC AMD_INTERNAL_BUILD
PRIVATE PROF_API_IMPL HIP_PROF_HIP_API_STRING=1 __HIP_PLATFORM_AMD__=1)
target_include_directories(roctracer
PUBLIC
${HIP_INCLUDE_DIRECTORIES} ${HSA_RUNTIME_INCLUDE_DIRECTORIES}
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
PRIVATE
${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/inc ${PROJECT_SOURCE_DIR}/src
${PROJECT_SOURCE_DIR}/src/roctracer ${PROJECT_BINARY_DIR}/inc
)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/roctracer/exportmap.in roctracer.exportmap @ONLY)
target_link_options(roctracer PRIVATE -Wl,--version-script=roctracer.exportmap -Wl,--no-undefined)
${CMAKE_CURRENT_SOURCE_DIR}/roctracer ${CMAKE_CURRENT_SOURCE_DIR}
${PROJECT_SOURCE_DIR}/inc)
configure_file(roctracer/exportmap.in roctracer.exportmap @ONLY)
target_link_options(roctracer PRIVATE -Wl,--version-script=${CMAKE_CURRENT_BINARY_DIR}/roctracer.exportmap -Wl,--no-undefined)
target_link_libraries(roctracer PRIVATE hsa-runtime64::hsa-runtime64 Threads::Threads dl)
install(TARGETS roctracer LIBRARY DESTINATION lib)
foreach(header ${PUBLIC_HEADERS})
get_filename_component(header_subdir ${header} DIRECTORY)
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/inc/${header} DESTINATION include/${ROCTRACER_NAME}/${header_subdir})
endforeach()
foreach(header ${GEN_HEADERS})
get_filename_component(header_subdir ${header} DIRECTORY)
install(FILES ${GEN_INC_DIR}/${header} DESTINATION include/${ROCTRACER_NAME}/${header_subdir})
endforeach()
# Build the ROCTX library
file(GLOB ROCTX_SOURCES "src/roctx/*.cpp")
## Build the ROCTX library
file(GLOB ROCTX_SOURCES "roctx/*.cpp")
add_library(roctx ${LIBRARY_TYPE} ${ROCTX_SOURCES})
set_target_properties(roctx PROPERTIES
CXX_VISIBILITY_PRESET hidden
OUTPUT_NAME "roctx64"
LINK_DEPENDS roctx.exportmap
VERSION ${ROCTRACER_VERSION}
SOVERSION ${ROCTRACER_VERSION_MAJOR}
)
CXX_VISIBILITY_PRESET hidden
OUTPUT_NAME "roctx64"
LINK_DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/roctx.exportmap
VERSION ${ROCTRACER_VERSION}
SOVERSION ${ROCTRACER_VERSION_MAJOR})
target_include_directories(roctx PRIVATE
${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/inc ${PROJECT_SOURCE_DIR}/src/roctracer
${PROJECT_SOURCE_DIR}/src
)
target_include_directories(roctx
PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/roctracer ${CMAKE_CURRENT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/inc)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/roctx/exportmap.in roctx.exportmap @ONLY)
configure_file(roctx/exportmap.in roctx.exportmap @ONLY)
target_link_options(roctx PRIVATE -Wl,--version-script=roctx.exportmap -Wl,--no-undefined)
install(TARGETS roctx LIBRARY DESTINATION lib)
## Build the tracer_tool library
if (${LIBRARY_TYPE} STREQUAL SHARED)
file(GLOB TRACER_TOOL_SOURCES "src/tracer_tool/*.cpp" "src/util/*.cpp")
file(GLOB TRACER_TOOL_SOURCES "tracer_tool/*.cpp" "util/*.cpp")
add_library(roctracer_tool SHARED ${TRACER_TOOL_SOURCES})
set_target_properties(roctracer_tool PROPERTIES
CXX_VISIBILITY_PRESET hidden
LINK_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/src/tracer_tool/exportmap
)
CXX_VISIBILITY_PRESET hidden
LINK_DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/tracer_tool/exportmap)
target_compile_definitions(roctracer_tool PRIVATE
HIP_PROF_HIP_API_STRING=1
__HIP_PLATFORM_HCC__=1
)
target_compile_definitions(roctracer_tool
PRIVATE HIP_PROF_HIP_API_STRING=1 __HIP_PLATFORM_HCC__=1)
target_include_directories(roctracer_tool PRIVATE
${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/inc ${PROJECT_SOURCE_DIR}/src/roctracer
${PROJECT_SOURCE_DIR}/src ${HIP_INCLUDE_DIRECTORIES} ${GEN_INC_DIR}
)
target_include_directories(roctracer_tool
PRIVATE
${PROJECT_SOURCE_DIR}/inc ${CMAKE_CURRENT_SOURCE_DIR}/roctracer
${CMAKE_CURRENT_SOURCE_DIR})
target_link_libraries(roctracer_tool roctracer hsa-runtime64::hsa-runtime64 Threads::Threads atomic dl)
target_link_options(roctracer_tool PRIVATE -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/src/tracer_tool/exportmap -Wl,--no-undefined)
target_link_options(roctracer_tool PRIVATE -Wl,--version-script=${CMAKE_CURRENT_SOURCE_DIR}/tracer_tool/exportmap -Wl,--no-undefined)
install(TARGETS roctracer_tool LIBRARY DESTINATION lib/${ROCTRACER_NAME})
endif()
option(FILE_REORG_BACKWARD_COMPATIBILITY "Enable File Reorg with backward compatibility" ON)
if(FILE_REORG_BACKWARD_COMPATIBILITY)
include(${PROJECT_SOURCE_DIR}/roctracer-backward-compat.cmake)
endif()
+2 -2
Wyświetl plik
@@ -133,7 +133,7 @@ class RocpApi {
};
// HIP runtime library loader class
#include "inc/roctracer_hip.h"
#include "roctracer_hip.h"
#if STATIC_BUILD
__attribute__((weak)) hipError_t hipRegisterApiCallback(uint32_t id, void* fun, void* arg) {
return hipErrorUnknown;
@@ -273,7 +273,7 @@ class HipApi {
#endif
// rocTX runtime library loader class
#include "inc/roctracer_roctx.h"
#include "roctracer_roctx.h"
class RocTxApi {
public:
typedef BaseLoader<RocTxApi> Loader;
+24 -32
Wyświetl plik
@@ -20,60 +20,49 @@
## IN THE SOFTWARE.
################################################################################
# Find clang to build the HSA code objects
find_package(Clang REQUIRED CONFIG
PATHS "/opt/rocm/"
PATH_SUFFIXES "llvm/lib/cmake/clang"
)
add_custom_target(mytest) # builds all the tests
add_dependencies(mytest roctracer_tool)
# Add a 'check' target to run the tests.
add_custom_target(check COMMAND ${PROJECT_BINARY_DIR}/run.sh DEPENDS mytest)
## build HIP tests
set(GEN_INC_DIR ${PROJECT_BINARY_DIR}/inc)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "/opt/rocm/hip/cmake")
find_package(HIP REQUIRED MODULE)
set_source_files_properties(hip/MatrixTranspose.cpp app/MatrixTranspose_test.cpp
PROPERTIES HIP_SOURCE_PROPERTY_FORMAT 1)
find_package(Clang REQUIRED CONFIG
PATHS "/opt/rocm/"
PATH_SUFFIXES "llvm/lib/cmake/clang")
## Add a custom targets to build and run all the tests
add_custom_target(mytest)
add_dependencies(mytest roctracer_tool)
add_custom_target(check COMMAND ${PROJECT_BINARY_DIR}/run.sh DEPENDS mytest)
## Build MatrixTranspose
set_source_files_properties(hip/MatrixTranspose.cpp PROPERTIES HIP_SOURCE_PROPERTY_FORMAT 1)
hip_add_executable(MatrixTranspose EXCLUDE_FROM_ALL hip/MatrixTranspose.cpp)
target_include_directories(MatrixTranspose PRIVATE ${PROJECT_SOURCE_DIR}/inc)
target_link_libraries(MatrixTranspose PRIVATE roctracer roctx)
add_dependencies(mytest MatrixTranspose)
## Build MatrixTranspose_test, MatrixTranspose_hipaact_test and MatrixTranspose_mgpu
set_source_files_properties(app/MatrixTranspose_test.cpp PROPERTIES HIP_SOURCE_PROPERTY_FORMAT 1)
function(build_matrix_transpose_test OUTPUT_FILE DEFINITIONS)
hip_add_executable(${OUTPUT_FILE} EXCLUDE_FROM_ALL app/MatrixTranspose_test.cpp)
target_compile_definitions(${OUTPUT_FILE} PRIVATE ITERATIONS=100 HIP_TEST=1 ${DEFINITIONS})
target_include_directories(${OUTPUT_FILE} PRIVATE ${PROJECT_SOURCE_DIR}/inc ${GEN_INC_DIR})
target_include_directories(${OUTPUT_FILE} PRIVATE ${PROJECT_SOURCE_DIR}/inc)
target_link_libraries(${OUTPUT_FILE} PRIVATE roctracer roctx)
add_dependencies(mytest ${OUTPUT_FILE})
endfunction(build_matrix_transpose_test)
build_matrix_transpose_test(MatrixTranspose_test "")
build_matrix_transpose_test(MatrixTranspose_hipaact_test HIP_API_ACTIVITY_ON=1)
build_matrix_transpose_test(MatrixTranspose_mgpu MGPU_TEST=1)
## Build MatrixTranspose MatrixTranspose_ctest
add_custom_command(OUTPUT MatrixTranspose.c
COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_CURRENT_SOURCE_DIR}/app/MatrixTranspose_test.cpp MatrixTranspose.c)
hip_add_executable(MatrixTranspose_ctest EXCLUDE_FROM_ALL MatrixTranspose.c)
target_compile_definitions(MatrixTranspose_ctest PRIVATE HIP_TEST=0 __HIP_PLATFORM_HCC__)
target_include_directories(MatrixTranspose_ctest PRIVATE ${PROJECT_SOURCE_DIR}/inc ${GEN_INC_DIR})
target_include_directories(MatrixTranspose_ctest PRIVATE ${PROJECT_SOURCE_DIR}/inc)
target_link_libraries(MatrixTranspose_ctest PRIVATE roctracer roctx)
add_dependencies(mytest MatrixTranspose_ctest)
file(GLOB files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "golden_traces/tests_trace_cmp_levels.txt" "golden_traces/*_trace.txt")
foreach(file ${files})
configure_file(${file} ${PROJECT_BINARY_DIR}/test/${file} COPYONLY)
endforeach()
## Build hsaco_test.cpp referenc test
## Build hsaco_test reference test
add_library(hsaco_test SHARED EXCLUDE_FROM_ALL app/hsaco_test.cpp)
target_compile_definitions(hsaco_test PRIVATE AMD_INTERNAL_BUILD)
target_link_libraries(hsaco_test hsa-runtime64::hsa-runtime64)
@@ -81,7 +70,7 @@ add_dependencies(mytest hsaco_test)
## Build codeobj event test
add_library(codeobj_test SHARED EXCLUDE_FROM_ALL app/codeobj_test.cpp)
target_include_directories(codeobj_test PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/inc ${GEN_INC_DIR})
target_include_directories(codeobj_test PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${PROJECT_SOURCE_DIR} ${PROJECT_SOURCE_DIR}/inc)
target_link_libraries(codeobj_test roctracer)
add_dependencies(mytest codeobj_test)
@@ -91,8 +80,7 @@ target_include_directories(trace_buffer PRIVATE ${PROJECT_SOURCE_DIR}/src/tracer
target_link_libraries(trace_buffer Threads::Threads atomic)
add_dependencies(mytest trace_buffer)
## Build the hsa copy test
## Build the hsa (standalone) copy test
function(generate_hsaco TARGET_ID INPUT_FILE OUTPUT_FILE)
separate_arguments(CLANG_ARG_LIST UNIX_COMMAND
"-O2 -x cl -Xclang -finclude-default-header -cl-denorms-are-zero -cl-std=CL2.0
@@ -117,8 +105,12 @@ target_link_libraries(copy hsa-runtime64::hsa-runtime64 Threads::Threads dl)
add_dependencies(copy hsaco_targets)
add_dependencies(mytest copy)
## copying run script
## Copy the golden traces and test scripts
configure_file(run.sh ${PROJECT_BINARY_DIR} COPYONLY)
execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink run.sh ${PROJECT_BINARY_DIR}/run_ci.sh)
## copying tests output check script
configure_file(${PROJECT_SOURCE_DIR}/script/check_trace.py ${PROJECT_BINARY_DIR}/test/check_trace.py COPYONLY)
file(GLOB files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "golden_traces/tests_trace_cmp_levels.txt" "golden_traces/*_trace.txt")
foreach(file ${files})
configure_file(${file} ${PROJECT_BINARY_DIR}/test/${file} COPYONLY)
endforeach()