# # # cmake_minimum_required(VERSION 3.21.0 FATAL_ERROR) project( rocprofiler-sdk-tests-tools LANGUAGES C CXX VERSION 0.0.0) find_package(rocprofiler-sdk REQUIRED) # tool library supporting JSON and perfetto output add_library(rocprofiler-sdk-json-tool SHARED) target_sources(rocprofiler-sdk-json-tool PRIVATE json-tool.cpp) target_link_libraries( rocprofiler-sdk-json-tool PRIVATE rocprofiler-sdk::rocprofiler-sdk rocprofiler-sdk::rocprofiler-sdk-cereal rocprofiler-sdk::tests-build-flags rocprofiler-sdk::tests-common-library rocprofiler-sdk::tests-perfetto) set_target_properties( rocprofiler-sdk-json-tool PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib/rocprofiler-sdk" SOVERSION ${PROJECT_VERSION_MINOR} VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH} INSTALL_RPATH "\$ORIGIN:\$ORIGIN/..") # tool library which just checks that tools can be compiled with C language add_library(rocprofiler-sdk-c-tool SHARED) target_sources(rocprofiler-sdk-c-tool PRIVATE c-tool.c) target_link_libraries(rocprofiler-sdk-c-tool PRIVATE rocprofiler-sdk::rocprofiler-sdk rocprofiler-sdk::tests-build-flags) # Suppress -Wcpp warning from rccl/rccl.h which emits a #warning when compiled with C # compiler This warning is treated as an error with -Werror but is harmless for this C # compatibility test target_compile_options(rocprofiler-sdk-c-tool PRIVATE -Wno-cpp) set_target_properties( rocprofiler-sdk-c-tool PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib/rocprofiler-sdk" SOVERSION ${PROJECT_VERSION_MINOR} VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH} INSTALL_RPATH "\$ORIGIN:\$ORIGIN/..") if(NOT CMAKE_STRIP) find_program(CMAKE_STRIP NAMES strip REQUIRED) endif() add_custom_command( TARGET rocprofiler-sdk-c-tool POST_BUILD COMMAND ${CMAKE_STRIP} $ WORKING_DIRECTORY ${CMAKE_BINARY_DIR} COMMENT "Stripping rocprofiler-sdk-c-tool...") # thread-trace tool libraries set(THREAD_TRACE_TOOL_LINK_LIBRARIES rocprofiler-sdk::rocprofiler-sdk rocprofiler-sdk::tests-build-flags rocprofiler-sdk::tests-common-library) # single dispatch thread trace tool add_library(thread-trace-single-tool SHARED) target_sources(thread-trace-single-tool PRIVATE thread-trace-single-tool.cpp thread-trace-callbacks.cpp) target_link_libraries(thread-trace-single-tool PRIVATE ${THREAD_TRACE_TOOL_LINK_LIBRARIES}) set_target_properties( thread-trace-single-tool PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib/rocprofiler-sdk" INSTALL_RPATH "\$ORIGIN:\$ORIGIN/..") # multi dispatch thread trace tool add_library(thread-trace-multi-tool SHARED) target_sources(thread-trace-multi-tool PRIVATE thread-trace-multi-tool.cpp thread-trace-callbacks.cpp) target_link_libraries(thread-trace-multi-tool PRIVATE ${THREAD_TRACE_TOOL_LINK_LIBRARIES}) set_target_properties( thread-trace-multi-tool PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib/rocprofiler-sdk" INSTALL_RPATH "\$ORIGIN:\$ORIGIN/..") # agent (device) thread trace tool add_library(thread-trace-agent-tool SHARED) target_sources(thread-trace-agent-tool PRIVATE thread-trace-agent-tool.cpp thread-trace-callbacks.cpp) target_link_libraries(thread-trace-agent-tool PRIVATE ${THREAD_TRACE_TOOL_LINK_LIBRARIES}) set_target_properties( thread-trace-agent-tool PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib/rocprofiler-sdk" INSTALL_RPATH "\$ORIGIN:\$ORIGIN/..") # triple buffer thread trace tool add_library(thread-trace-triple-buffer-tool SHARED) target_sources(thread-trace-triple-buffer-tool PRIVATE thread-trace-triple-buffer-tool.cpp) target_link_libraries(thread-trace-triple-buffer-tool PRIVATE ${THREAD_TRACE_TOOL_LINK_LIBRARIES}) set_target_properties( thread-trace-triple-buffer-tool PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib/rocprofiler-sdk" INSTALL_RPATH "\$ORIGIN:\$ORIGIN/..") # tool library supporting late initialization in the application add_library(rocprofiler-sdk-late-start-tool SHARED) target_sources(rocprofiler-sdk-late-start-tool PRIVATE late-start-tool.cpp) target_link_libraries( rocprofiler-sdk-late-start-tool PRIVATE rocprofiler-sdk::rocprofiler-sdk rocprofiler-sdk::rocprofiler-sdk-cereal rocprofiler-sdk::tests-build-flags rocprofiler-sdk::tests-common-library) set_target_properties( rocprofiler-sdk-late-start-tool PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/lib/rocprofiler-sdk" SOVERSION ${PROJECT_VERSION_MINOR} VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_PATCH} INSTALL_RPATH "\$ORIGIN:\$ORIGIN/..")