diff --git a/CMakeLists.txt b/CMakeLists.txt index a91480445..c3d432e0b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -211,14 +211,8 @@ endif() #DisAsm/Zydis if (POLYHOOK_USE_EXTERNAL_ZYDIS) - find_library(ZYDIS_LIBRARY NAMES zydis) - find_library(ZYCORE_LIBRARY NAMES zycore) - find_path(ZYDIS_INCLUDE_DIR NAMES zydis/zydis.h) - find_path(ZYCORE_INCLUDE_DIR NAMES zycore/zycore.h) - target_link_libraries(${PROJECT_NAME} PUBLIC ${ZYDIS_LIBRARY}) - target_link_libraries(${PROJECT_NAME} PUBLIC ${ZYCORE_LIBRARY}) - target_include_directories(${PROJECT_NAME} PUBLIC ${ZYDIS_INCLUDE_DIR}) - target_include_directories(${PROJECT_NAME} PUBLIC ${ZYCORE_INCLUDE_DIR}) + find_package(zydis REQUIRED) + target_link_libraries(${PROJECT_NAME} PUBLIC Zydis::Zydis) else() target_link_libraries(${PROJECT_NAME} PUBLIC $<BUILD_INTERFACE:Zydis>) target_include_directories(${PROJECT_NAME} PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/zydis/include>) @@ -231,10 +225,8 @@ install(FILES ${PROJECT_SOURCE_DIR}/polyhook2/ZydisDisassembler.hpp DESTINATION function(link_asmjit) if (POLYHOOK_USE_EXTERNAL_ASMJIT) - find_library(ASMJIT_LIBRARY NAMES asmjit) - find_path(ASMJIT_INCLUDE_DIR NAMES asmjit/asmjit.h) - target_link_libraries(${PROJECT_NAME} PRIVATE ${ASMJIT_LIBRARY}) - target_include_directories(${PROJECT_NAME} PUBLIC ${ASMJIT_INCLUDE_DIR}) + find_package(asmjit REQUIRED) + target_link_libraries(${PROJECT_NAME} PRIVATE asmjit::asmjit) else() target_link_libraries(${PROJECT_NAME} PRIVATE $<BUILD_INTERFACE:asmjit>) target_include_directories(${PROJECT_NAME} PUBLIC "$<BUILD_INTERFACE:${ASMJIT_SRC}>") @@ -238,10 +238,8 @@ if(POLYHOOK_FEATURE_DETOURS) link_asmjit() if (POLYHOOK_USE_EXTERNAL_ASMTK) - find_library(ASMTK_LIBRARY NAMES asmtk) - find_path(ASMTK_INCLUDE_DIR NAMES asmtk/asmtk.h) - target_link_libraries(${PROJECT_NAME} PUBLIC ${ASMTK_LIBRARY}) - target_include_directories(${PROJECT_NAME} PUBLIC ${ASMTK_INCLUDE_DIR}) + find_package(asmtk REQUIRED) + target_link_libraries(${PROJECT_NAME} PRIVATE asmjit::asmtk) else() target_link_libraries(${PROJECT_NAME} PUBLIC $<BUILD_INTERFACE:asmtk>) target_include_directories(${PROJECT_NAME} PUBLIC "$<BUILD_INTERFACE:${ASMTK_SRC}>") diff --git a/PolyHook_2-config.cmake.in b/PolyHook_2-config.cmake.in index 709f8b5d9..3add035e3 100644 --- a/PolyHook_2-config.cmake.in +++ b/PolyHook_2-config.cmake.in @@ -10,5 +10,10 @@ set(POLYHOOK_FEATURE_INLINENTD @POLYHOOK_FEATURE_INLINENTD@) set(POLYHOOK_FEATURE_PE @POLYHOOK_FEATURE_PE@) set(POLYHOOK_FEATURE_VIRTUALS @POLYHOOK_FEATURE_VIRTUALS@) +include(CMakeFindDependencyMacro) +find_dependency(Zydis) +find_dependency(asmjit) +find_dependency(asmtk) + get_filename_component(POLYHOOK_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) include("${POLYHOOK_CMAKE_DIR}/PolyHook_2-targets.cmake")