CMakeLists: Define an OProfile target and use it

Allows us to bring includes and relevant libraries into scope by explicitly declaring linkage against the target
as opposed to using a variable. Also removes the dumping of OProfile includes into the top-level directory.
This commit is contained in:
Lioncash 2018-04-13 19:32:11 -04:00
parent b1bbd8a50e
commit b31281527a
No known key found for this signature in database
GPG Key ID: 4E3C3CC1031BA9C7
3 changed files with 15 additions and 4 deletions

View File

@ -7,13 +7,25 @@
find_path(OPROFILE_INCLUDE_DIR opagent.h)
find_library(OPROFILE_LIBRARY opagent
PATH_SUFFIXES oprofile)
PATH_SUFFIXES oprofile
)
set(OPROFILE_INCLUDE_DIRS ${OPROFILE_INCLUDE_DIR})
set(OPROFILE_LIBRARIES ${OPROFILE_LIBRARY})
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(OProfile DEFAULT_MSG
OPROFILE_LIBRARY OPROFILE_INCLUDE_DIR)
OPROFILE_LIBRARY OPROFILE_INCLUDE_DIR
)
if (OPROFILE_FOUND)
if (NOT TARGET OProfile::OProfile)
add_library(OProfile::OProfile UNKNOWN IMPORTED)
set_target_properties(OProfile::OProfile PROPERTIES
IMPORTED_LOCATION ${OPROFILE_LIBRARIES}
INTERFACE_INCLUDE_DIRECTORIES ${OPROFILE_INCLUDE_DIRS}
)
endif()
endif()
mark_as_advanced(OPROFILE_INCLUDE_DIR OPROFILE_LIBRARY)

View File

@ -473,7 +473,6 @@ if(OPROFILING)
if(OPROFILE_FOUND)
message(STATUS "OProfile found, enabling profiling support")
add_definitions(-DUSE_OPROFILE=1)
include_directories(${OPROFILE_INCLUDE_DIRS})
else()
message(FATAL_ERROR "OProfile not found. Can't build profiling support.")
endif()

View File

@ -146,7 +146,7 @@ if(USE_UPNP)
endif()
if(OPROFILE_FOUND)
target_link_libraries(common PRIVATE ${OPROFILE_LIBRARIES})
target_link_libraries(common PRIVATE OProfile::OProfile)
endif()
if(UNIX)