066e659d6e
* rocprofiler-sdk-codeobj: use pkg-config to find libdw / libelf
The current version of source/lib/rocprofiler-sdk-codeobj/CMakeLists.txt
adds -ldw and -lelf to target_link_libraries. However, on a system where
libdw-dev / libelf-dev is missing, the cmake configuration phase will
run properly and a compile time error will eventually be raised.
This patch changes the CMakelists.txt to search for libelf libdw and
configures the target as needed. Systems missing the required support
should report an error when running cmake instead of in the middle of
the compilation.
* Use INTERFACE targets
* Resolve issues with Findlib{dw,elf}
---------
Co-authored-by: Jonathan R. Madsen <jonathanrmadsen@gmail.com>
51 Zeilen
2.5 KiB
CMake
51 Zeilen
2.5 KiB
CMake
# ##############################################################################
|
|
# # Copyright (c) 2024 Advanced Micro Devices, Inc. # # Permission is hereby
|
|
# granted, free of charge, to any person obtaining a copy # of this software and
|
|
# associated documentation files (the "Software"), to # deal in the Software
|
|
# without restriction, including without limitation the # rights to use, copy,
|
|
# modify, merge, publish, distribute, sublicense, and/or # sell copies of the
|
|
# Software, and to permit persons to whom the Software is # furnished to do so,
|
|
# subject to the following conditions: # # The above copyright notice and this
|
|
# permission notice shall be included in # all copies or substantial portions of
|
|
# the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
|
|
# KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
# MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO
|
|
# EVENT SHALL THE # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
|
# DAMAGES OR OTHER # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
# OTHERWISE, ARISING # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
# USE OR OTHER DEALINGS # IN THE SOFTWARE.
|
|
# ##############################################################################
|
|
|
|
set(CMAKE_INSTALL_DEFAULT_COMPONENT_NAME "codeobj")
|
|
|
|
set(LIB_CODEOBJ_PARSER_SOURCES code_object_track.cpp code_printing.cpp disassembly.cpp)
|
|
set(LIB_CODEOBJ_PARSER_HEADERS code_object_track.hpp code_printing.hpp disassembly.hpp
|
|
segment.hpp)
|
|
|
|
add_library(rocprofiler-sdk-codeobj STATIC)
|
|
target_sources(rocprofiler-sdk-codeobj PRIVATE ${LIB_CODEOBJ_PARSER_SOURCES})
|
|
target_link_libraries(
|
|
rocprofiler-sdk-codeobj
|
|
PRIVATE rocprofiler::rocprofiler-amd-comgr rocprofiler::rocprofiler-dw
|
|
rocprofiler::rocprofiler-elf rocprofiler::rocprofiler-build-flags
|
|
rocprofiler::rocprofiler-memcheck rocprofiler::rocprofiler-common-library)
|
|
|
|
target_include_directories(rocprofiler-sdk-codeobj PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
|
|
|
|
set_target_properties(
|
|
rocprofiler-sdk-codeobj
|
|
PROPERTIES LIBRARY_OUTPUT_DIRECTORY
|
|
${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}/rocprofiler-sdk
|
|
POSITION_INDEPENDENT_CODE ON)
|
|
|
|
install(
|
|
TARGETS rocprofiler-sdk-codeobj
|
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/rocprofiler-sdk
|
|
COMPONENT tools
|
|
EXPORT rocprofiler-sdk-codeobj-targets)
|
|
|
|
install(
|
|
FILES ${LIB_CODEOBJ_PARSER_HEADERS}
|
|
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/rocprofiler-sdk-codeobj
|
|
COMPONENT tools)
|