diff --git a/cmake/PAPI.cmake b/cmake/PAPI.cmake index 810d3abf60..7b1319c2ea 100644 --- a/cmake/PAPI.cmake +++ b/cmake/PAPI.cmake @@ -7,9 +7,6 @@ include_guard(GLOBAL) -# always provide Dyninst::ElfUtils even if it is a dummy -omnitrace_add_interface_library(omnitrace-papi "omnitrace interface library") - omnitrace_checkout_git_submodule( RELATIVE_PATH external/papi WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} @@ -242,8 +239,9 @@ set(PAPI_pfm_STATIC_LIBRARY CACHE FILEPATH "PAPI library" FORCE) target_include_directories(omnitrace-papi SYSTEM INTERFACE ${PAPI_INCLUDE_DIR}) -target_compile_definitions(omnitrace-papi INTERFACE TIMEMORY_USE_PAPI=1) target_link_libraries(omnitrace-papi INTERFACE ${PAPI_LIBRARY} ${PAPI_pfm_LIBRARY}) +omnitrace_target_compile_definitions(omnitrace-papi INTERFACE OMNITRACE_USE_PAPI + TIMEMORY_USE_PAPI=1) install( DIRECTORY ${OMNITRACE_PAPI_INSTALL_DIR}/lib/ diff --git a/cmake/Packages.cmake b/cmake/Packages.cmake index b839ade4e4..46e2f27e84 100644 --- a/cmake/Packages.cmake +++ b/cmake/Packages.cmake @@ -20,9 +20,18 @@ omnitrace_add_interface_library(omnitrace-rocm-smi "Provides flags and libraries for rocm-smi") omnitrace_add_interface_library(omnitrace-mpi "Provides MPI or MPI headers") 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-timemory-config "CMake interface library applied to all timemory targets") +omnitrace_add_interface_library(omnitrace-compile-definitions "Compile definitions") + +# libraries with relevant compile definitions +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) target_include_directories(omnitrace-headers INTERFACE ${PROJECT_SOURCE_DIR}/include ${PROJECT_BINARY_DIR}/include) @@ -143,6 +152,15 @@ elseif(OMNITRACE_USE_MPI_HEADERS) target_link_libraries(omnitrace-mpi INTERFACE MPI::MPI_HEADERS) endif() +# ----------------------------------------------------------------------------------------# +# +# OMPT +# +# ----------------------------------------------------------------------------------------# + +omnitrace_target_compile_definitions( + omnitrace-ompt INTERFACE OMNITRACE_USE_OMPT=$) + # ----------------------------------------------------------------------------------------# # # Dyninst @@ -596,3 +614,21 @@ if(OMNITRACE_USE_PYTHON) include(ConfigPython) endif() + +# ----------------------------------------------------------------------------------------# +# +# Compile definitions +# +# ----------------------------------------------------------------------------------------# + +foreach(_LIB ${OMNITRACE_EXTENSION_LIBRARIES}) + get_target_property(_COMPILE_DEFS ${_LIB} INTERFACE_COMPILE_DEFINITIONS) + if(_COMPILE_DEFS) + foreach(_DEF ${_COMPILE_DEFS}) + if("${_DEF}" MATCHES "OMNITRACE_") + target_compile_definitions(omnitrace-compile-definitions + INTERFACE ${_DEF}) + endif() + endforeach() + endif() +endforeach() diff --git a/source/bin/omnitrace-avail/CMakeLists.txt b/source/bin/omnitrace-avail/CMakeLists.txt index 658ddd6bfe..01a5cce482 100644 --- a/source/bin/omnitrace-avail/CMakeLists.txt +++ b/source/bin/omnitrace-avail/CMakeLists.txt @@ -11,7 +11,8 @@ add_executable( target_include_directories(omnitrace-avail PRIVATE ${CMAKE_CURRENT_LIST_DIR}/include) target_compile_definitions(omnitrace-avail PRIVATE OMNITRACE_EXTERN_COMPONENTS=0) -target_link_libraries(omnitrace-avail PRIVATE omnitrace::omnitrace-interface-library) +target_link_libraries(omnitrace-avail PRIVATE omnitrace::omnitrace-compile-definitions + omnitrace::omnitrace-interface-library) set_target_properties( omnitrace-avail PROPERTIES BUILD_RPATH "\$ORIGIN:${PROJECT_BINARY_DIR}:${CMAKE_BINARY_DIR}" diff --git a/source/bin/omnitrace-critical-trace/CMakeLists.txt b/source/bin/omnitrace-critical-trace/CMakeLists.txt index 2af302503f..bce9129ad7 100644 --- a/source/bin/omnitrace-critical-trace/CMakeLists.txt +++ b/source/bin/omnitrace-critical-trace/CMakeLists.txt @@ -13,8 +13,9 @@ add_executable( target_include_directories(omnitrace-critical-trace PRIVATE ${CMAKE_CURRENT_LIST_DIR}/include) target_compile_definitions(omnitrace-critical-trace PRIVATE OMNITRACE_EXTERN_COMPONENTS=0) -target_link_libraries(omnitrace-critical-trace - PRIVATE omnitrace::omnitrace-interface-library) +target_link_libraries( + omnitrace-critical-trace PRIVATE omnitrace::omnitrace-compile-definitions + omnitrace::omnitrace-interface-library) set_target_properties( omnitrace-critical-trace PROPERTIES BUILD_RPATH "\$ORIGIN:${PROJECT_BINARY_DIR}:${CMAKE_BINARY_DIR}" diff --git a/source/bin/omnitrace/CMakeLists.txt b/source/bin/omnitrace/CMakeLists.txt index db874dc091..841b93a63f 100644 --- a/source/bin/omnitrace/CMakeLists.txt +++ b/source/bin/omnitrace/CMakeLists.txt @@ -23,6 +23,7 @@ target_link_libraries( PRIVATE omnitrace::omnitrace-headers omnitrace::omnitrace-dyninst omnitrace::omnitrace-compile-options + omnitrace::omnitrace-compile-definitions $ $,omnitrace::omnitrace-sanitizer,>) @@ -33,6 +34,8 @@ set_target_properties( INSTALL_RPATH_USE_LINK_PATH ON INSTALL_RPATH "${OMNITRACE_EXE_INSTALL_RPATH}") +omnitrace_strip_target(omnitrace-exe) + if(CMAKE_BUILD_TYPE MATCHES "^(DEBUG|Debug)") string(REPLACE " " ";" _FLAGS "${CMAKE_CXX_FLAGS_RELWITHDEBINFO}") target_compile_options(omnitrace-exe PRIVATE ${_FLAGS}) diff --git a/source/lib/common/CMakeLists.txt b/source/lib/common/CMakeLists.txt index 48a972dabc..f4835b44a1 100644 --- a/source/lib/common/CMakeLists.txt +++ b/source/lib/common/CMakeLists.txt @@ -19,4 +19,4 @@ get_filename_component(COMMON_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}" DIRECTOR target_include_directories(omnitrace-common-library INTERFACE ${COMMON_INCLUDE_DIR}) target_compile_definitions(omnitrace-common-library - INTERFACE $) + INTERFACE $) diff --git a/source/lib/omnitrace-dl/CMakeLists.txt b/source/lib/omnitrace-dl/CMakeLists.txt index a37c9d53b7..a5d36c9e38 100644 --- a/source/lib/omnitrace-dl/CMakeLists.txt +++ b/source/lib/omnitrace-dl/CMakeLists.txt @@ -13,8 +13,10 @@ add_library(omnitrace::omnitrace-dl-library ALIAS omnitrace-dl-library) target_sources(omnitrace-dl-library PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/dl.cpp ${CMAKE_CURRENT_SOURCE_DIR}/dl.hpp) -target_link_libraries(omnitrace-dl-library - PUBLIC ${dl_LIBRARY} $) +target_link_libraries( + omnitrace-dl-library + PUBLIC ${dl_LIBRARY} $ + $) target_include_directories( omnitrace-dl-library PUBLIC $ @@ -34,10 +36,6 @@ if(OMNITRACE_BUILD_DEVELOPER) endif() endif() -omnitrace_target_compile_definitions( - omnitrace-dl-library - PUBLIC $>) - set_target_properties( omnitrace-dl-library PROPERTIES OUTPUT_NAME omnitrace-dl diff --git a/source/lib/omnitrace-user/CMakeLists.txt b/source/lib/omnitrace-user/CMakeLists.txt index ff9bd747f0..e3ed7f5ddd 100644 --- a/source/lib/omnitrace-user/CMakeLists.txt +++ b/source/lib/omnitrace-user/CMakeLists.txt @@ -19,6 +19,8 @@ target_sources( target_include_directories( omnitrace-user-library PUBLIC $ $) +target_link_libraries(omnitrace-user-library + PRIVATE $) check_cxx_compiler_flag("-fno-exceptions" omnitrace_user_library_fno_exceptions) check_cxx_compiler_flag("-ftls-model=local-dynamic" diff --git a/source/lib/omnitrace/CMakeLists.txt b/source/lib/omnitrace/CMakeLists.txt index 12fe86ab6e..0a6f009cb0 100644 --- a/source/lib/omnitrace/CMakeLists.txt +++ b/source/lib/omnitrace/CMakeLists.txt @@ -24,6 +24,7 @@ target_link_libraries( $ $ $ + $ $ $ $