# Code generated by Visual Studio kit, DO NOT EDIT.
cmake_minimum_required(VERSION 3.28)
project(hyperdbg C CXX)
set(CMAKE_CXX_STANDARD 23)
enable_language(ASM_MASM)
set_property(GLOBAL PROPERTY USE_FOLDERS ON)

list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}")
find_package(WDK REQUIRED)

	include_directories(
	       "dependencies/zydis/include"
	       "dependencies/zydis/src"
	       "dependencies/zydis/dependencies/zycore/include"
	)

	file(GLOB ZydisSourceFiles "dependencies/zydis/src/*.c")
	file(GLOB ZycoreSourceFiles "dependencies/zydis/dependencies/zycore/*.c")

	set(SourceFiles
	       ${ZydisSourceFiles}
	       ${ZycoreSourceFiles}
	       #        examples/ZydisWinKernel.c
	)

	add_definitions(
	       -DZYAN_NO_LIBC
	       -DZYDIS_NO_LIBC
	       -DZYCORE_STATIC_BUILD
	       -DZYDIS_STATIC_BUILD
	)

	wdk_add_library(zydisKernel
	       KMDF 1.15
	       ${SourceFiles}
	)
link_directories(libraries/kdserial/x64)
add_subdirectory(kdserial)
target_link_libraries(kdserial kdserialtransport kdhv kdtelemetry)


add_subdirectory(hyperlog)
link_directories(libraries/zydis/kernel)
add_subdirectory(hyperhv)
target_link_libraries(hyperhv Zycore Zydis)


add_subdirectory(hyperkd)
target_link_libraries(hyperkd hyperlog hyperhv kdserial)


add_subdirectory(dependencies/pdbex/Source)

add_subdirectory(symbol-parser)
target_link_libraries(symbol-parser pdbex)


add_subdirectory(script-engine)
target_link_libraries(script-engine symbol-parser)

link_directories(libraries/zydis/user libraries/keystone/release-lib)
add_subdirectory(libhyperdbg)
target_link_libraries(libhyperdbg Zycore Zydis script-engine keystone)


add_subdirectory(hyperdbg-test)

add_subdirectory(hyperdbg-cli)
target_link_libraries(hyperdbg-cli libhyperdbg)



#set(save_src_dir ${CMAKE_CURRENT_SOURCE_DIR}/examples)
#execute_process( COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/../examples ${save_src_dir})
#
#add_subdirectory(examples/kernel/hyperdbg_driver)
#target_link_libraries(hyperdbg_driver hyperlog hyperhv)
#
#
#add_subdirectory(examples/user/hyperdbg_app)
#target_link_libraries(hyperdbg_app libhyperdbg)

