omnitrace find_package support (#3)
* omnitrace find_package support - Fix to INSTALL_DESTINATION for configure_package_config_file - Fixes to ConfigInstall.cmake and omnitrace-config.cmake.in * Test find_package
Tento commit je obsažen v:
@@ -124,6 +124,12 @@ jobs:
|
||||
for i in omnitrace-ls-output/*; do echo -e "\n\n --> ${i} \n\n"; cat ${i}; done
|
||||
omnitrace -e -v 1 -- ls
|
||||
|
||||
- name: Test User API
|
||||
timeout-minutes: 10
|
||||
run: |
|
||||
set -v
|
||||
./scripts/test-find-package.sh --install-dir /opt/omnitrace
|
||||
|
||||
- name: CTest Artifacts
|
||||
if: success() || failure()
|
||||
uses: actions/upload-artifact@v2
|
||||
|
||||
@@ -111,6 +111,12 @@ jobs:
|
||||
omnitrace -e -v 1 -- ls
|
||||
du -m ls-perfetto-trace.proto
|
||||
|
||||
- name: Test User API
|
||||
timeout-minutes: 10
|
||||
run: |
|
||||
set -v
|
||||
./scripts/test-find-package.sh --install-dir /opt/omnitrace
|
||||
|
||||
- name: CTest Artifacts
|
||||
if: success() || failure()
|
||||
uses: actions/upload-artifact@v2
|
||||
|
||||
@@ -100,6 +100,12 @@ jobs:
|
||||
for i in omnitrace-ls-output/*; do echo -e "\n\n --> ${i} \n\n"; cat ${i}; done
|
||||
omnitrace -e -v 1 -- ls
|
||||
|
||||
- name: Test User API
|
||||
timeout-minutes: 10
|
||||
run: |
|
||||
set -v
|
||||
./scripts/test-find-package.sh --install-dir /opt/omnitrace
|
||||
|
||||
- name: CTest Artifacts
|
||||
if: success() || failure()
|
||||
uses: actions/upload-artifact@v2
|
||||
|
||||
@@ -99,6 +99,12 @@ jobs:
|
||||
for i in omnitrace-ls-output/*; do echo -e "\n\n --> ${i} \n\n"; cat ${i}; done
|
||||
omnitrace -e -v 1 -- ls
|
||||
|
||||
- name: Test User API
|
||||
timeout-minutes: 10
|
||||
run: |
|
||||
set -v
|
||||
${{ github.workspace }}/scripts/test-find-package.sh --install-dir /opt/omnitrace
|
||||
|
||||
- name: CTest Artifacts
|
||||
if: success() || failure()
|
||||
uses: actions/upload-artifact@v2
|
||||
|
||||
@@ -91,6 +91,10 @@ omnitrace_add_option(CMAKE_CXX_STANDARD_REQUIRED "Require C++ language standard"
|
||||
omnitrace_add_option(CMAKE_CXX_EXTENSIONS "Compiler specific language extensions" OFF)
|
||||
omnitrace_add_option(CMAKE_INSTALL_RPATH_USE_LINK_PATH "Enable rpath to linked libraries"
|
||||
ON)
|
||||
set(CMAKE_INSTALL_MESSAGE
|
||||
"LAZY"
|
||||
CACHE STRING "Installation message")
|
||||
mark_as_advanced(CMAKE_INSTALL_MESSAGE)
|
||||
|
||||
omnitrace_add_option(OMNITRACE_USE_CLANG_TIDY "Enable clang-tidy" OFF)
|
||||
omnitrace_add_option(OMNITRACE_USE_MPI "Enable MPI support" OFF)
|
||||
@@ -269,6 +273,7 @@ endif()
|
||||
#
|
||||
# ------------------------------------------------------------------------------#
|
||||
|
||||
include(ConfigInstall)
|
||||
include(ConfigCPack)
|
||||
|
||||
# ------------------------------------------------------------------------------#
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
# include guard
|
||||
include_guard(DIRECTORY)
|
||||
|
||||
# ########################################################################################
|
||||
#
|
||||
# Compilers
|
||||
@@ -31,8 +29,11 @@ if("${LIBNAME}" STREQUAL "")
|
||||
string(TOLOWER "${PROJECT_NAME}" LIBNAME)
|
||||
endif()
|
||||
|
||||
omnitrace_add_interface_library(
|
||||
${LIBNAME}-compile-options "Adds the standard set of compiler flags used by timemory")
|
||||
if(NOT TARGET ${LIBNAME}-compile-options)
|
||||
omnitrace_add_interface_library(
|
||||
${LIBNAME}-compile-options
|
||||
"Adds the standard set of compiler flags used by timemory")
|
||||
endif()
|
||||
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
# macro converting string to list
|
||||
@@ -116,10 +117,17 @@ endmacro()
|
||||
# add C flag to target
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
macro(ADD_TARGET_C_FLAG _TARG)
|
||||
get_target_property(_TARG_TYPE ${_TARG} TYPE)
|
||||
if("${_TARG_TYPE}" MATCHES "INTERFACE_LIBRARY")
|
||||
set(_SCOPE INTERFACE)
|
||||
else()
|
||||
set(_SCOPE PRIVATE)
|
||||
endif()
|
||||
|
||||
string(REPLACE "-" "_" _MAKE_TARG "${_TARG}")
|
||||
list(APPEND OMNITRACE_MAKE_TARGETS ${_MAKE_TARG})
|
||||
|
||||
target_compile_options(${_TARG} INTERFACE $<$<COMPILE_LANGUAGE:C>:${ARGN}>)
|
||||
target_compile_options(${_TARG} ${_SCOPE} $<$<COMPILE_LANGUAGE:C>:${ARGN}>)
|
||||
list(APPEND ${_MAKE_TARG}_C_FLAGS ${ARGN})
|
||||
endmacro()
|
||||
|
||||
@@ -211,18 +219,25 @@ endmacro()
|
||||
# add CXX flag to target
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
macro(ADD_TARGET_CXX_FLAG _TARG)
|
||||
get_target_property(_TARG_TYPE ${_TARG} TYPE)
|
||||
if("${_TARG_TYPE}" MATCHES "INTERFACE_LIBRARY")
|
||||
set(_SCOPE INTERFACE)
|
||||
else()
|
||||
set(_SCOPE PRIVATE)
|
||||
endif()
|
||||
|
||||
string(REPLACE "-" "_" _MAKE_TARG "${_TARG}")
|
||||
list(APPEND OMNITRACE_MAKE_TARGETS ${_MAKE_TARG})
|
||||
|
||||
target_compile_options(${_TARG} INTERFACE $<$<COMPILE_LANGUAGE:CXX>:${ARGN}>)
|
||||
target_compile_options(${_TARG} ${_SCOPE} $<$<COMPILE_LANGUAGE:CXX>:${ARGN}>)
|
||||
list(APPEND ${_MAKE_TARG}_CXX_FLAGS ${ARGN})
|
||||
get_property(LANGUAGES GLOBAL PROPERTY ENABLED_LANGUAGES)
|
||||
if(CMAKE_CUDA_COMPILER_IS_NVIDIA)
|
||||
target_compile_options(${_TARG}
|
||||
INTERFACE $<$<COMPILE_LANGUAGE:CUDA>:-Xcompiler=${ARGN}>)
|
||||
target_compile_options(${_TARG} ${_SCOPE}
|
||||
$<$<COMPILE_LANGUAGE:CUDA>:-Xcompiler=${ARGN}>)
|
||||
list(APPEND ${_MAKE_TARG}_CUDA_FLAGS -Xcompiler=${ARGN})
|
||||
elseif(CMAKE_CUDA_COMPILER_IS_CLANG)
|
||||
target_compile_options(${_TARG} INTERFACE $<$<COMPILE_LANGUAGE:CUDA>:${ARGN}>)
|
||||
target_compile_options(${_TARG} ${_SCOPE} $<$<COMPILE_LANGUAGE:CUDA>:${ARGN}>)
|
||||
list(APPEND ${_MAKE_TARG}_CUDA_FLAGS ${ARGN})
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
# include guard
|
||||
include_guard(GLOBAL)
|
||||
|
||||
include(CMakePackageConfigHelpers)
|
||||
|
||||
install(
|
||||
EXPORT omnitrace-library-targets
|
||||
FILE omnitrace-library-targets.cmake
|
||||
NAMESPACE omnitrace::
|
||||
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/cmake/omnitrace)
|
||||
|
||||
# ------------------------------------------------------------------------------#
|
||||
# install tree
|
||||
#
|
||||
set(PROJECT_INSTALL_DIR ${CMAKE_INSTALL_PREFIX})
|
||||
set(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
set(LIB_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR})
|
||||
set(PROJECT_BUILD_TARGETS user dl)
|
||||
|
||||
configure_package_config_file(
|
||||
${PROJECT_SOURCE_DIR}/cmake/Templates/${PROJECT_NAME}-config.cmake.in
|
||||
${PROJECT_BINARY_DIR}/install-tree/${PROJECT_NAME}-config.cmake
|
||||
INSTALL_DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/cmake/omnitrace
|
||||
INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}
|
||||
PATH_VARS PROJECT_INSTALL_DIR INCLUDE_INSTALL_DIR LIB_INSTALL_DIR)
|
||||
|
||||
write_basic_package_version_file(
|
||||
${PROJECT_BINARY_DIR}/install-tree/${PROJECT_NAME}-version.cmake
|
||||
VERSION ${PROJECT_VERSION}
|
||||
COMPATIBILITY SameMajorVersion)
|
||||
|
||||
install(
|
||||
FILES ${PROJECT_BINARY_DIR}/install-tree/${PROJECT_NAME}-config.cmake
|
||||
${PROJECT_BINARY_DIR}/install-tree/${PROJECT_NAME}-version.cmake
|
||||
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/cmake/${PROJECT_NAME}
|
||||
OPTIONAL)
|
||||
|
||||
export(PACKAGE ${PROJECT_NAME})
|
||||
@@ -598,6 +598,9 @@ target_link_libraries(omnitrace-ptl INTERFACE PTL::ptl-object)
|
||||
#
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
|
||||
# override compiler macros
|
||||
include(Compilers)
|
||||
|
||||
if(OMNITRACE_BUILD_STATIC_LIBSTDCXX)
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
||||
omnitrace_restore_variables(STATIC_LIBSTDCXX_CXX VARIABLES CMAKE_CXX_FLAGS)
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
# - Config file for @PROJECT_NAME@ and its component libraries
|
||||
# It defines the following variables:
|
||||
#
|
||||
# @PROJECT_NAME@_INCLUDE_DIRS
|
||||
# @PROJECT_NAME@_LIBRARIES
|
||||
# @PROJECT_NAME@_INTERNAL_DEFINES - used by the test suite
|
||||
|
||||
# compute paths
|
||||
get_filename_component(@PROJECT_NAME@_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
|
||||
|
||||
# version
|
||||
include(${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-version.cmake)
|
||||
|
||||
@PACKAGE_INIT@
|
||||
|
||||
set_and_check(@PROJECT_NAME@_INCLUDE_DIR "@PACKAGE_INCLUDE_INSTALL_DIR@")
|
||||
set_and_check(@PROJECT_NAME@_LIB_DIR "@PACKAGE_LIB_INSTALL_DIR@")
|
||||
get_filename_component(@PROJECT_NAME@_ROOT_DIR ${@PROJECT_NAME@_INCLUDE_DIR} PATH)
|
||||
|
||||
set(@PROJECT_NAME@_LIBRARIES)
|
||||
|
||||
add_library(@PROJECT_NAME@::@PROJECT_NAME@ INTERFACE IMPORTED)
|
||||
|
||||
include("${@PROJECT_NAME@_CMAKE_DIR}/@PROJECT_NAME@-library-targets.cmake")
|
||||
|
||||
# Library dependencies
|
||||
foreach(TARG @PROJECT_BUILD_TARGETS@)
|
||||
set(TARG @PROJECT_NAME@-${TARG}-library)
|
||||
if(NOT @PROJECT_NAME@_FIND_COMPONENTS)
|
||||
list(APPEND @PROJECT_NAME@_LIBRARIES @PROJECT_NAME@::${TARG})
|
||||
target_link_libraries(@PROJECT_NAME@::@PROJECT_NAME@
|
||||
INTERFACE @PROJECT_NAME@::${TARG})
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if(@PROJECT_NAME@_FIND_COMPONENTS)
|
||||
foreach(COMP ${@PROJECT_NAME@_FIND_COMPONENTS})
|
||||
set(TARG @PROJECT_NAME@::@PROJECT_NAME@-${COMP}-library)
|
||||
if(TARGET ${TARG})
|
||||
set(@PROJECT_NAME@_${COMP}_FOUND 1)
|
||||
list(APPEND @PROJECT_NAME@_LIBRARIES ${TARG})
|
||||
target_link_libraries(@PROJECT_NAME@::@PROJECT_NAME@
|
||||
INTERFACE ${TARG})
|
||||
else()
|
||||
set(@PROJECT_NAME@_${COMP}_FOUND 0)
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
find_package_handle_standard_args(
|
||||
@PROJECT_NAME@
|
||||
FOUND_VAR @PROJECT_NAME@_FOUND
|
||||
REQUIRED_VARS @PROJECT_NAME@_ROOT_DIR @PROJECT_NAME@_INCLUDE_DIR @PROJECT_NAME@_LIBRARIES
|
||||
VERSION_VAR @PROJECT_NAME@_VERSION
|
||||
HANDLE_COMPONENTS)
|
||||
@@ -19,7 +19,7 @@ ARG NJOBS="12"
|
||||
RUN zypper update -y && \
|
||||
zypper dist-upgrade -y && \
|
||||
zypper install -y -t pattern devel_basis && \
|
||||
zypper install -y python3-pip openmpi3-devel gcc-c++ git libnuma-devel dpkg-devel rpm-build papi-devel curl wget && \
|
||||
zypper install -y python3-pip openmpi3-devel gcc-c++ git libnuma-devel dpkg-devel rpm-build papi-devel curl wget binutils-gold && \
|
||||
python3 -m pip install 'cmake==3.18.4'
|
||||
|
||||
COPY ./dyninst-source /tmp/dyninst
|
||||
|
||||
Spustitelný soubor
+154
@@ -0,0 +1,154 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
SCRIPT_DIR=$(realpath $(dirname ${BASH_SOURCE[0]}))
|
||||
cd $(dirname ${SCRIPT_DIR})
|
||||
echo -e "Working directory: $(pwd)"
|
||||
|
||||
error-message()
|
||||
{
|
||||
echo -e "\nError! ${@}\n"
|
||||
exit -1
|
||||
}
|
||||
|
||||
verbose-run()
|
||||
{
|
||||
echo -e "\n##### Executing \"${@}\"... #####\n"
|
||||
eval $@
|
||||
}
|
||||
|
||||
if [ -d "$(realpath /tmp)" ]; then
|
||||
: ${TMPDIR:=/tmp}
|
||||
export TMPDIR
|
||||
fi
|
||||
|
||||
: ${EXAMPLE_DIR:=examples}
|
||||
: ${EXAMPLE_NAME:=user-api}
|
||||
: ${SOURCE_DIR:=$(mktemp -t -d omnitrace-test-source-XXXX)}
|
||||
: ${BINARY_DIR:=$(mktemp -t -d omnitrace-test-build-XXXX)}
|
||||
: ${INSTALL_DIR:=$(mktemp -t -d omnitrace-install-XXXX)}
|
||||
: ${INSTALL_SCRIPT:=""}
|
||||
|
||||
usage()
|
||||
{
|
||||
print_option() { printf " --%-10s %-24s %s (default: %s)\n" "${1}" "${2}" "${3}" "${4}"; }
|
||||
echo "Options:"
|
||||
print_option example-name "<NAME>" "Name of the example project" "${EXAMPLE_NAME}"
|
||||
print_option example-dir "<PATH>" "Directory containing example" "${EXAMPLE_DIR}"
|
||||
print_option source-dir "<PATH>" "Location to copy example to" "${SOURCE_DIR}"
|
||||
print_option binary-dir "<PATH>" "Location to build" "${BINARY_DIR}"
|
||||
print_option install-dir "<PATH>" "Location of omnitrace installation" "${INSTALL_DIR}"
|
||||
print_option install-script "<FILEPATH>" "Absolute path to the installer script" ""
|
||||
}
|
||||
|
||||
while [[ $# -gt 0 ]]
|
||||
do
|
||||
ARG=${1}
|
||||
shift
|
||||
|
||||
VAL=""
|
||||
while [[ $# -gt 0 ]]
|
||||
do
|
||||
VAL=${1}
|
||||
shift
|
||||
break
|
||||
done
|
||||
|
||||
if [ -z "${VAL}" ]; then
|
||||
echo "Error! Missing value for argument \"${ARG}\""
|
||||
usage
|
||||
exit -1
|
||||
fi
|
||||
|
||||
case "${ARG}" in
|
||||
--example-name)
|
||||
EXAMPLE_NAME=${VAL}
|
||||
continue
|
||||
;;
|
||||
--example-dir)
|
||||
EXAMPLE_DIR=${VAL}
|
||||
continue
|
||||
;;
|
||||
--source-dir)
|
||||
SOURCE_DIR=${VAL}
|
||||
continue
|
||||
;;
|
||||
--binary-dir)
|
||||
BINARY_DIR=${VAL}
|
||||
continue
|
||||
;;
|
||||
--install-dir)
|
||||
INSTALL_DIR=${VAL}
|
||||
continue
|
||||
;;
|
||||
--install-script)
|
||||
INSTALL_SCRIPT=${VAL}
|
||||
continue
|
||||
;;
|
||||
*)
|
||||
echo -e "Error! Unknown option : ${ARG}"
|
||||
usage
|
||||
exit -1
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ ! -f "${INSTALL_DIR}/include/omnitrace/user.h" ]; then
|
||||
if [ -z "${INSTALL_SCRIPT}" ]; then
|
||||
error-message "Unable to find \"omnitrace/user.h\" in \"${INSTALL_DIR}/include\" and installation script not provided"
|
||||
elif [ ! -f "${INSTALL_SCRIPT}" ]; then
|
||||
error-message "Unable to locate \"${INSTALL_SCRIPT}\" in directory \"${PWD}\""
|
||||
else
|
||||
verbose-run mkdir -p ${INSTALL_DIR}
|
||||
verbose-run $(realpath ${INSTALL_SCRIPT}) --prefix=${INSTALL_DIR} --skip-license --exclude-subdir
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -d ${SOURCE_DIR} ]; then
|
||||
verbose-run mkdir -p ${SOURCE_DIR}
|
||||
fi
|
||||
|
||||
verbose-run cp -v -r ${EXAMPLE_DIR}/${EXAMPLE_NAME}/* ${SOURCE_DIR}/
|
||||
|
||||
verbose-run pushd ${SOURCE_DIR}
|
||||
|
||||
cat << EOF > CMakeLists.txt
|
||||
cmake_minimum_required(VERSION 3.16.0 FATAL_ERROR)
|
||||
|
||||
project(test LANGUAGES C CXX)
|
||||
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
|
||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
find_package(omnitrace REQUIRED COMPONENTS user dl)
|
||||
find_package(Threads REQUIRED)
|
||||
|
||||
get_target_property(LIBS omnitrace::omnitrace INTERFACE_LINK_LIBRARIES)
|
||||
foreach(_LIB \${LIBS})
|
||||
foreach(_VAR LINK_LIBRARIES INCLUDE_DIRECTORIES)
|
||||
get_target_property(_VAL \${_LIB} INTERFACE_\${_VAR})
|
||||
if(_VAL)
|
||||
message(STATUS "\${_LIB} :: \${_VAR} :: \${_VAL}")
|
||||
endif()
|
||||
endforeach()
|
||||
endforeach()
|
||||
|
||||
file(GLOB sources \${CMAKE_CURRENT_LIST_DIR}/*.cpp \${CMAKE_CURRENT_LIST_DIR}/*.c)
|
||||
add_executable(app \${sources})
|
||||
target_link_libraries(app PRIVATE Threads::Threads omnitrace::omnitrace)
|
||||
EOF
|
||||
|
||||
export CMAKE_PREFIX_PATH=${INSTALL_DIR}:${CMAKE_PREFIX_PATH}
|
||||
|
||||
verbose-run find .
|
||||
verbose-run cmake -B ${BINARY_DIR} ${SOURCE_DIR}
|
||||
verbose-run cmake --build ${BINARY_DIR} --target all --parallel 2 -- VERBOSE=1
|
||||
|
||||
set +e
|
||||
|
||||
verbose-run pushd ${BINARY_DIR}
|
||||
verbose-run ./app
|
||||
verbose-run popd
|
||||
verbose-run popd
|
||||
@@ -18,15 +18,16 @@ target_sources(omnitrace-dl-library PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/dl.cpp
|
||||
target_include_directories(
|
||||
omnitrace-dl-library
|
||||
PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../omnitrace-user>)
|
||||
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../omnitrace-user>
|
||||
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>)
|
||||
target_link_libraries(
|
||||
omnitrace-dl-library
|
||||
PUBLIC
|
||||
${dl_LIBRARY}
|
||||
$<BUILD_INTERFACE:omnitrace::common-library>
|
||||
$<BUILD_INTERFACE:omnitrace::omnitrace-compile-definitions>
|
||||
$<IF:$<BOOL:${OMNITRACE_BUILD_STATIC_LIBGCC}>,$<BUILD_INTERFACE:omnitrace::omnitrace-static-libgcc>,>
|
||||
$<IF:$<BOOL:${OMNITRACE_BUILD_STATIC_LIBSTDCXX}>,$<BUILD_INTERFACE:omnitrace::omnitrace-static-libstdcxx>,>
|
||||
$<BUILD_INTERFACE:$<IF:$<BOOL:${OMNITRACE_BUILD_STATIC_LIBGCC}>,omnitrace::omnitrace-static-libgcc,>>
|
||||
$<BUILD_INTERFACE:$<IF:$<BOOL:${OMNITRACE_BUILD_STATIC_LIBSTDCXX}>,omnitrace::omnitrace-static-libstdcxx,>>
|
||||
)
|
||||
|
||||
add_target_cxx_flag_if_avail(omnitrace-dl-library "-ftls-model=global-dynamic")
|
||||
@@ -42,14 +43,10 @@ set_target_properties(
|
||||
|
||||
omnitrace_strip_target(omnitrace-dl-library)
|
||||
|
||||
install(
|
||||
TARGETS omnitrace-dl-library
|
||||
EXPORT omnitrace-dl-library-targets
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
OPTIONAL)
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/dl.hpp
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/omnitrace)
|
||||
|
||||
install(
|
||||
EXPORT omnitrace-dl-library-targets
|
||||
FILE omnitrace-dl-library-targets.cmake
|
||||
NAMESPACE omnitrace::
|
||||
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/cmake/omnitrace)
|
||||
TARGETS omnitrace-dl-library
|
||||
EXPORT omnitrace-library-targets
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
#include "common/join.hpp"
|
||||
|
||||
#include <cassert>
|
||||
#include <gnu/libc-version.h>
|
||||
|
||||
//--------------------------------------------------------------------------------------//
|
||||
|
||||
|
||||
@@ -20,9 +20,17 @@
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
|
||||
#pragma once
|
||||
#ifndef OMNITRACE_DL_HPP_
|
||||
#define OMNITRACE_DL_HPP_ 1
|
||||
|
||||
#if defined(OMNITRACE_DL_SOURCE) && (OMNITRACE_DL_SOURCE > 0)
|
||||
# include "common/defines.h"
|
||||
#else
|
||||
# if !defined(OMNITRACE_PUBLIC_API)
|
||||
# define OMNITRACE_PUBLIC_API
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#include "common/defines.h"
|
||||
#include "omnitrace/user.h"
|
||||
|
||||
#include <atomic>
|
||||
@@ -32,7 +40,6 @@
|
||||
#include <cstring>
|
||||
#include <dlfcn.h>
|
||||
#include <functional>
|
||||
#include <gnu/libc-version.h>
|
||||
#include <iostream>
|
||||
#include <limits>
|
||||
#include <memory>
|
||||
@@ -88,3 +95,5 @@ extern "C"
|
||||
# endif
|
||||
#endif
|
||||
}
|
||||
|
||||
#endif // OMNITRACE_DL_HPP_ 1
|
||||
|
||||
@@ -33,19 +33,10 @@ set_target_properties(
|
||||
|
||||
omnitrace_strip_target(omnitrace-user-library)
|
||||
|
||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/omnitrace/user.h
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/omnitrace)
|
||||
|
||||
install(
|
||||
TARGETS omnitrace-user-library
|
||||
EXPORT omnitrace-user-library-targets
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||
OPTIONAL)
|
||||
|
||||
install(
|
||||
FILES ${CMAKE_CURRENT_SOURCE_DIR}/omnitrace/user.h
|
||||
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/omnitrace
|
||||
OPTIONAL)
|
||||
|
||||
install(
|
||||
EXPORT omnitrace-user-library-targets
|
||||
FILE omnitrace-user-library-targets.cmake
|
||||
NAMESPACE omnitrace::
|
||||
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/cmake/omnitrace)
|
||||
EXPORT omnitrace-library-targets
|
||||
DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
|
||||
@@ -23,10 +23,27 @@
|
||||
#ifndef OMNITRACE_USER_H_
|
||||
#define OMNITRACE_USER_H_ 1
|
||||
|
||||
#define OMNITRACE_ATTRIBUTE(...) __attribute__((__VA_ARGS__))
|
||||
#define OMNITRACE_VISIBILITY(MODE) OMNITRACE_ATTRIBUTE(visibility(MODE))
|
||||
#define OMNITRACE_PUBLIC_API OMNITRACE_VISIBILITY("default")
|
||||
#define OMNITRACE_HIDDEN_API OMNITRACE_VISIBILITY("hidden")
|
||||
#if defined(OMNITRACE_USER_SOURCE) && (OMNITRACE_USER_SOURCE > 0)
|
||||
# if !defined(OMNITRACE_ATTRIBUTE)
|
||||
# define OMNITRACE_ATTRIBUTE(...) __attribute__((__VA_ARGS__))
|
||||
# endif
|
||||
# if !defined(OMNITRACE_VISIBILITY)
|
||||
# define OMNITRACE_VISIBILITY(MODE) OMNITRACE_ATTRIBUTE(visibility(MODE))
|
||||
# endif
|
||||
# if !defined(OMNITRACE_PUBLIC_API)
|
||||
# define OMNITRACE_PUBLIC_API OMNITRACE_VISIBILITY("default")
|
||||
# endif
|
||||
# if !defined(OMNITRACE_HIDDEN_API)
|
||||
# define OMNITRACE_HIDDEN_API OMNITRACE_VISIBILITY("hidden")
|
||||
# endif
|
||||
#else
|
||||
# if !defined(OMNITRACE_PUBLIC_API)
|
||||
# define OMNITRACE_PUBLIC_API
|
||||
# endif
|
||||
# if !defined(OMNITRACE_HIDDEN_API)
|
||||
# define OMNITRACE_HIDDEN_API
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#if defined(__cplusplus)
|
||||
extern "C"
|
||||
|
||||
@@ -20,7 +20,9 @@
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
// SOFTWARE.
|
||||
|
||||
#define OMNITRACE_SOURCE 1
|
||||
#if !defined(OMNITRACE_USER_SOURCE)
|
||||
# define OMNITRACE_USER_SOURCE 1
|
||||
#endif
|
||||
|
||||
#include "omnitrace/user.h"
|
||||
|
||||
|
||||
@@ -13,8 +13,10 @@ target_include_directories(
|
||||
|
||||
target_compile_definitions(
|
||||
omnitrace-interface-library
|
||||
INTERFACE OMNITRACE_MAX_THREADS=${OMNITRACE_MAX_THREADS}
|
||||
$<IF:$<BOOL:${OMNITRACE_CUSTOM_DATA_SOURCE}>,CUSTOM_DATA_SOURCE,>)
|
||||
INTERFACE
|
||||
OMNITRACE_MAX_THREADS=${OMNITRACE_MAX_THREADS}
|
||||
$<BUILD_INTERFACE:$<IF:$<BOOL:${OMNITRACE_CUSTOM_DATA_SOURCE}>,CUSTOM_DATA_SOURCE,>>
|
||||
)
|
||||
|
||||
target_link_libraries(
|
||||
omnitrace-interface-library
|
||||
@@ -30,9 +32,10 @@ target_link_libraries(
|
||||
$<BUILD_INTERFACE:omnitrace::omnitrace-hip>
|
||||
$<BUILD_INTERFACE:omnitrace::omnitrace-roctracer>
|
||||
$<BUILD_INTERFACE:omnitrace::omnitrace-rocm-smi>
|
||||
$<IF:$<BOOL:${OMNITRACE_BUILD_STATIC_LIBGCC}>,$<BUILD_INTERFACE:omnitrace::omnitrace-static-libgcc>,>
|
||||
$<IF:$<BOOL:${OMNITRACE_BUILD_STATIC_LIBSTDCXX}>,$<BUILD_INTERFACE:omnitrace::omnitrace-static-libstdcxx>,>
|
||||
$<IF:$<BOOL:${OMNITRACE_USE_SANITIZER}>,omnitrace::omnitrace-sanitizer,>)
|
||||
$<BUILD_INTERFACE:$<IF:$<BOOL:${OMNITRACE_BUILD_STATIC_LIBGCC}>,omnitrace::omnitrace-static-libgcc,>>
|
||||
$<BUILD_INTERFACE:$<IF:$<BOOL:${OMNITRACE_BUILD_STATIC_LIBSTDCXX}>,omnitrace::omnitrace-static-libstdcxx,>>
|
||||
$<BUILD_INTERFACE:$<IF:$<BOOL:${OMNITRACE_USE_SANITIZER}>,omnitrace::omnitrace-sanitizer,>>
|
||||
)
|
||||
|
||||
# ------------------------------------------------------------------------------#
|
||||
#
|
||||
|
||||
Odkázat v novém úkolu
Zablokovat Uživatele