fe5d074375
* Adding tools support * cmake formatting (cmake-format) (#227) Co-authored-by: SrirakshaNag <SrirakshaNag@users.noreply.github.com> * Checking to do rebase * Adding rocprofv2 script * cmake formatting (cmake-format) (#229) Co-authored-by: bgopesh <bgopesh@users.noreply.github.com> * Fixing build for the tool * Removing the requirement for rocm_version * Update rocprofiler_utilities.cmake * C++ filesystem fixes - added source/lib/common/filesystem.hpp - support older compilers which have <experimental/filesystem> and do not have <filesystem> - added samples/common/filesystem.hpp - samples now depend on "common" library which provides the correct filesystem header - renamed rocprofiler-stdcxxfs interface target to rocprofiler-cxx-filesystem - support old LLVM in addition to GNU - fix bin/rocprof/rocprof.cpp - was using VLA * Fix rocprofiler-drm include directories - OpenSUSE only has include/libdrm/drm.h (no include/drm/drm.h) * Tools fixes * Fix for the tools * Fix rocprofv2 script * Fixing Filesystem Issues * source formatting (clang-format v11) (#234) Co-authored-by: ammarwa <ammarwa@users.noreply.github.com> * Vlaindic/pc sampling api update (#235) * pcs: updating PC sampling API * source formatting (clang-format v11) (#232) Co-authored-by: vlaindic <vlaindic@users.noreply.github.com> --------- Co-authored-by: vlaindic <vladimir.indic@amd.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: vlaindic <vlaindic@users.noreply.github.com> * Vlaindic/pc sampling api update for ammar branch (#244) *Updating the documentation inside pc_sampling.h --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: vlaindic <vlaindic@users.noreply.github.com> * pcs: use @p in front of params * pcs: documenting struct fields updated * Fixing PC Sampling Documentation issues * Fixing PC Sampling Documentation * Relocated tools directory to source/lib/rocprofiler-tool * Fixes/updates to rocprofiler-tool - updated CMake - Fixed miscellaneous issues in the code (VLAs, etc.) - Updated rocprofv2 to reflect some minor env variables changes in rocprofiler-tool - Fixed clang-tidy warnings * Update lib/rocprofiler-tool/CMakeLists.txt - link to atomic library * Add $ORIGIN/.. RUNPATH to rocprofiler-tool * Adding readme file for tools * Renaming the tools readme file * Update ReadMe.md * Update ReadMe.md * Documentation updates - overview and explanation of design and concepts * Fix lib/rocprofiler-tool/README.md - delete ReadMe.md * Hacks for build * Update Filesystem * cmake formatting (cmake-format) (#248) Co-authored-by: ammarwa <ammarwa@users.noreply.github.com> * source formatting (clang-format v11) (#249) Co-authored-by: ammarwa <ammarwa@users.noreply.github.com> * source formatting (clang-format v11) (#250) Co-authored-by: ammarwa <ammarwa@users.noreply.github.com> * Addressing review comments on the tool readme file * Revert "Hacks for build" This reverts commit d6688cb3d1226c46fc97e37ced889a5b0d180940. * Fixes for GCC 7.5 compiler in OpenSUSE 15.4 * Update lib/rocprofiler-tool/CMakeLists.txt - link to AQL profile library * Fix lib/rocprofiler-tool/README.md - fix markdown * Fix lib/rocprofiler-tool - fix usage of hsa_ven_amd_loader_query_host_address * Fix unused variable warnings - byproduct of variables only used in assert statements * Update docs - update about.md - more "Important Changes" section here - update tool_library_overview.md - extend "Tool Library Design" section - write "Tool Initialization" section - write "Tool Finalization" section * Add ghc::filesystem submodule * Implement usage of ghc::filesystem * Add ROCPROFILER_BUILD_GHC_FS option - option to use external/filesystem (ghc) * Update samples/counter-collection - compile flags - common library - fixes for warnings * Update tests/kernel-tracing/CMakeLists.txt - change install location of kernel-tracing-test-tool and install rpath * Update samples/common/CMakeLists.txt - compile features requiring C++17 * Update lib/rocprofiler-tool/tool.cpp - remove include <filesystem> - comment out unused variable - remove unused functions - move some functions into anonymous namespace --------- Co-authored-by: Sriraksha Nagaraj <Sriraksha.Nagaraj@amd.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: SrirakshaNag <SrirakshaNag@users.noreply.github.com> Co-authored-by: gobhardw <gopesh.bhardwaj@amd.com> Co-authored-by: bgopesh <bgopesh@users.noreply.github.com> Co-authored-by: Jonathan R. Madsen <jonathanrmadsen@gmail.com> Co-authored-by: ammarwa <ammarwa@users.noreply.github.com> Co-authored-by: vlaindic <vladimir.indic@amd.com> Co-authored-by: vlaindic <vlaindic@users.noreply.github.com> Co-authored-by: Vladimir Indic <139573562+vlaindic@users.noreply.github.com> Co-authored-by: Benjamin Welton <bewelton@amd.com> Co-authored-by: Jonathan R. Madsen <jrmadsen@users.noreply.github.com>
166 wiersze
5.3 KiB
CMake
166 wiersze
5.3 KiB
CMake
#
|
|
#
|
|
# External dependencies
|
|
#
|
|
#
|
|
include(rocprofiler_utilities)
|
|
|
|
set(BUILD_TESTING OFF)
|
|
|
|
# filesystem library
|
|
if(ROCPROFILER_BUILD_GHC_FS)
|
|
rocprofiler_checkout_git_submodule(
|
|
RECURSIVE
|
|
RELATIVE_PATH external/filesystem
|
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
|
REPO_URL https://github.com/gulrak/filesystem.git
|
|
REPO_BRANCH "v1.5.14")
|
|
|
|
target_compile_definitions(
|
|
rocprofiler-cxx-filesystem
|
|
INTERFACE $<BUILD_INTERFACE:ROCPROFILER_HAS_GHC_LIB_FILESYSTEM=1>)
|
|
target_include_directories(
|
|
rocprofiler-cxx-filesystem SYSTEM
|
|
INTERFACE $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/external/filesystem/include>)
|
|
endif()
|
|
|
|
if(ROCPROFILER_BUILD_TESTS)
|
|
if(ROCPROFILER_BUILD_GTEST)
|
|
set(INSTALL_GTEST
|
|
OFF
|
|
CACHE BOOL "")
|
|
set(BUILD_GMOCK
|
|
OFF
|
|
CACHE BOOL "")
|
|
|
|
rocprofiler_checkout_git_submodule(
|
|
RECURSIVE
|
|
RELATIVE_PATH external/googletest
|
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
|
REPO_URL https://github.com/google/googletest.git
|
|
REPO_BRANCH "main")
|
|
|
|
add_subdirectory(googletest EXCLUDE_FROM_ALL)
|
|
|
|
if(NOT TARGET GTest::gtest)
|
|
message(FATAL_ERROR "missing GTest::gtest")
|
|
endif()
|
|
|
|
target_link_libraries(rocprofiler-gtest INTERFACE GTest::gtest)
|
|
target_include_directories(
|
|
rocprofiler-gtest SYSTEM
|
|
INTERFACE ${CMAKE_CURRENT_LIST_DIR}/googletest/googletest/include)
|
|
|
|
mark_as_advanced(INSTALL_GTEST)
|
|
mark_as_advanced(BUILD_GMOCK)
|
|
mark_as_advanced(GTEST_HAS_ABSL)
|
|
else()
|
|
find_package(GTest REQUIRED)
|
|
target_link_libraries(rocprofiler-gtest INTERFACE GTest::gtest)
|
|
endif()
|
|
|
|
rocprofiler_checkout_git_submodule(
|
|
RECURSIVE
|
|
RELATIVE_PATH external/cereal
|
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
|
REPO_URL https://github.com/jrmadsen/cereal.git
|
|
REPO_BRANCH "rocprofiler")
|
|
|
|
add_library(rocprofiler-cereal INTERFACE)
|
|
add_library(rocprofiler::cereal ALIAS rocprofiler-cereal)
|
|
target_compile_definitions(rocprofiler-cereal
|
|
INTERFACE $<BUILD_INTERFACE:CEREAL_THREAD_SAFE=1>)
|
|
target_include_directories(
|
|
rocprofiler-cereal
|
|
INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/cereal/include>)
|
|
endif()
|
|
|
|
if(ROCPROFILER_BUILD_GLOG)
|
|
# checkout submodule if not already checked out or clone repo if no .gitmodules file
|
|
rocprofiler_checkout_git_submodule(
|
|
RECURSIVE
|
|
RELATIVE_PATH external/glog
|
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
|
REPO_URL https://github.com/google/glog.git
|
|
REPO_BRANCH "master")
|
|
|
|
# May want to use GFLAGS in the future
|
|
set(WITH_GFLAGS OFF)
|
|
set(BUILD_SHARED_LIBS OFF)
|
|
set(WITH_GTEST OFF)
|
|
add_subdirectory(glog EXCLUDE_FROM_ALL)
|
|
|
|
target_link_libraries(rocprofiler-glog INTERFACE $<BUILD_INTERFACE:glog::glog>)
|
|
target_include_directories(
|
|
rocprofiler-glog SYSTEM
|
|
INTERFACE $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/external/glog>
|
|
$<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/external/glog/src>)
|
|
else()
|
|
find_package(glog REQUIRED)
|
|
target_link_libraries(rocprofiler-glog INTERFACE glog::glog)
|
|
endif()
|
|
|
|
if(ROCPROFILER_BUILD_FMT)
|
|
# checkout submodule if not already checked out or clone repo if no .gitmodules file
|
|
rocprofiler_checkout_git_submodule(
|
|
RECURSIVE
|
|
RELATIVE_PATH external/fmt
|
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
|
REPO_URL https://github.com/fmtlib/fmt.git
|
|
REPO_BRANCH "master")
|
|
|
|
set(FMT_TEST OFF)
|
|
add_subdirectory(fmt EXCLUDE_FROM_ALL)
|
|
|
|
target_link_libraries(rocprofiler-fmt INTERFACE $<BUILD_INTERFACE:fmt::fmt>)
|
|
target_include_directories(
|
|
rocprofiler-fmt SYSTEM
|
|
INTERFACE $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/external/fmt/include>)
|
|
else()
|
|
find_package(fmt REQUIRED)
|
|
target_link_libraries(rocprofiler-fmt INTERFACE fmt::fmt)
|
|
endif()
|
|
|
|
if(NOT TARGET PTL::ptl-static)
|
|
rocprofiler_checkout_git_submodule(
|
|
RELATIVE_PATH external/ptl
|
|
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
|
REPO_URL https://github.com/jrmadsen/PTL.git
|
|
REPO_BRANCH rocprofiler)
|
|
|
|
set(PTL_USE_TBB OFF)
|
|
set(PTL_USE_GPU OFF)
|
|
set(PTL_USE_LOCKS ON)
|
|
set(PTL_BUILD_EXAMPLES OFF)
|
|
set(PTL_DEVELOPER_INSTALL OFF)
|
|
|
|
if(NOT DEFINED BUILD_OBJECT_LIBS)
|
|
set(BUILD_OBJECT_LIBS OFF)
|
|
endif()
|
|
|
|
if(NOT DEFINED BUILD_STATIC_LIBS)
|
|
set(BUILD_STATIC_LIBS OFF)
|
|
endif()
|
|
|
|
rocprofiler_save_variables(
|
|
BUILD_CONFIG
|
|
VARIABLES BUILD_SHARED_LIBS BUILD_STATIC_LIBS BUILD_OBJECT_LIBS
|
|
CMAKE_POSITION_INDEPENDENT_CODE CMAKE_CXX_VISIBILITY_PRESET
|
|
CMAKE_VISIBILITY_INLINES_HIDDEN)
|
|
|
|
set(BUILD_SHARED_LIBS OFF)
|
|
set(BUILD_STATIC_LIBS ON)
|
|
set(BUILD_OBJECT_LIBS OFF)
|
|
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
|
set(CMAKE_CXX_VISIBILITY_PRESET "hidden")
|
|
set(CMAKE_VISIBILITY_INLINES_HIDDEN ON)
|
|
|
|
add_subdirectory(ptl EXCLUDE_FROM_ALL)
|
|
|
|
rocprofiler_restore_variables(
|
|
BUILD_CONFIG
|
|
VARIABLES BUILD_SHARED_LIBS BUILD_STATIC_LIBS BUILD_OBJECT_LIBS
|
|
CMAKE_POSITION_INDEPENDENT_CODE CMAKE_CXX_VISIBILITY_PRESET
|
|
CMAKE_VISIBILITY_INLINES_HIDDEN)
|
|
endif()
|