Install perfetto tools option (#58)
* Install perfetto tools option - E.g. traced, perfetto, etc. * Fix copying of perfetto directory * Require curl for installing perfetto tools * Fix to locating tools/ninja
This commit is contained in:
committed by
GitHub
parent
346f8cd0bc
commit
8146426e8b
@@ -34,7 +34,7 @@ jobs:
|
||||
wget -q -O - https://repo.radeon.com/rocm/rocm.gpg.key | apt-key add - &&
|
||||
echo "deb [arch=amd64] https://repo.radeon.com/rocm/apt/${{ matrix.rocm_version }}/ ubuntu main" | tee /etc/apt/sources.list.d/rocm.list &&
|
||||
apt-get update &&
|
||||
apt-get install -y build-essential m4 autoconf libtool python3-pip clang libomp-dev ${{ matrix.compiler }} libudev-dev libnuma-dev rocm-dev rocm-utils roctracer-dev rocprofiler-dev hip-base hsa-amd-aqlprofile hsa-rocr-dev hsakmt-roct-dev libpapi-dev libopenmpi-dev &&
|
||||
apt-get install -y build-essential m4 autoconf libtool python3-pip clang libomp-dev ${{ matrix.compiler }} libudev-dev libnuma-dev rocm-dev rocm-utils roctracer-dev rocprofiler-dev hip-base hsa-amd-aqlprofile hsa-rocr-dev hsakmt-roct-dev libpapi-dev libopenmpi-dev curl &&
|
||||
python3 -m pip install --upgrade pip &&
|
||||
python3 -m pip install 'cmake==3.16.3' &&
|
||||
for i in 6 7 8 9; do /opt/conda/envs/py3.${i}/bin/python -m pip install numpy; done
|
||||
@@ -66,7 +66,8 @@ jobs:
|
||||
-DOMNITRACE_USE_HIP=ON
|
||||
-DOMNITRACE_MAX_THREADS=64
|
||||
-DOMNITRACE_USE_SANITIZER=OFF
|
||||
-DTIMEMORY_USE_PAPI=OFF
|
||||
-DOMNITRACE_USE_PAPI=OFF
|
||||
-DOMNITRACE_INSTALL_PERFETTO_TOOLS=ON
|
||||
|
||||
- name: Build
|
||||
timeout-minutes: 45
|
||||
@@ -90,7 +91,9 @@ jobs:
|
||||
timeout-minutes: 10
|
||||
run: |
|
||||
set -v
|
||||
traced --background
|
||||
export OMNITRACE_DEBUG=ON
|
||||
export OMNITRACE_PERFETTO_BACKEND=system
|
||||
which omnitrace-avail
|
||||
ldd $(which omnitrace-avail)
|
||||
omnitrace-avail --help
|
||||
@@ -101,10 +104,12 @@ jobs:
|
||||
ldd $(which omnitrace)
|
||||
omnitrace --help
|
||||
omnitrace -e -v 1 -o ls.inst --simulate -- ls
|
||||
omnitrace -e -v 1 -o ls.inst -- ls
|
||||
./ls.inst
|
||||
omnitrace -e -v 1 --simulate -- ls
|
||||
omnitrace -e -v 1 -o ls.inst -- ls
|
||||
perfetto --out ls-perfetto-trace.proto --txt -c omnitrace.cfg
|
||||
./ls.inst
|
||||
omnitrace -e -v 1 -- ls
|
||||
du -m ls-perfetto-trace.proto
|
||||
|
||||
- name: CTest Artifacts
|
||||
if: success() || failure()
|
||||
|
||||
+3
-1
@@ -115,6 +115,8 @@ omnitrace_add_option(
|
||||
"Build with hidden visibility (disable for Debug builds)" ON ADVANCED)
|
||||
omnitrace_add_option(OMNITRACE_BUILD_CI "Enable internal asserts, etc." OFF ADVANCED
|
||||
NO_FEATURE)
|
||||
omnitrace_add_option(OMNITRACE_INSTALL_PERFETTO_TOOLS
|
||||
"Install perfetto tools (i.e. traced, perfetto, etc.)" OFF)
|
||||
omnitrace_add_option(OMNITRACE_STRIP_LIBRARIES "Strip the libraries"
|
||||
${_STRIP_LIBRARIES_DEFAULT} ADVANCED)
|
||||
|
||||
@@ -226,7 +228,7 @@ install(
|
||||
OPTIONAL)
|
||||
|
||||
install(
|
||||
FILES ${PROJECT_SOURCE_DIR}/roctrace.cfg
|
||||
FILES ${PROJECT_SOURCE_DIR}/omnitrace.cfg
|
||||
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/${PROJECT_NAME}
|
||||
OPTIONAL)
|
||||
|
||||
|
||||
+22
-10
@@ -23,6 +23,7 @@ omnitrace_add_interface_library(omnitrace-ptl "Enables PTL support (tasking)")
|
||||
omnitrace_add_interface_library(omnitrace-papi "Enable PAPI support")
|
||||
omnitrace_add_interface_library(omnitrace-ompt "Enable OMPT support")
|
||||
omnitrace_add_interface_library(omnitrace-python "Enables Python support")
|
||||
omnitrace_add_interface_library(omnitrace-perfetto "Enables Perfetto support")
|
||||
omnitrace_add_interface_library(omnitrace-timemory "Provides timemory libraries")
|
||||
omnitrace_add_interface_library(omnitrace-timemory-config
|
||||
"CMake interface library applied to all timemory targets")
|
||||
@@ -32,7 +33,7 @@ omnitrace_add_interface_library(omnitrace-compile-definitions "Compile definitio
|
||||
set(OMNITRACE_EXTENSION_LIBRARIES
|
||||
omnitrace::omnitrace-hip omnitrace::omnitrace-roctracer omnitrace::omnitrace-rocm-smi
|
||||
omnitrace::omnitrace-mpi omnitrace::omnitrace-ptl omnitrace::omnitrace-ompt
|
||||
omnitrace::omnitrace-papi)
|
||||
omnitrace::omnitrace-papi omnitrace::omnitrace-perfetto)
|
||||
|
||||
target_include_directories(
|
||||
omnitrace-headers INTERFACE ${PROJECT_SOURCE_DIR}/source/lib/omnitrace
|
||||
@@ -50,23 +51,32 @@ string(REPLACE ":" ";" CMAKE_PREFIX_PATH "$ENV{CMAKE_PREFIX_PATH};${CMAKE_PREFIX
|
||||
#
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
|
||||
if(NOT WIN32)
|
||||
set(CMAKE_THREAD_PREFER_PTHREAD ON)
|
||||
set(THREADS_PREFER_PTHREAD_FLAG OFF)
|
||||
endif()
|
||||
set(CMAKE_THREAD_PREFER_PTHREAD ON)
|
||||
set(THREADS_PREFER_PTHREAD_FLAG OFF)
|
||||
|
||||
find_library(pthread_LIBRARY NAMES pthread pthreads)
|
||||
find_package_handle_standard_args(pthread-library REQUIRED_VARS pthread_LIBRARY)
|
||||
find_package(Threads ${omnitrace_FIND_QUIETLY} ${omnitrace_FIND_REQUIREMENT})
|
||||
|
||||
if(Threads_FOUND)
|
||||
target_link_libraries(omnitrace-threading INTERFACE ${CMAKE_THREAD_LIBS_INIT})
|
||||
endif()
|
||||
find_library(pthread_LIBRARY NAMES pthread pthreads)
|
||||
find_package_handle_standard_args(pthread-library REQUIRED_VARS pthread_LIBRARY)
|
||||
|
||||
if(pthread_LIBRARY AND NOT WIN32)
|
||||
if(pthread_LIBRARY)
|
||||
target_link_libraries(omnitrace-threading INTERFACE ${pthread_LIBRARY})
|
||||
else()
|
||||
find_package(Threads ${omnitrace_FIND_QUIETLY} ${omnitrace_FIND_REQUIREMENT})
|
||||
if(Threads_FOUND)
|
||||
target_link_libraries(omnitrace-threading INTERFACE Threads::Threads)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
foreach(_LIB dl rt)
|
||||
find_library(${_LIB}_LIBRARY NAMES ${_LIB})
|
||||
find_package_handle_standard_args(${_LIB}-library REQUIRED_VARS ${_LIB}_LIBRARY)
|
||||
if(${_LIB}_LIBRARY)
|
||||
target_link_libraries(omnitrace-threading INTERFACE ${${_LIB}_LIBRARY})
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
#
|
||||
# HIP
|
||||
@@ -368,6 +378,8 @@ omnitrace_checkout_git_submodule(
|
||||
REPO_BRANCH v17.0
|
||||
TEST_FILE sdk/perfetto.cc)
|
||||
|
||||
include(Perfetto)
|
||||
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
#
|
||||
# ELFIO
|
||||
|
||||
@@ -0,0 +1,205 @@
|
||||
# ======================================================================================
|
||||
# Perfetto.cmake
|
||||
#
|
||||
# Configure perfetto for omnitrace
|
||||
#
|
||||
# ======================================================================================
|
||||
|
||||
include_guard(GLOBAL)
|
||||
|
||||
include(ExternalProject)
|
||||
include(ProcessorCount)
|
||||
|
||||
# ---------------------------------------------------------------------------------------#
|
||||
#
|
||||
# executables and libraries
|
||||
#
|
||||
# ---------------------------------------------------------------------------------------#
|
||||
|
||||
find_program(
|
||||
OMNITRACE_COPY_EXECUTABLE
|
||||
NAMES cp
|
||||
PATH_SUFFIXES bin)
|
||||
|
||||
find_program(
|
||||
OMNITRACE_NINJA_EXECUTABLE
|
||||
NAMES ninja
|
||||
PATH_SUFFIXES bin)
|
||||
|
||||
mark_as_advanced(OMNITRACE_COPY_EXECUTABLE)
|
||||
mark_as_advanced(OMNITRACE_NINJA_EXECUTABLE)
|
||||
|
||||
# ---------------------------------------------------------------------------------------#
|
||||
#
|
||||
# variables
|
||||
#
|
||||
# ---------------------------------------------------------------------------------------#
|
||||
|
||||
processorcount(NUM_PROCS_REAL)
|
||||
math(EXPR _NUM_THREADS "${NUM_PROCS_REAL} - (${NUM_PROCS_REAL} / 2)")
|
||||
if(_NUM_THREADS GREATER 8)
|
||||
set(_NUM_THREADS 8)
|
||||
elseif(_NUM_THREADS LESS 1)
|
||||
set(_NUM_THREADS 1)
|
||||
endif()
|
||||
|
||||
set(OMNITRACE_PERFETTO_SOURCE_DIR ${PROJECT_BINARY_DIR}/external/perfetto/source)
|
||||
set(OMNITRACE_PERFETTO_TOOLS_DIR ${PROJECT_BINARY_DIR}/external/perfetto/source/tools)
|
||||
set(OMNITRACE_PERFETTO_BINARY_DIR
|
||||
${PROJECT_BINARY_DIR}/external/perfetto/source/out/linux)
|
||||
set(OMNITRACE_PERFETTO_INSTALL_DIR
|
||||
${PROJECT_BINARY_DIR}/external/perfetto/source/out/linux/stripped)
|
||||
set(OMNITRACE_PERFETTO_LINK_FLAGS
|
||||
"-static-libgcc -static-libstdc++"
|
||||
CACHE STRING "Link flags for perfetto")
|
||||
set(OMNITRACE_PERFETTO_BUILD_THREADS
|
||||
${_NUM_THREADS}
|
||||
CACHE STRING "Number of threads to use when building perfetto tools")
|
||||
|
||||
if(CMAKE_CXX_COMPILER_IS_CLANG)
|
||||
set(PERFETTO_IS_CLANG true)
|
||||
set(OMNITRACE_PERFETTO_C_FLAGS
|
||||
""
|
||||
CACHE STRING "Perfetto C flags")
|
||||
set(OMNITRACE_PERFETTO_CXX_FLAGS
|
||||
""
|
||||
CACHE STRING "Perfetto C++ flags")
|
||||
else()
|
||||
set(PERFETTO_IS_CLANG false)
|
||||
set(OMNITRACE_PERFETTO_C_FLAGS
|
||||
"-static-libgcc -static-libstdc++ -Wno-maybe-uninitialized"
|
||||
CACHE STRING "Perfetto C flags")
|
||||
set(OMNITRACE_PERFETTO_CXX_FLAGS
|
||||
"-static-libgcc -static-libstdc++ -Wno-maybe-uninitialized"
|
||||
CACHE STRING "Perfetto C++ flags")
|
||||
endif()
|
||||
|
||||
mark_as_advanced(OMNITRACE_PERFETTO_C_FLAGS)
|
||||
mark_as_advanced(OMNITRACE_PERFETTO_CXX_FLAGS)
|
||||
mark_as_advanced(OMNITRACE_PERFETTO_LINK_FLAGS)
|
||||
|
||||
if(NOT OMNITRACE_NINJA_EXECUTABLE)
|
||||
set(OMNITRACE_NINJA_EXECUTABLE
|
||||
${OMNITRACE_PERFETTO_TOOLS_DIR}/ninja
|
||||
CACHE FILEPATH "Ninja" FORCE)
|
||||
endif()
|
||||
|
||||
# ---------------------------------------------------------------------------------------#
|
||||
#
|
||||
# source tree
|
||||
#
|
||||
# ---------------------------------------------------------------------------------------#
|
||||
|
||||
if(NOT EXISTS "${OMNITRACE_PERFETTO_SOURCE_DIR}")
|
||||
execute_process(COMMAND ${CMAKE_COMMAND} -E make_directory
|
||||
${PROJECT_BINARY_DIR}/external/perfetto)
|
||||
# cmake -E copy_directory fails for some reason
|
||||
execute_process(
|
||||
COMMAND ${OMNITRACE_COPY_EXECUTABLE} -r ${PROJECT_SOURCE_DIR}/external/perfetto/
|
||||
${OMNITRACE_PERFETTO_SOURCE_DIR})
|
||||
endif()
|
||||
|
||||
configure_file(${PROJECT_SOURCE_DIR}/cmake/Templates/args.gn.in
|
||||
${OMNITRACE_PERFETTO_BINARY_DIR}/args.gn @ONLY)
|
||||
|
||||
# ---------------------------------------------------------------------------------------#
|
||||
#
|
||||
# build tools
|
||||
#
|
||||
# ---------------------------------------------------------------------------------------#
|
||||
|
||||
if(OMNITRACE_INSTALL_PERFETTO_TOOLS)
|
||||
find_program(
|
||||
OMNITRACE_CURL_EXECUTABLE
|
||||
NAMES curl
|
||||
PATH_SUFFIXES bin)
|
||||
|
||||
if(NOT OMNITRACE_CURL_EXECUTABLE)
|
||||
omnitrace_message(
|
||||
SEND_ERROR
|
||||
"curl executable cannot be found. install-build-deps script for perfetto will fail"
|
||||
)
|
||||
endif()
|
||||
|
||||
externalproject_add(
|
||||
omnitrace-perfetto-build
|
||||
PREFIX ${PROJECT_BINARY_DIR}/external/perfetto
|
||||
SOURCE_DIR ${OMNITRACE_PERFETTO_SOURCE_DIR}
|
||||
BUILD_IN_SOURCE 1
|
||||
PATCH_COMMAND ${OMNITRACE_PERFETTO_TOOLS_DIR}/install-build-deps
|
||||
CONFIGURE_COMMAND ${OMNITRACE_PERFETTO_TOOLS_DIR}/gn gen
|
||||
${OMNITRACE_PERFETTO_BINARY_DIR}
|
||||
BUILD_COMMAND ${OMNITRACE_NINJA_EXECUTABLE} -C ${OMNITRACE_PERFETTO_BINARY_DIR} -j
|
||||
${OMNITRACE_PERFETTO_BUILD_THREADS}
|
||||
INSTALL_COMMAND ""
|
||||
BUILD_BYPRODUCTS ${OMNITRACE_PERFETTO_BINARY_DIR}/args.gn)
|
||||
|
||||
add_custom_target(
|
||||
omnitrace-perfetto-clean
|
||||
COMMAND ${OMNITRACE_NINJA_EXECUTABLE} -t clean
|
||||
WORKING_DIRECTORY ${OMNITRACE_PERFETTO_BINARY_DIR}
|
||||
COMMENT "Cleaning Perfetto...")
|
||||
|
||||
install(
|
||||
DIRECTORY ${OMNITRACE_PERFETTO_INSTALL_DIR}/
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
FILES_MATCHING
|
||||
PATTERN "*libperfetto.so*")
|
||||
|
||||
foreach(_FILE perfetto traced tracebox traced_probes traced_perf trigger_perfetto)
|
||||
install(
|
||||
PROGRAMS ${OMNITRACE_PERFETTO_INSTALL_DIR}/${_FILE}
|
||||
DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||
OPTIONAL)
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
# ---------------------------------------------------------------------------------------#
|
||||
#
|
||||
# perfetto static library
|
||||
#
|
||||
# ---------------------------------------------------------------------------------------#
|
||||
|
||||
add_library(omnitrace-perfetto-library STATIC)
|
||||
add_library(omnitrace::omnitrace-perfetto-library ALIAS omnitrace-perfetto-library)
|
||||
target_sources(
|
||||
omnitrace-perfetto-library PRIVATE ${OMNITRACE_PERFETTO_SOURCE_DIR}/sdk/perfetto.cc
|
||||
${OMNITRACE_PERFETTO_SOURCE_DIR}/sdk/perfetto.h)
|
||||
target_link_libraries(
|
||||
omnitrace-perfetto-library
|
||||
PRIVATE omnitrace::omnitrace-threading omnitrace::omnitrace-static-libgcc
|
||||
omnitrace::omnitrace-static-libstdcxx)
|
||||
set_target_properties(
|
||||
omnitrace-perfetto-library
|
||||
PROPERTIES OUTPUT_NAME perfetto
|
||||
ARCHIVE_OUTPUT_DIRECTORY ${OMNITRACE_PERFETTO_BINARY_DIR}
|
||||
POSITION_INDEPENDENT_CODE ON
|
||||
CXX_VISIBILITY_PRESET "internal")
|
||||
|
||||
set(perfetto_DIR ${OMNITRACE_PERFETTO_SOURCE_DIR})
|
||||
set(PERFETTO_ROOT_DIR
|
||||
${OMNITRACE_PERFETTO_SOURCE_DIR}
|
||||
CACHE PATH "Root Perfetto installation" FORCE)
|
||||
set(PERFETTO_INCLUDE_DIR
|
||||
${OMNITRACE_PERFETTO_SOURCE_DIR}/sdk
|
||||
CACHE PATH "Perfetto include folder" FORCE)
|
||||
set(PERFETTO_LIBRARY
|
||||
${OMNITRACE_PERFETTO_BINARY_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}perfetto${CMAKE_STATIC_LIBRARY_SUFFIX}
|
||||
CACHE FILEPATH "Perfetto library" FORCE)
|
||||
|
||||
mark_as_advanced(PERFETTO_ROOT_DIR)
|
||||
mark_as_advanced(PERFETTO_INCLUDE_DIR)
|
||||
mark_as_advanced(PERFETTO_LIBRARY)
|
||||
|
||||
# ---------------------------------------------------------------------------------------#
|
||||
#
|
||||
# perfetto interface library
|
||||
#
|
||||
# ---------------------------------------------------------------------------------------#
|
||||
|
||||
omnitrace_target_compile_definitions(omnitrace-perfetto INTERFACE OMNITRACE_USE_PERFETTO)
|
||||
target_include_directories(omnitrace-perfetto SYSTEM
|
||||
INTERFACE $<BUILD_INTERFACE:${PERFETTO_INCLUDE_DIR}>)
|
||||
target_link_libraries(
|
||||
omnitrace-perfetto INTERFACE $<BUILD_INTERFACE:${PERFETTO_LIBRARY}>
|
||||
$<BUILD_INTERFACE:omnitrace::omnitrace-threading>)
|
||||
@@ -0,0 +1,29 @@
|
||||
# Set build arguments here. See `gn help buildargs`.
|
||||
|
||||
cc = "@CMAKE_C_COMPILER@"
|
||||
cxx = "@CMAKE_CXX_COMPILER@"
|
||||
|
||||
is_debug = false
|
||||
is_clang = @PERFETTO_IS_CLANG@
|
||||
is_hermetic_clang = false
|
||||
|
||||
enable_perfetto_benchmarks = false
|
||||
enable_perfetto_integration_tests = false
|
||||
enable_perfetto_unittests = false
|
||||
enable_perfetto_fuzzers = false
|
||||
|
||||
# enable_perfetto_stderr_crash_dump = false
|
||||
enable_perfetto_heapprofd = false
|
||||
enable_perfetto_tools = false
|
||||
enable_perfetto_tools_trace_to_text = false
|
||||
enable_perfetto_trace_processor = false
|
||||
enable_perfetto_trace_processor_httpd = false
|
||||
enable_perfetto_trace_processor_json = false
|
||||
enable_perfetto_trace_processor_linenoise = false
|
||||
enable_perfetto_trace_processor_percentile = false
|
||||
enable_perfetto_trace_processor_sqlite = false
|
||||
enable_perfetto_ui = false
|
||||
|
||||
extra_cflags = "@OMNITRACE_PERFETTO_C_FLAGS@"
|
||||
extra_cxxflags = "@OMNITRACE_PERFETTO_CXX_FLAGS@"
|
||||
extra_ldflags = "@OMNITRACE_PERFETTO_LINK_FLAGS@ -Wl,-rpath=\\\$ORIGIN:\\\$ORIGIN/../lib"
|
||||
Vendored
+1
-1
Submodule external/timemory updated: 52e7034fd4...83f911bc46
+2
-2
@@ -1,6 +1,6 @@
|
||||
# perfetto --out OUTPUT_FILE --txt -c omnitrace.cfg
|
||||
# 2 minute trace, but can be stopped prematurely.
|
||||
duration_ms: 120000
|
||||
# 5 minute trace, but can be stopped prematurely.
|
||||
duration_ms: 300000
|
||||
write_into_file: true
|
||||
file_write_period_ms: 100
|
||||
flush_period_ms: 100
|
||||
|
||||
@@ -392,8 +392,8 @@ extern "C"
|
||||
OMNITRACE_DL_INVOKE_STATUS(_invoked, get_indirect().omnitrace_init_f, a, b, c);
|
||||
if(_invoked)
|
||||
{
|
||||
dl::get_active() = true;
|
||||
dl::get_inited() = true;
|
||||
dl::get_active() = true;
|
||||
dl::get_inited() = true;
|
||||
dl::_omnitrace_dl_verbose = dl::get_omnitrace_dl_env();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,8 +10,6 @@ add_library(omnitrace::omnitrace-interface-library ALIAS omnitrace-interface-lib
|
||||
target_include_directories(
|
||||
omnitrace-interface-library INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
${CMAKE_CURRENT_BINARY_DIR})
|
||||
target_include_directories(omnitrace-interface-library SYSTEM
|
||||
INTERFACE ${perfetto_DIR}/sdk)
|
||||
|
||||
target_compile_definitions(
|
||||
omnitrace-interface-library
|
||||
@@ -25,6 +23,7 @@ target_link_libraries(
|
||||
$<BUILD_INTERFACE:omnitrace::omnitrace-threading>
|
||||
$<BUILD_INTERFACE:omnitrace::omnitrace-compile-options>
|
||||
$<BUILD_INTERFACE:omnitrace::omnitrace-compile-definitions>
|
||||
$<BUILD_INTERFACE:omnitrace::omnitrace-perfetto>
|
||||
$<BUILD_INTERFACE:omnitrace::omnitrace-timemory>
|
||||
$<BUILD_INTERFACE:omnitrace::omnitrace-mpi>
|
||||
$<BUILD_INTERFACE:omnitrace::omnitrace-ptl>
|
||||
@@ -73,8 +72,7 @@ set(library_sources
|
||||
${CMAKE_CURRENT_LIST_DIR}/library/components/pthread_gotcha.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/library/components/pthread_create_gotcha.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/library/components/pthread_mutex_gotcha.cpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/library/components/user_region.cpp
|
||||
${perfetto_DIR}/sdk/perfetto.cc)
|
||||
${CMAKE_CURRENT_LIST_DIR}/library/components/user_region.cpp)
|
||||
|
||||
set(library_headers
|
||||
${CMAKE_CURRENT_LIST_DIR}/library.hpp
|
||||
@@ -108,8 +106,7 @@ set(library_headers
|
||||
${CMAKE_CURRENT_LIST_DIR}/library/components/pthread_gotcha.hpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/library/components/pthread_create_gotcha.hpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/library/components/pthread_mutex_gotcha.hpp
|
||||
${CMAKE_CURRENT_LIST_DIR}/library/components/user_region.hpp
|
||||
${perfetto_DIR}/sdk/perfetto.h)
|
||||
${CMAKE_CURRENT_LIST_DIR}/library/components/user_region.hpp)
|
||||
|
||||
target_sources(omnitrace-object-library PRIVATE ${library_sources} ${library_headers})
|
||||
|
||||
@@ -142,7 +139,7 @@ endif()
|
||||
add_library(omnitrace-library SHARED $<TARGET_OBJECTS:omnitrace-object-library>)
|
||||
add_library(omnitrace::omnitrace-library ALIAS omnitrace-library)
|
||||
|
||||
target_link_libraries(omnitrace-library PRIVATE omnitrace-interface-library)
|
||||
target_link_libraries(omnitrace-library PRIVATE omnitrace::omnitrace-interface-library)
|
||||
|
||||
set_target_properties(
|
||||
omnitrace-library
|
||||
|
||||
@@ -142,7 +142,8 @@ configure_settings(bool _init)
|
||||
auto _default_perfetto_v =
|
||||
!tim::get_env<bool>("OMNITRACE_USE_TIMEMORY", false, false);
|
||||
|
||||
auto _system_backend = tim::get_env("OMNITRACE_PERFETTO_BACKEND_SYSTEM", false, false);
|
||||
auto _system_backend =
|
||||
tim::get_env("OMNITRACE_PERFETTO_BACKEND_SYSTEM", false, false);
|
||||
|
||||
auto _omnitrace_debug = _config->get<bool>("OMNITRACE_DEBUG");
|
||||
if(_omnitrace_debug) tim::set_env("TIMEMORY_DEBUG_SETTINGS", "1", 0);
|
||||
@@ -221,9 +222,9 @@ configure_settings(bool _init)
|
||||
|
||||
auto _backend = tim::get_env_choice<std::string>(
|
||||
"OMNITRACE_PERFETTO_BACKEND",
|
||||
(_system_backend)
|
||||
? "system" // if OMNITRACE_PERFETTO_BACKEND_SYSTEM is true, default to system.
|
||||
: "inprocess", // Otherwise, default to inprocess
|
||||
(_system_backend) ? "system" // if OMNITRACE_PERFETTO_BACKEND_SYSTEM is true,
|
||||
// default to system.
|
||||
: "inprocess", // Otherwise, default to inprocess
|
||||
{ "inprocess", "system", "all" }, false);
|
||||
|
||||
OMNITRACE_CONFIG_SETTING(std::string, "OMNITRACE_PERFETTO_BACKEND",
|
||||
|
||||
Reference in New Issue
Block a user