Skip to content

Commit

Permalink
CMakeLists: Define an OProfile target and use it
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
lioncash committed Apr 13, 2018
1 parent b1bbd8a commit b312815
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 4 deletions.
16 changes: 14 additions & 2 deletions CMake/FindOProfile.cmake
Expand Up @@ -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)
1 change: 0 additions & 1 deletion CMakeLists.txt
Expand Up @@ -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()
Expand Down
2 changes: 1 addition & 1 deletion Source/Core/Common/CMakeLists.txt
Expand Up @@ -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)
Expand Down

0 comments on commit b312815

Please sign in to comment.