rizin/librz/RizinConfig.cmake.in
Riccardo Schirone 4fe99052f4
build: propagate OpenSSL in CMake exports (#6284)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: NOT XVilka <notxvilka@proton.me>
2026-05-06 10:04:34 +00:00

111 lines
2.7 KiB
CMake

################################################################################
#
# This module provides the Rizin package, which is composed of multiple
# components, such as:
#
# Analysis
# Asm
# Bin
# Bp
# Config
# Cons
# Core
# Crypto
# Debug
# Demangler
# Diff
# Egg
# Flag
# Hash
# Il
# IO
# Lang
# Librz
# Magic
# Main
# Parse
# Reg
# Search
# Sign
# Socket
# Syscall
# Type
# Util
#
# This file is intended to be consumed by clients who wish to use Rizin libraries
# from CMake. It can be used by doing `find_package(Rizin COMPONENTS Bin IO)` from
# within a `CMakeLists.txt` file.
# Provides the following variables:
#
# Rizin_PLUGINDIR - Directory where plugins are placed, without the prefix part
#
################################################################################
set(Rizin_VERSION @RZ_VERSION@)
if(NOT Rizin_FIND_COMPONENTS)
set(Rizin_FIND_COMPONENTS Core)
endif()
set(_supported_components
Analysis
Asm
Bin
Bp
Config
Cons
Core
Crypto
Debug
Demangler
Diff
Egg
Flag
Hash
Il
IO
Lang
Librz
Magic
Main
Parse
Reg
Search
Sign
Socket
Syscall
Type
Util
)
get_filename_component(_rizin_package_cmake_path "${CMAKE_CURRENT_LIST_DIR}/.." ABSOLUTE)
foreach(_rizin_component_name ${Rizin_FIND_COMPONENTS})
string(TOLOWER ${_rizin_component_name} _rizin_component_lower)
if(NOT ";${_supported_components};" MATCHES ";${_rizin_component_name};")
set(Rizin_FOUND False)
set(Rizin_NOT_FOUND_MESSAGE "Unsupported component: ${_rizin_component_name}")
return()
endif()
if (TARGET "Rizin::${_rizin_component_name}")
# Already got this component, trying to re-add the
# target below would be an error
continue()
endif()
find_package(rz_${_rizin_component_lower} PATHS ${_rizin_package_cmake_path} NO_DEFAULT_PATH)
if (NOT rz_${_rizin_component_lower}_FOUND)
set(Rizin_FOUND False)
set(Rizin_NOT_FOUND_MESSAGE "Failed to find Rizin component ${_rizin_component_name}")
return()
endif()
add_library(Rizin::${_rizin_component_name} UNKNOWN IMPORTED)
get_target_property(Rizin_${_rizin_component_name}_LOCATION rz_${_rizin_component_lower}::rz_${_rizin_component_lower} IMPORTED_LOCATION)
set_target_properties(Rizin::${_rizin_component_name} PROPERTIES
IMPORTED_LOCATION "${Rizin_${_rizin_component_name}_LOCATION}"
IMPORTED_LINK_INTERFACE_LIBRARIES "${rz_${_rizin_component_lower}_LIBRARIES}"
INTERFACE_LINK_DIRECTORIES "${rz_${_rizin_component_lower}_LIBRARY_DIRS}"
INTERFACE_INCLUDE_DIRECTORIES "${rz_${_rizin_component_lower}_INCLUDE_DIRS}")
endforeach()
set(Rizin_PLUGINDIR @INSTALL_PLUGDIR@)