Rename hosttrace to omnitrace (#18)
This commit is contained in:
committed by
GitHub
parent
752424efc2
commit
39cf760a4e
+74
-74
@@ -12,16 +12,16 @@ include(Compilers)
|
||||
include(FindPackageHandleStandardArgs)
|
||||
include(MacroUtilities)
|
||||
|
||||
option(HOSTTRACE_BUILD_DEVELOPER "Extra build flags for development like -Werror" OFF)
|
||||
option(HOSTTRACE_BUILD_EXTRA_OPTIMIZATIONS "Extra optimization flags" OFF)
|
||||
option(HOSTTRACE_BUILD_LTO "Build with link-time optimization" OFF)
|
||||
option(HOSTTRACE_USE_COMPILE_TIMING "" OFF)
|
||||
option(HOSTTRACE_USE_COVERAGE "" OFF)
|
||||
option(HOSTTRACE_USE_SANITIZER "" OFF)
|
||||
option(OMNITRACE_BUILD_DEVELOPER "Extra build flags for development like -Werror" OFF)
|
||||
option(OMNITRACE_BUILD_EXTRA_OPTIMIZATIONS "Extra optimization flags" OFF)
|
||||
option(OMNITRACE_BUILD_LTO "Build with link-time optimization" OFF)
|
||||
option(OMNITRACE_USE_COMPILE_TIMING "" OFF)
|
||||
option(OMNITRACE_USE_COVERAGE "" OFF)
|
||||
option(OMNITRACE_USE_SANITIZER "" OFF)
|
||||
|
||||
target_compile_definitions(hosttrace-compile-options INTERFACE $<$<CONFIG:DEBUG>:DEBUG>)
|
||||
target_compile_definitions(omnitrace-compile-options INTERFACE $<$<CONFIG:DEBUG>:DEBUG>)
|
||||
|
||||
set(HOSTTRACE_SANITIZER_TYPE
|
||||
set(OMNITRACE_SANITIZER_TYPE
|
||||
"leak"
|
||||
CACHE STRING "Sanitizer type")
|
||||
|
||||
@@ -46,7 +46,7 @@ find_package_handle_standard_args(rt-library REQUIRED_VARS rt_LIBRARY)
|
||||
# find_package_handle_standard_args(dw-library REQUIRED_VARS dw_LIBRARY)
|
||||
|
||||
if(dl_LIBRARY)
|
||||
target_link_libraries(hosttrace-compile-options INTERFACE ${dl_LIBRARY})
|
||||
target_link_libraries(omnitrace-compile-options INTERFACE ${dl_LIBRARY})
|
||||
endif()
|
||||
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
@@ -68,56 +68,56 @@ endif()
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
# extra flags for debug information in debug or optimized binaries
|
||||
#
|
||||
hosttrace_add_interface_library(
|
||||
hosttrace-compile-debuginfo
|
||||
omnitrace_add_interface_library(
|
||||
omnitrace-compile-debuginfo
|
||||
"Attempts to set best flags for more expressive profiling information in debug or optimized binaries"
|
||||
)
|
||||
|
||||
add_target_flag_if_avail(hosttrace-compile-debuginfo "-g" "-fno-omit-frame-pointer"
|
||||
add_target_flag_if_avail(omnitrace-compile-debuginfo "-g" "-fno-omit-frame-pointer"
|
||||
"-fno-optimize-sibling-calls")
|
||||
|
||||
if(CMAKE_CUDA_COMPILER_IS_NVIDIA)
|
||||
add_target_cuda_flag(hosttrace-compile-debuginfo "-lineinfo")
|
||||
add_target_cuda_flag(omnitrace-compile-debuginfo "-lineinfo")
|
||||
endif()
|
||||
|
||||
target_compile_options(
|
||||
hosttrace-compile-debuginfo
|
||||
omnitrace-compile-debuginfo
|
||||
INTERFACE $<$<COMPILE_LANGUAGE:C>:$<$<C_COMPILER_ID:GNU>:-rdynamic>>
|
||||
$<$<COMPILE_LANGUAGE:CXX>:$<$<CXX_COMPILER_ID:GNU>:-rdynamic>>)
|
||||
|
||||
if(NOT APPLE)
|
||||
target_link_options(hosttrace-compile-debuginfo INTERFACE
|
||||
target_link_options(omnitrace-compile-debuginfo INTERFACE
|
||||
$<$<CXX_COMPILER_ID:GNU>:-rdynamic>)
|
||||
endif()
|
||||
|
||||
if(CMAKE_CUDA_COMPILER_IS_NVIDIA)
|
||||
target_compile_options(
|
||||
hosttrace-compile-debuginfo
|
||||
omnitrace-compile-debuginfo
|
||||
INTERFACE
|
||||
$<$<COMPILE_LANGUAGE:CUDA>:$<$<CXX_COMPILER_ID:GNU>:-Xcompiler=-rdynamic>>)
|
||||
endif()
|
||||
|
||||
if(dl_LIBRARY)
|
||||
target_link_libraries(hosttrace-compile-debuginfo INTERFACE ${dl_LIBRARY})
|
||||
target_link_libraries(omnitrace-compile-debuginfo INTERFACE ${dl_LIBRARY})
|
||||
endif()
|
||||
|
||||
if(rt_LIBRARY)
|
||||
target_link_libraries(hosttrace-compile-debuginfo INTERFACE ${rt_LIBRARY})
|
||||
target_link_libraries(omnitrace-compile-debuginfo INTERFACE ${rt_LIBRARY})
|
||||
endif()
|
||||
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
# non-debug optimizations
|
||||
#
|
||||
hosttrace_add_interface_library(hosttrace-compile-extra "Extra optimization flags")
|
||||
if(NOT HOSTTRACE_USE_COVERAGE)
|
||||
omnitrace_add_interface_library(omnitrace-compile-extra "Extra optimization flags")
|
||||
if(NOT OMNITRACE_USE_COVERAGE)
|
||||
add_target_flag_if_avail(
|
||||
hosttrace-compile-extra "-finline-functions" "-funroll-loops" "-ftree-vectorize"
|
||||
omnitrace-compile-extra "-finline-functions" "-funroll-loops" "-ftree-vectorize"
|
||||
"-ftree-loop-optimize" "-ftree-loop-vectorize")
|
||||
endif()
|
||||
|
||||
if(NOT "${CMAKE_BUILD_TYPE}" STREQUAL "Debug" AND HOSTTRACE_BUILD_EXTRA_OPTIMIZATIONS)
|
||||
target_link_libraries(hosttrace-compile-options
|
||||
INTERFACE $<BUILD_INTERFACE:hosttrace-compile-extra>)
|
||||
if(NOT "${CMAKE_BUILD_TYPE}" STREQUAL "Debug" AND OMNITRACE_BUILD_EXTRA_OPTIMIZATIONS)
|
||||
target_link_libraries(omnitrace-compile-options
|
||||
INTERFACE $<BUILD_INTERFACE:omnitrace-compile-extra>)
|
||||
add_flag_if_avail(
|
||||
"-fno-signaling-nans" "-fno-trapping-math" "-fno-signed-zeros"
|
||||
"-ffinite-math-only" "-fno-math-errno" "-fpredictive-commoning"
|
||||
@@ -130,55 +130,55 @@ endif()
|
||||
#
|
||||
add_cxx_flag_if_avail("-faligned-new")
|
||||
|
||||
hosttrace_save_variables(FLTO VARIABLES CMAKE_CXX_FLAGS)
|
||||
omnitrace_save_variables(FLTO VARIABLES CMAKE_CXX_FLAGS)
|
||||
set(CMAKE_CXX_FLAGS "-flto=thin ${CMAKE_CXX_FLAGS}")
|
||||
|
||||
hosttrace_add_interface_library(hosttrace-lto "Adds link-time-optimization flags")
|
||||
add_target_flag_if_avail(hosttrace-lto "-flto=thin")
|
||||
if(NOT cxx_hosttrace_lto_flto_thin)
|
||||
omnitrace_add_interface_library(omnitrace-lto "Adds link-time-optimization flags")
|
||||
add_target_flag_if_avail(omnitrace-lto "-flto=thin")
|
||||
if(NOT cxx_omnitrace_lto_flto_thin)
|
||||
set(CMAKE_CXX_FLAGS "-flto ${CMAKE_CXX_FLAGS}")
|
||||
add_target_flag_if_avail(hosttrace-lto "-flto")
|
||||
if(NOT cxx_hosttrace_lto_flto)
|
||||
set(HOSTTRACE_BUILD_LTO OFF)
|
||||
add_target_flag_if_avail(omnitrace-lto "-flto")
|
||||
if(NOT cxx_omnitrace_lto_flto)
|
||||
set(OMNITRACE_BUILD_LTO OFF)
|
||||
else()
|
||||
target_link_options(hosttrace-lto INTERFACE -flto)
|
||||
target_link_options(omnitrace-lto INTERFACE -flto)
|
||||
endif()
|
||||
else()
|
||||
target_link_options(hosttrace-lto INTERFACE -flto=thin)
|
||||
target_link_options(omnitrace-lto INTERFACE -flto=thin)
|
||||
endif()
|
||||
|
||||
if(HOSTTRACE_BUILD_LTO)
|
||||
target_link_libraries(hosttrace-compile-options INTERFACE hosttrace::hosttrace-lto)
|
||||
if(OMNITRACE_BUILD_LTO)
|
||||
target_link_libraries(omnitrace-compile-options INTERFACE omnitrace::omnitrace-lto)
|
||||
endif()
|
||||
|
||||
hosttrace_restore_variables(FLTO VARIABLES CMAKE_CXX_FLAGS)
|
||||
omnitrace_restore_variables(FLTO VARIABLES CMAKE_CXX_FLAGS)
|
||||
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
# print compilation timing reports (Clang compiler)
|
||||
#
|
||||
hosttrace_add_interface_library(
|
||||
hosttrace-compile-timing
|
||||
omnitrace_add_interface_library(
|
||||
omnitrace-compile-timing
|
||||
"Adds compiler flags which report compilation timing metrics")
|
||||
if(CMAKE_CXX_COMPILER_IS_CLANG)
|
||||
add_target_flag_if_avail(hosttrace-compile-timing "-ftime-trace")
|
||||
if(NOT cxx_hosttrace_compile_timing_ftime_trace)
|
||||
add_target_flag_if_avail(hosttrace-compile-timing "-ftime-report")
|
||||
add_target_flag_if_avail(omnitrace-compile-timing "-ftime-trace")
|
||||
if(NOT cxx_omnitrace_compile_timing_ftime_trace)
|
||||
add_target_flag_if_avail(omnitrace-compile-timing "-ftime-report")
|
||||
endif()
|
||||
else()
|
||||
add_target_flag_if_avail(hosttrace-compile-timing "-ftime-report")
|
||||
add_target_flag_if_avail(omnitrace-compile-timing "-ftime-report")
|
||||
endif()
|
||||
|
||||
if(HOSTTRACE_USE_COMPILE_TIMING)
|
||||
target_link_libraries(hosttrace-compile-options INTERFACE hosttrace-compile-timing)
|
||||
if(OMNITRACE_USE_COMPILE_TIMING)
|
||||
target_link_libraries(omnitrace-compile-options INTERFACE omnitrace-compile-timing)
|
||||
endif()
|
||||
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
# developer build flags
|
||||
#
|
||||
hosttrace_add_interface_library(hosttrace-develop-options "Adds developer compiler flags")
|
||||
if(HOSTTRACE_BUILD_DEVELOPER)
|
||||
omnitrace_add_interface_library(omnitrace-develop-options "Adds developer compiler flags")
|
||||
if(OMNITRACE_BUILD_DEVELOPER)
|
||||
add_target_flag_if_avail(
|
||||
hosttrace-develop-options
|
||||
omnitrace-develop-options
|
||||
# "-Wabi"
|
||||
"-Wdouble-promotion" "-Wshadow" "-Wextra" "-Wpedantic" "-Werror" "/showIncludes")
|
||||
endif()
|
||||
@@ -186,13 +186,13 @@ endif()
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
# visibility build flags
|
||||
#
|
||||
hosttrace_add_interface_library(hosttrace-default-visibility
|
||||
omnitrace_add_interface_library(omnitrace-default-visibility
|
||||
"Adds -fvisibility=default compiler flag")
|
||||
hosttrace_add_interface_library(hosttrace-hidden-visibility
|
||||
omnitrace_add_interface_library(omnitrace-hidden-visibility
|
||||
"Adds -fvisibility=hidden compiler flag")
|
||||
|
||||
add_target_flag_if_avail(hosttrace-default-visibility "-fvisibility=default")
|
||||
add_target_flag_if_avail(hosttrace-hidden-visibility "-fvisibility=hidden"
|
||||
add_target_flag_if_avail(omnitrace-default-visibility "-fvisibility=default")
|
||||
add_target_flag_if_avail(omnitrace-hidden-visibility "-fvisibility=hidden"
|
||||
"-fvisibility-inlines-hidden")
|
||||
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
@@ -208,7 +208,7 @@ endif()
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
# sanitizer
|
||||
#
|
||||
set(HOSTTRACE_SANITIZER_TYPES
|
||||
set(OMNITRACE_SANITIZER_TYPES
|
||||
address
|
||||
memory
|
||||
thread
|
||||
@@ -218,47 +218,47 @@ set(HOSTTRACE_SANITIZER_TYPES
|
||||
null
|
||||
bounds
|
||||
alignment)
|
||||
set_property(CACHE HOSTTRACE_SANITIZER_TYPE PROPERTY STRINGS
|
||||
"${HOSTTRACE_SANITIZER_TYPES}")
|
||||
hosttrace_add_interface_library(hosttrace-sanitizer-compile-options
|
||||
set_property(CACHE OMNITRACE_SANITIZER_TYPE PROPERTY STRINGS
|
||||
"${OMNITRACE_SANITIZER_TYPES}")
|
||||
omnitrace_add_interface_library(omnitrace-sanitizer-compile-options
|
||||
"Adds compiler flags for sanitizers")
|
||||
hosttrace_add_interface_library(
|
||||
hosttrace-sanitizer
|
||||
"Adds compiler flags to enable ${HOSTTRACE_SANITIZER_TYPE} sanitizer (-fsanitizer=${HOSTTRACE_SANITIZER_TYPE})"
|
||||
omnitrace_add_interface_library(
|
||||
omnitrace-sanitizer
|
||||
"Adds compiler flags to enable ${OMNITRACE_SANITIZER_TYPE} sanitizer (-fsanitizer=${OMNITRACE_SANITIZER_TYPE})"
|
||||
)
|
||||
|
||||
set(COMMON_SANITIZER_FLAGS "-fno-optimize-sibling-calls" "-fno-omit-frame-pointer"
|
||||
"-fno-inline-functions")
|
||||
add_target_flag(hosttrace-sanitizer-compile-options ${COMMON_SANITIZER_FLAGS})
|
||||
add_target_flag(omnitrace-sanitizer-compile-options ${COMMON_SANITIZER_FLAGS})
|
||||
|
||||
foreach(_TYPE ${HOSTTRACE_SANITIZER_TYPES})
|
||||
foreach(_TYPE ${OMNITRACE_SANITIZER_TYPES})
|
||||
set(_FLAG "-fsanitize=${_TYPE}")
|
||||
hosttrace_add_interface_library(
|
||||
hosttrace-${_TYPE}-sanitizer
|
||||
omnitrace_add_interface_library(
|
||||
omnitrace-${_TYPE}-sanitizer
|
||||
"Adds compiler flags to enable ${_TYPE} sanitizer (${_FLAG})")
|
||||
add_target_flag(hosttrace-${_TYPE}-sanitizer ${_FLAG})
|
||||
target_link_libraries(hosttrace-${_TYPE}-sanitizer
|
||||
INTERFACE hosttrace-sanitizer-compile-options)
|
||||
set_property(TARGET hosttrace-${_TYPE}-sanitizer
|
||||
add_target_flag(omnitrace-${_TYPE}-sanitizer ${_FLAG})
|
||||
target_link_libraries(omnitrace-${_TYPE}-sanitizer
|
||||
INTERFACE omnitrace-sanitizer-compile-options)
|
||||
set_property(TARGET omnitrace-${_TYPE}-sanitizer
|
||||
PROPERTY INTERFACE_LINK_OPTIONS ${_FLAG} ${COMMON_SANITIZER_FLAGS})
|
||||
endforeach()
|
||||
|
||||
unset(_FLAG)
|
||||
unset(COMMON_SANITIZER_FLAGS)
|
||||
|
||||
if(HOSTTRACE_USE_SANITIZER)
|
||||
foreach(_TYPE ${HOSTTRACE_SANITIZER_TYPE})
|
||||
if(TARGET hosttrace-${_TYPE}-sanitizer)
|
||||
target_link_libraries(hosttrace-sanitizer
|
||||
INTERFACE hosttrace-${_TYPE}-sanitizer)
|
||||
if(OMNITRACE_USE_SANITIZER)
|
||||
foreach(_TYPE ${OMNITRACE_SANITIZER_TYPE})
|
||||
if(TARGET omnitrace-${_TYPE}-sanitizer)
|
||||
target_link_libraries(omnitrace-sanitizer
|
||||
INTERFACE omnitrace-${_TYPE}-sanitizer)
|
||||
else()
|
||||
message(
|
||||
FATAL_ERROR "Error! Target 'hosttrace-${_TYPE}-sanitizer' does not exist!"
|
||||
FATAL_ERROR "Error! Target 'omnitrace-${_TYPE}-sanitizer' does not exist!"
|
||||
)
|
||||
endif()
|
||||
endforeach()
|
||||
else()
|
||||
set(HOSTTRACE_USE_SANITIZER OFF)
|
||||
set(OMNITRACE_USE_SANITIZER OFF)
|
||||
endif()
|
||||
|
||||
if(MSVC)
|
||||
@@ -274,5 +274,5 @@ endif()
|
||||
get_property(LANGUAGES GLOBAL PROPERTY ENABLED_LANGUAGES)
|
||||
|
||||
if(NOT APPLE OR "$ENV{CONDA_PYTHON_EXE}" STREQUAL "")
|
||||
add_user_flags(hosttrace-compile-options "CXX")
|
||||
add_user_flags(omnitrace-compile-options "CXX")
|
||||
endif()
|
||||
|
||||
+22
-22
@@ -31,7 +31,7 @@ if("${LIBNAME}" STREQUAL "")
|
||||
string(TOLOWER "${PROJECT_NAME}" LIBNAME)
|
||||
endif()
|
||||
|
||||
hosttrace_add_interface_library(
|
||||
omnitrace_add_interface_library(
|
||||
${LIBNAME}-compile-options "Adds the standard set of compiler flags used by timemory")
|
||||
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
@@ -87,12 +87,12 @@ endmacro(set_no_duplicates _VAR)
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
# call before running check_{c,cxx}_compiler_flag
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
macro(hosttrace_begin_flag_check)
|
||||
if(HOSTTRACE_QUIET_CONFIG)
|
||||
macro(omnitrace_begin_flag_check)
|
||||
if(OMNITRACE_QUIET_CONFIG)
|
||||
if(NOT DEFINED CMAKE_REQUIRED_QUIET)
|
||||
set(CMAKE_REQUIRED_QUIET OFF)
|
||||
endif()
|
||||
hosttrace_save_variables(FLAG_CHECK VARIABLES CMAKE_REQUIRED_QUIET)
|
||||
omnitrace_save_variables(FLAG_CHECK VARIABLES CMAKE_REQUIRED_QUIET)
|
||||
set(CMAKE_REQUIRED_QUIET ON)
|
||||
endif()
|
||||
endmacro()
|
||||
@@ -100,9 +100,9 @@ endmacro()
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
# call after running check_{c,cxx}_compiler_flag
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
macro(hosttrace_end_flag_check)
|
||||
if(HOSTTRACE_QUIET_CONFIG)
|
||||
hosttrace_restore_variables(FLAG_CHECK VARIABLES CMAKE_REQUIRED_QUIET)
|
||||
macro(omnitrace_end_flag_check)
|
||||
if(OMNITRACE_QUIET_CONFIG)
|
||||
omnitrace_restore_variables(FLAG_CHECK VARIABLES CMAKE_REQUIRED_QUIET)
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
@@ -117,7 +117,7 @@ endmacro()
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
macro(ADD_TARGET_C_FLAG _TARG)
|
||||
string(REPLACE "-" "_" _MAKE_TARG "${_TARG}")
|
||||
list(APPEND HOSTTRACE_MAKE_TARGETS ${_MAKE_TARG})
|
||||
list(APPEND OMNITRACE_MAKE_TARGETS ${_MAKE_TARG})
|
||||
|
||||
target_compile_options(${_TARG} INTERFACE $<$<COMPILE_LANGUAGE:C>:${ARGN}>)
|
||||
list(APPEND ${_MAKE_TARG}_C_FLAGS ${ARGN})
|
||||
@@ -151,7 +151,7 @@ endmacro()
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
macro(ADD_C_FLAG_IF_AVAIL FLAG)
|
||||
set(_ENABLE ON)
|
||||
if(DEFINED HOSTTRACE_BUILD_C AND NOT HOSTTRACE_BUILD_C)
|
||||
if(DEFINED OMNITRACE_BUILD_C AND NOT OMNITRACE_BUILD_C)
|
||||
set(_ENABLE OFF)
|
||||
endif()
|
||||
set(_TARG)
|
||||
@@ -166,17 +166,17 @@ macro(ADD_C_FLAG_IF_AVAIL FLAG)
|
||||
string(REPLACE "-" "_" FLAG_NAME "${FLAG_NAME}")
|
||||
string(REPLACE " " "_" FLAG_NAME "${FLAG_NAME}")
|
||||
string(REPLACE "=" "_" FLAG_NAME "${FLAG_NAME}")
|
||||
if(NOT HOSTTRACE_BUILD_C)
|
||||
if(NOT OMNITRACE_BUILD_C)
|
||||
set(${FLAG_NAME} ON)
|
||||
else()
|
||||
hosttrace_begin_flag_check()
|
||||
omnitrace_begin_flag_check()
|
||||
check_c_compiler_flag("-Werror" c_werror)
|
||||
if(c_werror)
|
||||
check_c_compiler_flag("${FLAG} -Werror" ${FLAG_NAME})
|
||||
else()
|
||||
check_c_compiler_flag("${FLAG}" ${FLAG_NAME})
|
||||
endif()
|
||||
hosttrace_end_flag_check()
|
||||
omnitrace_end_flag_check()
|
||||
if(${FLAG_NAME})
|
||||
if("${_LTARG}" STREQUAL "")
|
||||
list(APPEND ${PROJECT_NAME}_C_FLAGS "${FLAG}")
|
||||
@@ -212,7 +212,7 @@ endmacro()
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
macro(ADD_TARGET_CXX_FLAG _TARG)
|
||||
string(REPLACE "-" "_" _MAKE_TARG "${_TARG}")
|
||||
list(APPEND HOSTTRACE_MAKE_TARGETS ${_MAKE_TARG})
|
||||
list(APPEND OMNITRACE_MAKE_TARGETS ${_MAKE_TARG})
|
||||
|
||||
target_compile_options(${_TARG} INTERFACE $<$<COMPILE_LANGUAGE:CXX>:${ARGN}>)
|
||||
list(APPEND ${_MAKE_TARG}_CXX_FLAGS ${ARGN})
|
||||
@@ -267,14 +267,14 @@ macro(ADD_CXX_FLAG_IF_AVAIL FLAG)
|
||||
string(REPLACE " " "_" FLAG_NAME "${FLAG_NAME}")
|
||||
string(REPLACE "=" "_" FLAG_NAME "${FLAG_NAME}")
|
||||
string(REPLACE "/" "_" FLAG_NAME "${FLAG_NAME}")
|
||||
hosttrace_begin_flag_check()
|
||||
omnitrace_begin_flag_check()
|
||||
check_cxx_compiler_flag("-Werror" cxx_werror)
|
||||
if(cxx_werror)
|
||||
check_cxx_compiler_flag("${FLAG} -Werror" ${FLAG_NAME})
|
||||
else()
|
||||
check_cxx_compiler_flag("${FLAG}" ${FLAG_NAME})
|
||||
endif()
|
||||
hosttrace_end_flag_check()
|
||||
omnitrace_end_flag_check()
|
||||
if(${FLAG_NAME})
|
||||
if("${_LTARG}" STREQUAL "")
|
||||
list(APPEND ${PROJECT_NAME}_CXX_FLAGS "${FLAG}")
|
||||
@@ -347,7 +347,7 @@ endmacro()
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
# check flag
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
function(HOSTTRACE_TARGET_FLAG _TARG_TARGET)
|
||||
function(OMNITRACE_TARGET_FLAG _TARG_TARGET)
|
||||
cmake_parse_arguments(_TARG "IF_AVAIL" "MODE" "FLAGS;LANGUAGES" ${ARGN})
|
||||
|
||||
if(NOT _TARG_MODE)
|
||||
@@ -376,14 +376,14 @@ function(HOSTTRACE_TARGET_FLAG _TARG_TARGET)
|
||||
string(REPLACE "-" "_" FLAG_NAME "${FLAG_NAME}")
|
||||
string(REPLACE " " "_" FLAG_NAME "${FLAG_NAME}")
|
||||
string(REPLACE "=" "_" FLAG_NAME "${FLAG_NAME}")
|
||||
hosttrace_begin_flag_check()
|
||||
omnitrace_begin_flag_check()
|
||||
check_c_compiler_flag("-Werror" c_werror)
|
||||
if(c_werror)
|
||||
check_c_compiler_flag("${FLAG} -Werror" ${FLAG_NAME})
|
||||
else()
|
||||
check_c_compiler_flag("${FLAG}" ${FLAG_NAME})
|
||||
endif()
|
||||
hosttrace_end_flag_check()
|
||||
omnitrace_end_flag_check()
|
||||
if(${FLAG_NAME})
|
||||
target_compile_options(${_TARG_TARGET} ${_TARG_MODE}
|
||||
$<$<COMPILE_LANGUAGE:${_LANG}>:${_FLAG}>)
|
||||
@@ -394,14 +394,14 @@ function(HOSTTRACE_TARGET_FLAG _TARG_TARGET)
|
||||
string(REPLACE "-" "_" FLAG_NAME "${FLAG_NAME}")
|
||||
string(REPLACE " " "_" FLAG_NAME "${FLAG_NAME}")
|
||||
string(REPLACE "=" "_" FLAG_NAME "${FLAG_NAME}")
|
||||
hosttrace_begin_flag_check()
|
||||
omnitrace_begin_flag_check()
|
||||
check_cxx_compiler_flag("-Werror" cxx_werror)
|
||||
if(cxx_werror)
|
||||
check_cxx_compiler_flag("${FLAG} -Werror" ${FLAG_NAME})
|
||||
else()
|
||||
check_cxx_compiler_flag("${FLAG}" ${FLAG_NAME})
|
||||
endif()
|
||||
hosttrace_end_flag_check()
|
||||
omnitrace_end_flag_check()
|
||||
if(${FLAG_NAME})
|
||||
target_compile_options(${_TARG_TARGET} ${_TARG_MODE}
|
||||
$<$<COMPILE_LANGUAGE:${_LANG}>:${_FLAG}>)
|
||||
@@ -424,7 +424,7 @@ endfunction()
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
macro(ADD_TARGET_CUDA_FLAG _TARG)
|
||||
string(REPLACE "-" "_" _MAKE_TARG "${_TARG}")
|
||||
list(APPEND HOSTTRACE_MAKE_TARGETS ${_MAKE_TARG})
|
||||
list(APPEND OMNITRACE_MAKE_TARGETS ${_MAKE_TARG})
|
||||
|
||||
target_compile_options(${_TARG} INTERFACE $<$<COMPILE_LANGUAGE:CUDA>:${ARGN}>)
|
||||
list(APPEND ${_MAKE_TARG}_CUDA_FLAGS ${ARGN})
|
||||
@@ -455,7 +455,7 @@ endfunction()
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
# add compiler definition
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
function(HOSTTRACE_TARGET_COMPILE_DEFINITIONS _TARG _VIS)
|
||||
function(OMNITRACE_TARGET_COMPILE_DEFINITIONS _TARG _VIS)
|
||||
foreach(_DEF ${ARGN})
|
||||
target_compile_definitions(${_TARG} ${_VIS} $<$<COMPILE_LANGUAGE:CXX>:${_DEF}>)
|
||||
if(CMAKE_CUDA_COMPILER_IS_NVIDIA)
|
||||
|
||||
@@ -25,7 +25,7 @@ if(DYNINST_BUILD_ELFUTILS)
|
||||
endif()
|
||||
|
||||
# Debian package specific variables
|
||||
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://github.com/AARInternal/hosttrace-dyninst")
|
||||
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "https://github.com/AARInternal/omnitrace-dyninst")
|
||||
if(DEFINED ENV{CPACK_DEBIAN_PACKAGE_RELEASE})
|
||||
set(CPACK_DEBIAN_PACKAGE_RELEASE $ENV{CPACK_DEBIAN_PACKAGE_RELEASE})
|
||||
else()
|
||||
|
||||
+11
-11
@@ -7,14 +7,14 @@ include_guard(DIRECTORY)
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
|
||||
# clang-tidy
|
||||
macro(HOSTTRACE_ACTIVATE_CLANG_TIDY)
|
||||
if(HOSTTRACE_USE_CLANG_TIDY)
|
||||
macro(OMNITRACE_ACTIVATE_CLANG_TIDY)
|
||||
if(OMNITRACE_USE_CLANG_TIDY)
|
||||
find_program(CLANG_TIDY_COMMAND NAMES clang-tidy)
|
||||
hosttrace_add_feature(CLANG_TIDY_COMMAND "Path to clang-tidy command")
|
||||
omnitrace_add_feature(CLANG_TIDY_COMMAND "Path to clang-tidy command")
|
||||
if(NOT CLANG_TIDY_COMMAND)
|
||||
timemory_message(
|
||||
WARNING "HOSTTRACE_USE_CLANG_TIDY is ON but clang-tidy is not found!")
|
||||
set(HOSTTRACE_USE_CLANG_TIDY OFF)
|
||||
WARNING "OMNITRACE_USE_CLANG_TIDY is ON but clang-tidy is not found!")
|
||||
set(OMNITRACE_USE_CLANG_TIDY OFF)
|
||||
else()
|
||||
set(CMAKE_CXX_CLANG_TIDY ${CLANG_TIDY_COMMAND})
|
||||
|
||||
@@ -37,22 +37,22 @@ endmacro()
|
||||
#
|
||||
# ------------------------------------------------------------------------------#
|
||||
|
||||
find_program(HOSTTRACE_CLANG_FORMAT_EXE NAMES clang-format-11 clang-format-mp-11
|
||||
find_program(OMNITRACE_CLANG_FORMAT_EXE NAMES clang-format-11 clang-format-mp-11
|
||||
clang-format)
|
||||
|
||||
if(HOSTTRACE_CLANG_FORMAT_EXE)
|
||||
if(OMNITRACE_CLANG_FORMAT_EXE)
|
||||
file(GLOB_RECURSE sources ${PROJECT_SOURCE_DIR}/src/*.cpp)
|
||||
file(GLOB_RECURSE headers ${PROJECT_SOURCE_DIR}/include/*.hpp)
|
||||
file(GLOB_RECURSE examples ${PROJECT_SOURCE_DIR}/examples/*.cpp
|
||||
${PROJECT_SOURCE_DIR}/examples/*.hpp)
|
||||
add_custom_target(
|
||||
format-hosttrace
|
||||
${HOSTTRACE_CLANG_FORMAT_EXE} -i ${sources} ${headers} ${examples}
|
||||
COMMENT "Running C++ formatter ${HOSTTRACE_CLANG_FORMAT_EXE}...")
|
||||
format-omnitrace
|
||||
${OMNITRACE_CLANG_FORMAT_EXE} -i ${sources} ${headers} ${examples}
|
||||
COMMENT "Running C++ formatter ${OMNITRACE_CLANG_FORMAT_EXE}...")
|
||||
if(NOT TARGET format)
|
||||
add_custom_target(format)
|
||||
endif()
|
||||
add_dependencies(format format-hosttrace)
|
||||
add_dependencies(format format-omnitrace)
|
||||
else()
|
||||
message(
|
||||
AUTHOR_WARNING
|
||||
|
||||
+43
-43
@@ -12,19 +12,19 @@ include(CMakeDependentOption)
|
||||
include(CMakeParseArguments)
|
||||
|
||||
# -----------------------------------------------------------------------
|
||||
# message which handles HOSTTRACE_QUIET_CONFIG settings
|
||||
# message which handles OMNITRACE_QUIET_CONFIG settings
|
||||
# -----------------------------------------------------------------------
|
||||
#
|
||||
function(HOSTTRACE_MESSAGE TYPE)
|
||||
if(NOT HOSTTRACE_QUIET_CONFIG)
|
||||
message(${TYPE} "[hosttrace] ${ARGN}")
|
||||
function(OMNITRACE_MESSAGE TYPE)
|
||||
if(NOT OMNITRACE_QUIET_CONFIG)
|
||||
message(${TYPE} "[omnitrace] ${ARGN}")
|
||||
endif()
|
||||
endfunction()
|
||||
|
||||
# -----------------------------------------------------------------------
|
||||
# Save a set of variables with the given prefix
|
||||
# -----------------------------------------------------------------------
|
||||
macro(HOSTTRACE_SAVE_VARIABLES _PREFIX)
|
||||
macro(OMNITRACE_SAVE_VARIABLES _PREFIX)
|
||||
# parse args
|
||||
cmake_parse_arguments(
|
||||
SAVE
|
||||
@@ -58,7 +58,7 @@ endmacro()
|
||||
# -----------------------------------------------------------------------
|
||||
# Restore a set of variables with the given prefix
|
||||
# -----------------------------------------------------------------------
|
||||
macro(HOSTTRACE_RESTORE_VARIABLES _PREFIX)
|
||||
macro(OMNITRACE_RESTORE_VARIABLES _PREFIX)
|
||||
# parse args
|
||||
cmake_parse_arguments(
|
||||
RESTORE
|
||||
@@ -92,10 +92,10 @@ macro(HOSTTRACE_RESTORE_VARIABLES _PREFIX)
|
||||
endmacro()
|
||||
|
||||
# -----------------------------------------------------------------------
|
||||
# function - hosttrace_capitalize - make a string capitalized (first letter is capital)
|
||||
# function - omnitrace_capitalize - make a string capitalized (first letter is capital)
|
||||
# usage: capitalize("SHARED" CShared) message(STATUS "-- CShared is \"${CShared}\"") $ --
|
||||
# CShared is "Shared"
|
||||
function(HOSTTRACE_CAPITALIZE str var)
|
||||
function(OMNITRACE_CAPITALIZE str var)
|
||||
# make string lower
|
||||
string(TOLOWER "${str}" str)
|
||||
string(SUBSTRING "${str}" 0 1 _first)
|
||||
@@ -108,14 +108,14 @@ function(HOSTTRACE_CAPITALIZE str var)
|
||||
endfunction()
|
||||
|
||||
# ------------------------------------------------------------------------------#
|
||||
# function add_hosttrace_test_target()
|
||||
# function add_omnitrace_test_target()
|
||||
#
|
||||
# Creates a target which runs ctest but depends on all the tests being built.
|
||||
#
|
||||
function(ADD_HOSTTRACE_TEST_TARGET)
|
||||
if(NOT TARGET hosttrace-test)
|
||||
function(ADD_OMNITRACE_TEST_TARGET)
|
||||
if(NOT TARGET omnitrace-test)
|
||||
add_custom_target(
|
||||
hosttrace-test
|
||||
omnitrace-test
|
||||
COMMAND ${CMAKE_COMMAND} --build ${PROJECT_BINARY_DIR} --target test
|
||||
WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
|
||||
COMMENT "Running tests...")
|
||||
@@ -123,7 +123,7 @@ function(ADD_HOSTTRACE_TEST_TARGET)
|
||||
endfunction()
|
||||
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
# macro hosttrace_checkout_git_submodule()
|
||||
# macro omnitrace_checkout_git_submodule()
|
||||
#
|
||||
# Run "git submodule update" if a file in a submodule does not exist
|
||||
#
|
||||
@@ -132,7 +132,7 @@ endfunction()
|
||||
# value) -- (default: PROJECT_SOURCE_DIR) TEST_FILE (one value) -- file to check for
|
||||
# (default: CMakeLists.txt) ADDITIONAL_CMDS (many value) -- any addition commands to pass
|
||||
#
|
||||
function(HOSTTRACE_CHECKOUT_GIT_SUBMODULE)
|
||||
function(OMNITRACE_CHECKOUT_GIT_SUBMODULE)
|
||||
# parse args
|
||||
cmake_parse_arguments(
|
||||
CHECKOUT "RECURSIVE"
|
||||
@@ -201,7 +201,7 @@ function(HOSTTRACE_CHECKOUT_GIT_SUBMODULE)
|
||||
if(RET GREATER 0)
|
||||
set(_CMD "${GIT_EXECUTABLE} submodule update --init ${_RECURSE}
|
||||
${CHECKOUT_ADDITIONAL_CMDS} ${CHECKOUT_RELATIVE_PATH}")
|
||||
message(STATUS "function(hosttrace_checkout_git_submodule) failed.")
|
||||
message(STATUS "function(omnitrace_checkout_git_submodule) failed.")
|
||||
message(FATAL_ERROR "Command: \"${_CMD}\"")
|
||||
else()
|
||||
set(_TEST_FILE_EXISTS ON)
|
||||
@@ -241,7 +241,7 @@ function(HOSTTRACE_CHECKOUT_GIT_SUBMODULE)
|
||||
"${GIT_EXECUTABLE} clone -b ${CHECKOUT_REPO_BRANCH}
|
||||
${CHECKOUT_ADDITIONAL_CMDS} ${CHECKOUT_REPO_URL} ${CHECKOUT_RELATIVE_PATH}"
|
||||
)
|
||||
message(STATUS "function(hosttrace_checkout_git_submodule) failed.")
|
||||
message(STATUS "function(omnitrace_checkout_git_submodule) failed.")
|
||||
message(FATAL_ERROR "Command: \"${_CMD}\"")
|
||||
else()
|
||||
set(_TEST_FILE_EXISTS ON)
|
||||
@@ -259,7 +259,7 @@ endfunction()
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
# try to find a package quietly
|
||||
#
|
||||
function(HOSTTRACE_TEST_FIND_PACKAGE PACKAGE_NAME OUTPUT_VAR)
|
||||
function(OMNITRACE_TEST_FIND_PACKAGE PACKAGE_NAME OUTPUT_VAR)
|
||||
cmake_parse_arguments(PACKAGE "" "" "UNSET" ${ARGN})
|
||||
find_package(${PACKAGE_NAME} QUIET ${PACKAGE_UNPARSED_ARGUMENTS})
|
||||
if(NOT ${PACKAGE_NAME}_FOUND)
|
||||
@@ -279,7 +279,7 @@ endfunction()
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
# macro to add an interface lib
|
||||
#
|
||||
macro(HOSTTRACE_ADD_INTERFACE_LIBRARY _TARGET)
|
||||
macro(OMNITRACE_ADD_INTERFACE_LIBRARY _TARGET)
|
||||
add_library(${_TARGET} INTERFACE)
|
||||
add_library(${PROJECT_NAME}::${_TARGET} ALIAS ${_TARGET})
|
||||
install(
|
||||
@@ -293,7 +293,7 @@ macro(HOSTTRACE_ADD_INTERFACE_LIBRARY _TARGET)
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
function(HOSTTRACE_ADD_RPATH)
|
||||
function(OMNITRACE_ADD_RPATH)
|
||||
set(_DIRS)
|
||||
foreach(_ARG ${ARGN})
|
||||
if(EXISTS "${_ARG}" AND IS_DIRECTORY "${_ARG}")
|
||||
@@ -319,7 +319,7 @@ endfunction()
|
||||
# specified by the existence of the variable <NAME>, to the list of enabled/disabled
|
||||
# features, plus a docstring describing the feature
|
||||
#
|
||||
function(HOSTTRACE_ADD_FEATURE _var _description)
|
||||
function(OMNITRACE_ADD_FEATURE _var _description)
|
||||
set(EXTRA_DESC "")
|
||||
foreach(currentArg ${ARGN})
|
||||
if(NOT "${currentArg}" STREQUAL "${_var}"
|
||||
@@ -336,12 +336,12 @@ function(HOSTTRACE_ADD_FEATURE _var _description)
|
||||
if("CMAKE_DEFINE" IN_LIST ARGN)
|
||||
set_property(GLOBAL APPEND PROPERTY ${PROJECT_NAME}_CMAKE_DEFINES
|
||||
"${_var} @${_var}@")
|
||||
if(HOSTTRACE_BUILD_DOCS)
|
||||
if(OMNITRACE_BUILD_DOCS)
|
||||
set_property(
|
||||
GLOBAL APPEND PROPERTY ${PROJECT_NAME}_CMAKE_OPTIONS_DOC
|
||||
"${_var}` | ${_description}${EXTRA_DESC} |")
|
||||
endif()
|
||||
elseif("DOC" IN_LIST ARGN AND HOSTTRACE_BUILD_DOCS)
|
||||
elseif("DOC" IN_LIST ARGN AND OMNITRACE_BUILD_DOCS)
|
||||
set_property(GLOBAL APPEND PROPERTY ${PROJECT_NAME}_CMAKE_OPTIONS_DOC
|
||||
"${_var}` | ${_description}${EXTRA_DESC} |")
|
||||
endif()
|
||||
@@ -351,13 +351,13 @@ endfunction()
|
||||
# function add_option(<OPTION_NAME> <DOCSRING> <DEFAULT_SETTING> [NO_FEATURE]) Add an
|
||||
# option and add as a feature if NO_FEATURE is not provided
|
||||
#
|
||||
function(HOSTTRACE_ADD_OPTION _NAME _MESSAGE _DEFAULT)
|
||||
function(OMNITRACE_ADD_OPTION _NAME _MESSAGE _DEFAULT)
|
||||
option(${_NAME} "${_MESSAGE}" ${_DEFAULT})
|
||||
if("NO_FEATURE" IN_LIST ARGN)
|
||||
mark_as_advanced(${_NAME})
|
||||
else()
|
||||
hosttrace_add_feature(${_NAME} "${_MESSAGE}")
|
||||
if(HOSTTRACE_BUILD_DOCS)
|
||||
omnitrace_add_feature(${_NAME} "${_MESSAGE}")
|
||||
if(OMNITRACE_BUILD_DOCS)
|
||||
set_property(GLOBAL APPEND PROPERTY ${PROJECT_NAME}_CMAKE_OPTIONS_DOC
|
||||
"${_NAME}` | ${_MESSAGE} |")
|
||||
endif()
|
||||
@@ -373,7 +373,7 @@ endfunction()
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
# function print_enabled_features() Print enabled features plus their docstrings.
|
||||
#
|
||||
function(HOSTTRACE_PRINT_ENABLED_FEATURES)
|
||||
function(OMNITRACE_PRINT_ENABLED_FEATURES)
|
||||
set(_basemsg "The following features are defined/enabled (+):")
|
||||
set(_currentFeatureText "${_basemsg}")
|
||||
get_property(_features GLOBAL PROPERTY ${PROJECT_NAME}_FEATURES)
|
||||
@@ -397,7 +397,7 @@ function(HOSTTRACE_PRINT_ENABLED_FEATURES)
|
||||
string(REGEX REPLACE "^${PROJECT_NAME}_USE_" "" _feature_tmp
|
||||
"${_feature}")
|
||||
string(TOLOWER "${_feature_tmp}" _feature_tmp_l)
|
||||
hosttrace_capitalize("${_feature_tmp}" _feature_tmp_c)
|
||||
omnitrace_capitalize("${_feature_tmp}" _feature_tmp_c)
|
||||
foreach(_var _feature _feature_tmp _feature_tmp_l _feature_tmp_c)
|
||||
set(_ver "${${${_var}}_VERSION}")
|
||||
if(NOT "${_ver}" STREQUAL "")
|
||||
@@ -421,7 +421,7 @@ endfunction()
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
# function print_disabled_features() Print disabled features plus their docstrings.
|
||||
#
|
||||
function(HOSTTRACE_PRINT_DISABLED_FEATURES)
|
||||
function(OMNITRACE_PRINT_DISABLED_FEATURES)
|
||||
set(_basemsg "The following features are NOT defined/enabled (-):")
|
||||
set(_currentFeatureText "${_basemsg}")
|
||||
get_property(_features GLOBAL PROPERTY ${PROJECT_NAME}_FEATURES)
|
||||
@@ -450,9 +450,9 @@ endfunction()
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
# function print_features() Print all features plus their docstrings.
|
||||
#
|
||||
function(HOSTTRACE_PRINT_FEATURES)
|
||||
hosttrace_print_enabled_features()
|
||||
hosttrace_print_disabled_features()
|
||||
function(OMNITRACE_PRINT_FEATURES)
|
||||
omnitrace_print_enabled_features()
|
||||
omnitrace_print_disabled_features()
|
||||
endfunction()
|
||||
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
@@ -462,26 +462,26 @@ endfunction()
|
||||
# source files DIRECTORY --> all files in directory PROJECT --> all files/targets in
|
||||
# a project/subproject
|
||||
#
|
||||
function(hosttrace_custom_compilation)
|
||||
function(omnitrace_custom_compilation)
|
||||
cmake_parse_arguments(COMP "GLOBAL;PROJECT" "COMPILER" "DIRECTORY;TARGET;SOURCE"
|
||||
${ARGN})
|
||||
|
||||
# find hosttrace_launch_compiler
|
||||
# find omnitrace_launch_compiler
|
||||
find_program(
|
||||
HOSTTRACE_COMPILE_LAUNCHER
|
||||
NAMES hosttrace_launch_compiler
|
||||
OMNITRACE_COMPILE_LAUNCHER
|
||||
NAMES omnitrace_launch_compiler
|
||||
HINTS ${PROJECT_SOURCE_DIR} ${CMAKE_SOURCE_DIR}
|
||||
PATHS ${PROJECT_SOURCE_DIR} ${CMAKE_SOURCE_DIR}
|
||||
PATH_SUFFIXES scripts bin)
|
||||
|
||||
if(NOT COMP_COMPILER)
|
||||
message(FATAL_ERROR "hosttrace_custom_compilation not provided COMPILER argument")
|
||||
message(FATAL_ERROR "omnitrace_custom_compilation not provided COMPILER argument")
|
||||
endif()
|
||||
|
||||
if(NOT HOSTTRACE_COMPILE_LAUNCHER)
|
||||
if(NOT OMNITRACE_COMPILE_LAUNCHER)
|
||||
message(
|
||||
FATAL_ERROR
|
||||
"hosttrace could not find 'hosttrace_launch_compiler'. Please set '-DHOSTTRACE_COMPILE_LAUNCHER=/path/to/launcher'"
|
||||
"omnitrace could not find 'omnitrace_launch_compiler'. Please set '-DOMNITRACE_COMPILE_LAUNCHER=/path/to/launcher'"
|
||||
)
|
||||
endif()
|
||||
|
||||
@@ -491,16 +491,16 @@ function(hosttrace_custom_compilation)
|
||||
GLOBAL
|
||||
PROPERTY
|
||||
RULE_LAUNCH_COMPILE
|
||||
"${HOSTTRACE_COMPILE_LAUNCHER} ${COMP_COMPILER} ${CMAKE_CXX_COMPILER}")
|
||||
"${OMNITRACE_COMPILE_LAUNCHER} ${COMP_COMPILER} ${CMAKE_CXX_COMPILER}")
|
||||
set_property(
|
||||
GLOBAL
|
||||
PROPERTY
|
||||
RULE_LAUNCH_LINK
|
||||
"${HOSTTRACE_COMPILE_LAUNCHER} ${COMP_COMPILER} ${CMAKE_CXX_COMPILER}")
|
||||
"${OMNITRACE_COMPILE_LAUNCHER} ${COMP_COMPILER} ${CMAKE_CXX_COMPILER}")
|
||||
else()
|
||||
foreach(_TYPE PROJECT DIRECTORY TARGET SOURCE)
|
||||
# make project/subproject scoping easy, e.g.
|
||||
# hosttrace_custom_compilation(PROJECT) after project(...)
|
||||
# omnitrace_custom_compilation(PROJECT) after project(...)
|
||||
if("${_TYPE}" STREQUAL "PROJECT" AND COMP_${_TYPE})
|
||||
list(APPEND COMP_DIRECTORY ${PROJECT_SOURCE_DIR})
|
||||
unset(COMP_${_TYPE})
|
||||
@@ -512,13 +512,13 @@ function(hosttrace_custom_compilation)
|
||||
${_TYPE} ${_VAL}
|
||||
PROPERTY
|
||||
RULE_LAUNCH_COMPILE
|
||||
"${HOSTTRACE_COMPILE_LAUNCHER} ${COMP_COMPILER} ${CMAKE_CXX_COMPILER}"
|
||||
"${OMNITRACE_COMPILE_LAUNCHER} ${COMP_COMPILER} ${CMAKE_CXX_COMPILER}"
|
||||
)
|
||||
set_property(
|
||||
${_TYPE} ${_VAL}
|
||||
PROPERTY
|
||||
RULE_LAUNCH_LINK
|
||||
"${HOSTTRACE_COMPILE_LAUNCHER} ${COMP_COMPILER} ${CMAKE_CXX_COMPILER}"
|
||||
"${OMNITRACE_COMPILE_LAUNCHER} ${COMP_COMPILER} ${CMAKE_CXX_COMPILER}"
|
||||
)
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
+63
-63
@@ -7,22 +7,22 @@ include_guard(DIRECTORY)
|
||||
#
|
||||
# ########################################################################################
|
||||
|
||||
hosttrace_add_interface_library(
|
||||
hosttrace-headers "Provides minimal set of include flags to compile with hosttrace")
|
||||
hosttrace_add_interface_library(hosttrace-threading "Enables multithreading support")
|
||||
hosttrace_add_interface_library(
|
||||
hosttrace-dyninst
|
||||
omnitrace_add_interface_library(
|
||||
omnitrace-headers "Provides minimal set of include flags to compile with omnitrace")
|
||||
omnitrace_add_interface_library(omnitrace-threading "Enables multithreading support")
|
||||
omnitrace_add_interface_library(
|
||||
omnitrace-dyninst
|
||||
"Provides flags and libraries for Dyninst (dynamic instrumentation)")
|
||||
hosttrace_add_interface_library(hosttrace-roctracer
|
||||
omnitrace_add_interface_library(omnitrace-roctracer
|
||||
"Provides flags and libraries for roctracer")
|
||||
hosttrace_add_interface_library(hosttrace-mpi "Provides MPI or MPI headers")
|
||||
hosttrace_add_interface_library(hosttrace-ptl "Enables PTL support (tasking)")
|
||||
omnitrace_add_interface_library(omnitrace-mpi "Provides MPI or MPI headers")
|
||||
omnitrace_add_interface_library(omnitrace-ptl "Enables PTL support (tasking)")
|
||||
|
||||
target_include_directories(hosttrace-headers INTERFACE ${PROJECT_SOURCE_DIR}/include
|
||||
target_include_directories(omnitrace-headers INTERFACE ${PROJECT_SOURCE_DIR}/include
|
||||
${PROJECT_BINARY_DIR}/include)
|
||||
|
||||
# include threading because of rooflines
|
||||
target_link_libraries(hosttrace-headers INTERFACE hosttrace-threading)
|
||||
target_link_libraries(omnitrace-headers INTERFACE omnitrace-threading)
|
||||
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
#
|
||||
@@ -37,14 +37,14 @@ endif()
|
||||
|
||||
find_library(pthread_LIBRARY NAMES pthread pthreads)
|
||||
find_package_handle_standard_args(pthread-library REQUIRED_VARS pthread_LIBRARY)
|
||||
find_package(Threads ${hosttrace_FIND_QUIETLY} ${hosttrace_FIND_REQUIREMENT})
|
||||
find_package(Threads ${omnitrace_FIND_QUIETLY} ${omnitrace_FIND_REQUIREMENT})
|
||||
|
||||
if(Threads_FOUND)
|
||||
target_link_libraries(hosttrace-threading INTERFACE ${CMAKE_THREAD_LIBS_INIT})
|
||||
target_link_libraries(omnitrace-threading INTERFACE ${CMAKE_THREAD_LIBS_INIT})
|
||||
endif()
|
||||
|
||||
if(pthread_LIBRARY AND NOT WIN32)
|
||||
target_link_libraries(hosttrace-threading INTERFACE ${pthread_LIBRARY})
|
||||
target_link_libraries(omnitrace-threading INTERFACE ${pthread_LIBRARY})
|
||||
endif()
|
||||
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
@@ -53,12 +53,12 @@ endif()
|
||||
#
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
|
||||
if(HOSTTRACE_USE_ROCTRACER)
|
||||
if(OMNITRACE_USE_ROCTRACER)
|
||||
list(APPEND CMAKE_PREFIX_PATH /opt/rocm)
|
||||
find_package(roctracer ${hosttrace_FIND_QUIETLY} REQUIRED)
|
||||
find_package(hip ${hosttrace_FIND_QUIETLY} REQUIRED)
|
||||
target_compile_definitions(hosttrace-roctracer INTERFACE HOSTTRACE_USE_ROCTRACER)
|
||||
target_link_libraries(hosttrace-roctracer INTERFACE hip::host roctracer::roctracer)
|
||||
find_package(roctracer ${omnitrace_FIND_QUIETLY} REQUIRED)
|
||||
find_package(hip ${omnitrace_FIND_QUIETLY} REQUIRED)
|
||||
target_compile_definitions(omnitrace-roctracer INTERFACE OMNITRACE_USE_ROCTRACER)
|
||||
target_link_libraries(omnitrace-roctracer INTERFACE hip::host roctracer::roctracer)
|
||||
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_RPATH}:${roctracer_LIBRARY_DIRS}")
|
||||
endif()
|
||||
|
||||
@@ -68,14 +68,14 @@ endif()
|
||||
#
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
|
||||
if(HOSTTRACE_USE_MPI)
|
||||
find_package(MPI ${hosttrace_FIND_QUIETLY} REQUIRED)
|
||||
target_link_libraries(hosttrace-mpi INTERFACE MPI::MPI_C MPI::MPI_CXX)
|
||||
elseif(HOSTTRACE_USE_MPI_HEADERS)
|
||||
find_package(MPI-Headers ${hosttrace_FIND_QUIETLY} REQUIRED)
|
||||
target_compile_definitions(hosttrace-mpi INTERFACE TIMEMORY_USE_MPI_HEADERS
|
||||
HOSTTRACE_USE_MPI_HEADERS)
|
||||
target_link_libraries(hosttrace-mpi INTERFACE MPI::MPI_HEADERS)
|
||||
if(OMNITRACE_USE_MPI)
|
||||
find_package(MPI ${omnitrace_FIND_QUIETLY} REQUIRED)
|
||||
target_link_libraries(omnitrace-mpi INTERFACE MPI::MPI_C MPI::MPI_CXX)
|
||||
elseif(OMNITRACE_USE_MPI_HEADERS)
|
||||
find_package(MPI-Headers ${omnitrace_FIND_QUIETLY} REQUIRED)
|
||||
target_compile_definitions(omnitrace-mpi INTERFACE TIMEMORY_USE_MPI_HEADERS
|
||||
OMNITRACE_USE_MPI_HEADERS)
|
||||
target_link_libraries(omnitrace-mpi INTERFACE MPI::MPI_HEADERS)
|
||||
endif()
|
||||
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
@@ -84,8 +84,8 @@ endif()
|
||||
#
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
|
||||
if(HOSTTRACE_BUILD_DYNINST)
|
||||
hosttrace_checkout_git_submodule(
|
||||
if(OMNITRACE_BUILD_DYNINST)
|
||||
omnitrace_checkout_git_submodule(
|
||||
RELATIVE_PATH external/dyninst
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
REPO_URL https://github.com/jrmadsen/dyninst.git
|
||||
@@ -109,56 +109,56 @@ if(HOSTTRACE_BUILD_DYNINST)
|
||||
OFF
|
||||
CACHE BOOL "Enable LTO for dyninst libraries")
|
||||
|
||||
hosttrace_save_variables(PIC VARIABLES CMAKE_POSITION_INDEPENDENT_CODE)
|
||||
omnitrace_save_variables(PIC VARIABLES CMAKE_POSITION_INDEPENDENT_CODE)
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
add_subdirectory(external/dyninst)
|
||||
hosttrace_restore_variables(PIC VARIABLES CMAKE_POSITION_INDEPENDENT_CODE)
|
||||
omnitrace_restore_variables(PIC VARIABLES CMAKE_POSITION_INDEPENDENT_CODE)
|
||||
|
||||
add_library(Dyninst::Dyninst INTERFACE IMPORTED)
|
||||
foreach(_LIB common dyninstAPI parseAPI instructionAPI symtabAPI stackwalk Boost TBB)
|
||||
target_link_libraries(Dyninst::Dyninst INTERFACE Dyninst::${_LIB})
|
||||
endforeach()
|
||||
|
||||
target_link_libraries(hosttrace-dyninst INTERFACE Dyninst::Dyninst)
|
||||
target_link_libraries(omnitrace-dyninst INTERFACE Dyninst::Dyninst)
|
||||
|
||||
set(HOSTTRACE_DYNINST_API_RT
|
||||
set(OMNITRACE_DYNINST_API_RT
|
||||
${PROJECT_BINARY_DIR}/external/dyninst/dyninstAPI_RT/libdyninstAPI_RT${CMAKE_SHARED_LIBRARY_SUFFIX}
|
||||
)
|
||||
|
||||
if(HOSTTRACE_DYNINST_API_RT)
|
||||
if(OMNITRACE_DYNINST_API_RT)
|
||||
target_compile_definitions(
|
||||
hosttrace-dyninst
|
||||
omnitrace-dyninst
|
||||
INTERFACE
|
||||
DYNINST_API_RT="${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}:$<TARGET_FILE_DIR:Dyninst::dyninstAPI_RT>:${CMAKE_INSTALL_PREFIX}/lib/$<TARGET_FILE_NAME:Dyninst::dyninstAPI_RT>:$<TARGET_FILE:Dyninst::dyninstAPI_RT>"
|
||||
)
|
||||
endif()
|
||||
|
||||
else()
|
||||
find_package(Dyninst ${hosttrace_FIND_QUIETLY} REQUIRED
|
||||
find_package(Dyninst ${omnitrace_FIND_QUIETLY} REQUIRED
|
||||
COMPONENTS dyninstAPI parseAPI instructionAPI symtabAPI)
|
||||
|
||||
if(TARGET Dyninst::Dyninst) # updated Dyninst CMake system was found
|
||||
# useful for defining the location of the runtime API
|
||||
find_library(
|
||||
HOSTTRACE_DYNINST_API_RT dyninstAPI_RT
|
||||
OMNITRACE_DYNINST_API_RT dyninstAPI_RT
|
||||
HINTS ${Dyninst_ROOT_DIR} ${Dyninst_DIR}
|
||||
PATHS ${Dyninst_ROOT_DIR} ${Dyninst_DIR}
|
||||
PATH_SUFFIXES lib)
|
||||
|
||||
if(HOSTTRACE_DYNINST_API_RT)
|
||||
if(OMNITRACE_DYNINST_API_RT)
|
||||
target_compile_definitions(
|
||||
hosttrace-dyninst INTERFACE DYNINST_API_RT="${HOSTTRACE_DYNINST_API_RT}")
|
||||
omnitrace-dyninst INTERFACE DYNINST_API_RT="${OMNITRACE_DYNINST_API_RT}")
|
||||
endif()
|
||||
|
||||
hosttrace_add_rpath(${Dyninst_LIBRARIES})
|
||||
target_link_libraries(hosttrace-dyninst INTERFACE Dyninst::Dyninst)
|
||||
omnitrace_add_rpath(${Dyninst_LIBRARIES})
|
||||
target_link_libraries(omnitrace-dyninst INTERFACE Dyninst::Dyninst)
|
||||
else() # updated Dyninst CMake system was not found
|
||||
set(_BOOST_COMPONENTS atomic system thread date_time)
|
||||
set(hosttrace_BOOST_COMPONENTS
|
||||
set(omnitrace_BOOST_COMPONENTS
|
||||
"${_BOOST_COMPONENTS}"
|
||||
CACHE STRING "Boost components used by Dyninst in hosttrace")
|
||||
CACHE STRING "Boost components used by Dyninst in omnitrace")
|
||||
set(Boost_NO_BOOST_CMAKE ON)
|
||||
find_package(Boost QUIET REQUIRED COMPONENTS ${hosttrace_BOOST_COMPONENTS})
|
||||
find_package(Boost QUIET REQUIRED COMPONENTS ${omnitrace_BOOST_COMPONENTS})
|
||||
|
||||
# some installs of dyninst don't set this properly
|
||||
if(EXISTS "${DYNINST_INCLUDE_DIR}" AND NOT DYNINST_HEADER_DIR)
|
||||
@@ -175,7 +175,7 @@ else()
|
||||
|
||||
# useful for defining the location of the runtime API
|
||||
find_library(
|
||||
HOSTTRACE_DYNINST_API_RT dyninstAPI_RT
|
||||
OMNITRACE_DYNINST_API_RT dyninstAPI_RT
|
||||
HINTS ${Dyninst_ROOT_DIR} ${Dyninst_DIR}
|
||||
PATHS ${Dyninst_ROOT_DIR} ${Dyninst_DIR}
|
||||
PATH_SUFFIXES lib)
|
||||
@@ -196,9 +196,9 @@ else()
|
||||
PATH_SUFFIXES include)
|
||||
endif()
|
||||
|
||||
if(HOSTTRACE_DYNINST_API_RT)
|
||||
if(OMNITRACE_DYNINST_API_RT)
|
||||
target_compile_definitions(
|
||||
hosttrace-dyninst INTERFACE DYNINST_API_RT="${HOSTTRACE_DYNINST_API_RT}")
|
||||
omnitrace-dyninst INTERFACE DYNINST_API_RT="${OMNITRACE_DYNINST_API_RT}")
|
||||
endif()
|
||||
|
||||
if(Boost_DIR)
|
||||
@@ -209,8 +209,8 @@ else()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
hosttrace_add_rpath(${DYNINST_LIBRARIES} ${Boost_LIBRARIES})
|
||||
target_link_libraries(hosttrace-dyninst INTERFACE ${DYNINST_LIBRARIES}
|
||||
omnitrace_add_rpath(${DYNINST_LIBRARIES} ${Boost_LIBRARIES})
|
||||
target_link_libraries(omnitrace-dyninst INTERFACE ${DYNINST_LIBRARIES}
|
||||
${Boost_LIBRARIES})
|
||||
foreach(
|
||||
_TARG
|
||||
@@ -226,17 +226,17 @@ else()
|
||||
date_time
|
||||
TBB)
|
||||
if(TARGET Dyninst::${_TARG})
|
||||
target_link_libraries(hosttrace-dyninst INTERFACE Dyninst::${_TARG})
|
||||
target_link_libraries(omnitrace-dyninst INTERFACE Dyninst::${_TARG})
|
||||
elseif(TARGET Boost::${_TARG})
|
||||
target_link_libraries(hosttrace-dyninst INTERFACE Boost::${_TARG})
|
||||
target_link_libraries(omnitrace-dyninst INTERFACE Boost::${_TARG})
|
||||
elseif(TARGET ${_TARG})
|
||||
target_link_libraries(hosttrace-dyninst INTERFACE ${_TARG})
|
||||
target_link_libraries(omnitrace-dyninst INTERFACE ${_TARG})
|
||||
endif()
|
||||
endforeach()
|
||||
target_include_directories(
|
||||
hosttrace-dyninst SYSTEM INTERFACE ${TBB_INCLUDE_DIR} ${Boost_INCLUDE_DIRS}
|
||||
omnitrace-dyninst SYSTEM INTERFACE ${TBB_INCLUDE_DIR} ${Boost_INCLUDE_DIRS}
|
||||
${DYNINST_HEADER_DIR})
|
||||
target_compile_definitions(hosttrace-dyninst INTERFACE hosttrace_USE_DYNINST)
|
||||
target_compile_definitions(omnitrace-dyninst INTERFACE omnitrace_USE_DYNINST)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -247,7 +247,7 @@ endif()
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
|
||||
set(perfetto_DIR ${PROJECT_SOURCE_DIR}/external/perfetto)
|
||||
hosttrace_checkout_git_submodule(
|
||||
omnitrace_checkout_git_submodule(
|
||||
RELATIVE_PATH external/perfetto
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
REPO_URL https://android.googlesource.com/platform/external/perfetto
|
||||
@@ -260,8 +260,8 @@ hosttrace_checkout_git_submodule(
|
||||
#
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
|
||||
if(HOSTTRACE_BUILD_DEVICETRACE)
|
||||
hosttrace_checkout_git_submodule(
|
||||
if(OMNITRACE_BUILD_DEVICETRACE)
|
||||
omnitrace_checkout_git_submodule(
|
||||
RELATIVE_PATH external/elfio
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
REPO_URL https://github.com/jrmadsen/ELFIO.git
|
||||
@@ -317,13 +317,13 @@ set(TIMEMORY_TLS_MODEL
|
||||
"global-dynamic"
|
||||
CACHE STRING "Thread-local static model" FORCE)
|
||||
|
||||
hosttrace_checkout_git_submodule(
|
||||
omnitrace_checkout_git_submodule(
|
||||
RELATIVE_PATH external/timemory
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
REPO_URL https://github.com/NERSC/timemory.git
|
||||
REPO_BRANCH gpu-kernel-instrumentation)
|
||||
|
||||
hosttrace_save_variables(BUILD_CONFIG VARIABLES BUILD_SHARED_LIBS BUILD_STATIC_LIBS
|
||||
omnitrace_save_variables(BUILD_CONFIG VARIABLES BUILD_SHARED_LIBS BUILD_STATIC_LIBS
|
||||
CMAKE_POSITION_INDEPENDENT_CODE)
|
||||
|
||||
# ensure timemory builds PIC static libs so that we don't have to install timemory shared
|
||||
@@ -334,7 +334,7 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
add_subdirectory(external/timemory)
|
||||
|
||||
hosttrace_restore_variables(BUILD_CONFIG VARIABLES BUILD_SHARED_LIBS BUILD_STATIC_LIBS
|
||||
omnitrace_restore_variables(BUILD_CONFIG VARIABLES BUILD_SHARED_LIBS BUILD_STATIC_LIBS
|
||||
CMAKE_POSITION_INDEPENDENT_CODE)
|
||||
|
||||
# ----------------------------------------------------------------------------------------#
|
||||
@@ -345,7 +345,7 @@ hosttrace_restore_variables(BUILD_CONFIG VARIABLES BUILD_SHARED_LIBS BUILD_STATI
|
||||
|
||||
# timemory might provide PTL::ptl-shared
|
||||
if(NOT TARGET PTL::ptl-shared)
|
||||
hosttrace_checkout_git_submodule(
|
||||
omnitrace_checkout_git_submodule(
|
||||
RELATIVE_PATH external/PTL
|
||||
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}
|
||||
REPO_URL https://github.com/jrmadsen/PTL.git
|
||||
@@ -356,7 +356,7 @@ if(NOT TARGET PTL::ptl-shared)
|
||||
set(PTL_USE_GPU OFF)
|
||||
set(PTL_DEVELOPER_INSTALL OFF)
|
||||
|
||||
hosttrace_save_variables(
|
||||
omnitrace_save_variables(
|
||||
BUILD_CONFIG
|
||||
VARIABLES BUILD_SHARED_LIBS BUILD_STATIC_LIBS CMAKE_POSITION_INDEPENDENT_CODE
|
||||
CMAKE_CXX_VISIBILITY_PRESET CMAKE_VISIBILITY_INLINES_HIDDEN)
|
||||
@@ -367,10 +367,10 @@ if(NOT TARGET PTL::ptl-shared)
|
||||
set(CMAKE_VISIBILITY_INLINES_HIDDEN ON)
|
||||
|
||||
add_subdirectory(external/PTL)
|
||||
hosttrace_restore_variables(
|
||||
omnitrace_restore_variables(
|
||||
BUILD_CONFIG
|
||||
VARIABLES BUILD_SHARED_LIBS BUILD_STATIC_LIBS CMAKE_POSITION_INDEPENDENT_CODE
|
||||
CMAKE_CXX_VISIBILITY_PRESET CMAKE_VISIBILITY_INLINES_HIDDEN)
|
||||
endif()
|
||||
|
||||
target_link_libraries(hosttrace-ptl INTERFACE PTL::ptl-shared)
|
||||
target_link_libraries(omnitrace-ptl INTERFACE PTL::ptl-shared)
|
||||
|
||||
Reference in New Issue
Block a user