CMake: Move finding radare2 using pkg-config to FindRadare2.cmake

This commit is contained in:
Florian Märkl 2017-05-05 13:09:38 +02:00 committed by C. Balles
parent adcaccc447
commit b4f1a77a14
2 changed files with 66 additions and 55 deletions

View File

@ -26,19 +26,12 @@ if(WIN32)
endif() endif()
set(RADARE2_INCLUDE_DIRS "${IAITO_WIN32_DIR}/radare2/include/libr" "${IAITO_WIN32_DIR}/include") set(RADARE2_INCLUDE_DIRS "${IAITO_WIN32_DIR}/radare2/include/libr" "${IAITO_WIN32_DIR}/include")
find_package(Radare2 REQUIRED)
else()
# support sys/user.sh install
list(APPEND CMAKE_PREFIX_PATH "$ENV{HOME}/bin/prefix/radare2")
find_package(PkgConfig REQUIRED)
pkg_search_module(RADARE2 REQUIRED r_core)
link_directories(${RADARE2_LIBRARY_DIRS})
endif() endif()
find_package(Radare2 REQUIRED)
include_directories(${RADARE2_INCLUDE_DIRS}) include_directories(${RADARE2_INCLUDE_DIRS})
link_directories(${RADARE2_LIBRARY_DIRS})
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU"

View File

@ -1,57 +1,75 @@
# - Find Radare2 (libr) # - Find Radare2 (libr)
# #
# RADARE2_FOUND - True if libr has been found. # RADARE2_FOUND - True if libr has been found.
# RADARE2_INCLUDE_DIRS - libr Include Directory # RADARE2_INCLUDE_DIRS - libr include directory
# RADARE2_LIBRARIES - List of libraries when using libr. # RADARE2_LIBRARIES - List of libraries when using libr.
# RADARE2_LIBRARY_DIRS - libr library directories
#
# If libr was found using find_library and not pkg-config, the following variables will also be set:
# RADARE2_LIBRARY_<name> - Path to library r_<name> # RADARE2_LIBRARY_<name> - Path to library r_<name>
find_path(RADARE2_INCLUDE_DIRS if(WIN32)
NAMES r_core.h r_bin.h r_util.h find_path(RADARE2_INCLUDE_DIRS
HINTS NAMES r_core.h r_bin.h r_util.h
"$ENV{HOME}/bin/prefix/radare2/include/libr"
/usr/local/include/libr
/usr/include/libr)
set(RADARE2_LIBRARY_NAMES
core
config
cons
io
util
flag
asm
debug
hash
bin
lang
io
anal
parse
bp
egg
reg
search
syscall
socket
fs
magic
crypto)
set(RADARE2_LIBRARIES "")
set(RADARE2_LIBRARIES_VARS "")
foreach(libname ${RADARE2_LIBRARY_NAMES})
find_library(RADARE2_LIBRARY_${libname}
r_${libname}
HINTS HINTS
"$ENV{HOME}/bin/prefix/radare2/lib" "$ENV{HOME}/bin/prefix/radare2/include/libr"
/usr/local/lib /usr/local/include/libr
/usr/lib) /usr/include/libr)
list(APPEND RADARE2_LIBRARIES ${RADARE2_LIBRARY_${libname}}) set(RADARE2_LIBRARY_NAMES
list(APPEND RADARE2_LIBRARIES_VARS "RADARE2_LIBRARY_${libname}") core
endforeach() config
cons
io
util
flag
asm
debug
hash
bin
lang
io
anal
parse
bp
egg
reg
search
syscall
socket
fs
magic
crypto)
set(RADARE2_LIBRARIES "")
set(RADARE2_LIBRARIES_VARS "")
foreach(libname ${RADARE2_LIBRARY_NAMES})
find_library(RADARE2_LIBRARY_${libname}
r_${libname}
HINTS
"$ENV{HOME}/bin/prefix/radare2/lib"
/usr/local/lib
/usr/lib)
list(APPEND RADARE2_LIBRARIES ${RADARE2_LIBRARY_${libname}})
list(APPEND RADARE2_LIBRARIES_VARS "RADARE2_LIBRARY_${libname}")
endforeach()
set(RADARE2_LIBRARY_DIRS "")
else()
# support sys/user.sh install
set(RADARE2_CMAKE_PREFIX_PATH_TEMP ${CMAKE_PREFIX_PATH})
list(APPEND CMAKE_PREFIX_PATH "$ENV{HOME}/bin/prefix/radare2")
find_package(PkgConfig REQUIRED)
pkg_search_module(RADARE2 REQUIRED r_core)
# reset CMAKE_PREFIX_PATH
set(CMAKE_PREFIX_PATH ${RADARE2_CMAKE_PREFIX_PATH_TEMP})
mark_as_advanced(RADARE2_CMAKE_PREFIX_PATH_TEMP)
endif()
include(FindPackageHandleStandardArgs) include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(RADARE2 REQUIRED_VARS ${RADARE2_LIBRARIES_VARS} RADARE2_INCLUDE_DIRS) find_package_handle_standard_args(RADARE2 REQUIRED_VARS RADARE2_LIBRARIES RADARE2_INCLUDE_DIRS)
mark_as_advanced(RADARE2_LIBRARIES_VARS) mark_as_advanced(RADARE2_LIBRARIES_VARS)