# Code generated by Visual Studio kit, DO NOT EDIT.
set(SourceFiles
    "../include/platform/general/header/Environment.h"
    "../include/platform/user/header/Windows.h"
    "header/debugger/misc/assembler.h"
    "header/debugger/commands/commands.h"
    "header/common/common.h"
    "header/debugger/communication/communication.h"
    "header/debugger/core/debugger.h"
    "header/export/export.h"
    "header/debugger/communication/forwarding.h"
    "header/globals/globals.h"
    "header/debugger/commands/help.h"
    "header/hwdbg/hwdbg-interpreter.h"
    "header/hwdbg/hwdbg-scripts.h"
    "header/debugger/misc/inipp.h"
    "header/debugger/driver-loader/install.h"
    "header/debugger/kernel-level/kd.h"
    "header/app/libhyperdbg.h"
    "header/app/messaging.h"
    "header/app/packets.h"
    "header/debugger/core/steppings.h"
    "header/debugger/misc/pci-id.h"
    "header/common/list.h"
    "header/debugger/communication/namedpipe.h"
    "header/objects/objects.h"
    "header/debugger/user-level/pe-parser.h"
    "header/rev/rev-ctrl.h"
    "header/debugger/script-engine/script-engine.h"
    "header/debugger/script-engine/symbol.h"
    "header/debugger/tests/tests.h"
    "header/debugger/transparency/transparency.h"
    "header/debugger/user-level/ud.h"
    "pch.h"
    "../include/platform/user/code/platform-intrinsics.c"
    "../include/platform/user/code/platform-lib-calls.c"
    "../include/platform/user/code/platform-serial.c"
    "../include/platform/user/code/platform-ioctl.c"
    "../include/platform/user/code/platform-signal.c"
    "../include/platform/user/code/platform-socket.c"
    "../include/platform/user/code/windows-only/windows-privilege.c"
    "../script-eval/code/Functions.c"
    "../script-eval/code/Keywords.c"
    "../script-eval/code/PseudoRegisters.c"
    "../script-eval/code/Regs.c"
    "../script-eval/code/ScriptEngineEval.c"
    "code/common/spinlock.cpp"
    "code/debugger/commands/debugging-commands/a.cpp"
    "code/debugger/commands/debugging-commands/continue.cpp"
    "code/debugger/commands/debugging-commands/gg.cpp"
    "code/debugger/commands/debugging-commands/core.cpp"
    "code/debugger/commands/debugging-commands/dt-struct.cpp"
    "code/debugger/commands/debugging-commands/gu.cpp"
    "code/debugger/commands/debugging-commands/k.cpp"
    "code/debugger/commands/debugging-commands/preactivate.cpp"
    "code/debugger/commands/debugging-commands/prealloc.cpp"
    "code/debugger/commands/extension-commands/apic.cpp"
    "code/debugger/commands/extension-commands/crwrite.cpp"
    "code/debugger/commands/extension-commands/idt.cpp"
    "code/debugger/commands/extension-commands/ioapic.cpp"
    "code/debugger/commands/extension-commands/lbr.cpp"
    "code/debugger/commands/extension-commands/lbrdump.cpp"
    "code/debugger/commands/extension-commands/pcicam.cpp"
    "code/debugger/commands/extension-commands/pcitree.cpp"
    "code/debugger/commands/extension-commands/pt.cpp"
    "code/debugger/commands/extension-commands/smi.cpp"
    "code/debugger/commands/extension-commands/xsetbv.cpp"
    "code/debugger/commands/extension-commands/rev.cpp"
    "code/debugger/commands/extension-commands/trace.cpp"
    "code/debugger/commands/extension-commands/track.cpp"
    "code/debugger/commands/extension-commands/mode.cpp"
    "code/debugger/commands/hwdbg-commands/hw.cpp"
    "code/debugger/commands/hwdbg-commands/hw_clk.cpp"
    "code/debugger/commands/meta-commands/dump.cpp"
    "code/debugger/commands/meta-commands/kill.cpp"
    "code/debugger/commands/meta-commands/pagein.cpp"
    "code/debugger/commands/meta-commands/pe.cpp"
    "code/debugger/commands/meta-commands/restart.cpp"
    "code/debugger/commands/meta-commands/start.cpp"
    "code/debugger/commands/meta-commands/switch.cpp"
    "code/debugger/commands/meta-commands/thread.cpp"
    "code/debugger/core/break-control.cpp"
    "code/debugger/core/debugger.cpp"
    "code/debugger/core/interpreter.cpp"
    "code/debugger/kernel-level/kd.cpp"
    "code/debugger/kernel-level/kernel-listening.cpp"
    "code/debugger/misc/assembler.cpp"
    "code/debugger/misc/callstack.cpp"
    "code/debugger/misc/disassembler.cpp"
    "code/debugger/misc/readmem.cpp"
    "code/debugger/script-engine/script-engine-wrapper.cpp"
    "code/debugger/script-engine/script-engine.cpp"
    "code/debugger/script-engine/symbol.cpp"
    "code/debugger/user-level/pe-parser.cpp"
    "code/debugger/user-level/ud.cpp"
    "code/debugger/user-level/user-listening.cpp"
    "code/export/export.cpp"
    "code/hwdbg/hwdbg-interpreter.cpp"
    "code/hwdbg/hwdbg-scripts.cpp"
    "code/objects/objects.cpp"
    "code/rev/rev-ctrl.cpp"
    "pch.cpp"
    "code/app/dllmain.cpp"
    "code/app/libhyperdbg.cpp"
    "code/app/messaging.cpp"
    "code/app/packets.cpp"
    "code/debugger/core/steppings.cpp"
    "code/debugger/misc/pci-id.cpp"
    "code/common/common.cpp"
    "code/debugger/commands/debugging-commands/bc.cpp"
    "code/debugger/commands/debugging-commands/bd.cpp"
    "code/debugger/commands/debugging-commands/be.cpp"
    "code/debugger/commands/debugging-commands/bl.cpp"
    "code/debugger/commands/debugging-commands/bp.cpp"
    "code/debugger/commands/debugging-commands/cpu.cpp"
    "code/debugger/commands/debugging-commands/d-u.cpp"
    "code/debugger/commands/debugging-commands/e.cpp"
    "code/debugger/commands/debugging-commands/eval.cpp"
    "code/debugger/commands/debugging-commands/events.cpp"
    "code/debugger/commands/debugging-commands/exit.cpp"
    "code/debugger/commands/debugging-commands/flush.cpp"
    "code/debugger/commands/debugging-commands/g.cpp"
    "code/debugger/commands/debugging-commands/i.cpp"
    "code/debugger/commands/debugging-commands/lm.cpp"
    "code/debugger/commands/debugging-commands/load.cpp"
    "code/debugger/commands/debugging-commands/output.cpp"
    "code/debugger/commands/debugging-commands/p.cpp"
    "code/debugger/commands/debugging-commands/pause.cpp"
    "code/debugger/commands/debugging-commands/print.cpp"
    "code/debugger/commands/debugging-commands/r.cpp"
    "code/debugger/commands/debugging-commands/rdmsr.cpp"
    "code/debugger/commands/debugging-commands/s.cpp"
    "code/debugger/commands/debugging-commands/settings.cpp"
    "code/debugger/commands/debugging-commands/sleep.cpp"
    "code/debugger/commands/debugging-commands/t.cpp"
    "code/debugger/commands/debugging-commands/test.cpp"
    "code/debugger/commands/debugging-commands/unload.cpp"
    "code/debugger/commands/debugging-commands/wrmsr.cpp"
    "code/debugger/commands/debugging-commands/x.cpp"
    "code/debugger/commands/extension-commands/cpuid.cpp"
    "ucpuid.cpp"
    "code/debugger/commands/extension-commands/dr.cpp"
    "code/debugger/commands/extension-commands/epthook.cpp"
    "code/debugger/commands/extension-commands/epthook2.cpp"
    "code/debugger/commands/extension-commands/exception.cpp"
    "code/debugger/commands/extension-commands/hide.cpp"
    "code/debugger/commands/extension-commands/interrupt.cpp"
    "code/debugger/commands/extension-commands/ioin.cpp"
    "code/debugger/commands/extension-commands/ioout.cpp"
    "code/debugger/commands/extension-commands/measure.cpp"
    "code/debugger/commands/extension-commands/monitor.cpp"
    "code/debugger/commands/extension-commands/msrread.cpp"
    "code/debugger/commands/extension-commands/msrwrite.cpp"
    "code/debugger/commands/extension-commands/pa2va.cpp"
    "code/debugger/commands/extension-commands/pmc.cpp"
    "code/debugger/commands/extension-commands/pte.cpp"
    "code/debugger/commands/extension-commands/syscall-sysret.cpp"
    "code/debugger/commands/extension-commands/tsc.cpp"
    "code/debugger/commands/extension-commands/unhide.cpp"
    "code/debugger/commands/extension-commands/va2pa.cpp"
    "code/debugger/commands/extension-commands/vmcall.cpp"
    "code/debugger/commands/meta-commands/attach.cpp"
    "code/debugger/commands/meta-commands/cls.cpp"
    "code/debugger/commands/meta-commands/connect.cpp"
    "code/debugger/commands/meta-commands/debug.cpp"
    "code/debugger/commands/meta-commands/detach.cpp"
    "code/debugger/commands/meta-commands/disconnect.cpp"
    "code/debugger/commands/meta-commands/formats.cpp"
    "code/debugger/commands/meta-commands/help.cpp"
    "code/debugger/commands/meta-commands/listen.cpp"
    "code/debugger/commands/meta-commands/logclose.cpp"
    "code/debugger/commands/meta-commands/logopen.cpp"
    "code/debugger/commands/meta-commands/process.cpp"
    "code/debugger/commands/meta-commands/script.cpp"
    "code/debugger/commands/meta-commands/status.cpp"
    "code/debugger/commands/meta-commands/sym.cpp"
    "code/debugger/commands/meta-commands/sympath.cpp"
    "code/debugger/communication/forwarding.cpp"
    "code/debugger/communication/namedpipe.cpp"
    "code/debugger/communication/remote-connection.cpp"
    "code/debugger/communication/tcpclient.cpp"
    "code/debugger/communication/tcpserver.cpp"
    "code/debugger/driver-loader/install.cpp"
    "code/debugger/tests/tests.cpp"
    "code/debugger/transparency/gaussian-rng.cpp"
    "code/debugger/transparency/transparency.cpp"
    "code/assembly/asm-vmx-checks-masm-windows.asm"
)
include_directories(
    "../dependencies/phnt"
    "../dependencies"
    "../dependencies/zydis/dependencies/zycore/include"
    "../include"
    "../dependencies/zydis/include"
    "."
    "../script-eval"
    "../dependencies/keystone/include"
)
set_source_files_properties(
    "../include/platform/user/code/platform-intrinsics.c"
    "../include/platform/user/code/platform-lib-calls.c"
    "../include/platform/user/code/platform-serial.c"
    "../include/platform/user/code/platform-ioctl.c"
    "../include/platform/user/code/platform-signal.c"
    "../include/platform/user/code/platform-socket.c"
    "../include/platform/user/code/windows-only/windows-privilege.c"
    "../script-eval/code/Functions.c"
    "../script-eval/code/Keywords.c"
    "../script-eval/code/PseudoRegisters.c"
    "../script-eval/code/Regs.c"
    "../script-eval/code/ScriptEngineEval.c"
    PROPERTIES LANGUAGE CXX
)

if(UNIX)
    list(REMOVE_ITEM SourceFiles "code/debugger/script-engine/symbol.cpp")
    list(APPEND SourceFiles "code/debugger/script-engine/symbol-linux.cpp")
    list(REMOVE_ITEM SourceFiles "code/debugger/user-level/pe-parser.cpp")
    list(APPEND SourceFiles "code/debugger/user-level/pe-parser-linux.cpp")
    list(REMOVE_ITEM SourceFiles "code/debugger/driver-loader/install.cpp")
    list(APPEND SourceFiles "code/debugger/driver-loader/install-linux.cpp")
    list(REMOVE_ITEM SourceFiles "code/debugger/communication/namedpipe.cpp")
    list(APPEND SourceFiles "code/debugger/communication/namedpipe-linux.cpp")

    #
    # pt.cpp (Intel PT command) is an un-ported Windows process-control TU
    # (OpenProcess/CreateToolhelp32Snapshot/CreateThread/WaitForMultipleObjects).
    # Keep it out of the Linux build until the process-control port lands and
    # swap in the stub that provides its 4 externally visible functions.
    #
    list(REMOVE_ITEM SourceFiles "code/debugger/commands/extension-commands/pt.cpp")
    list(APPEND SourceFiles "code/debugger/commands/extension-commands/pt-linux.cpp")

    #
    # The MASM (.asm) implementation only builds with the Microsoft assembler,
    # so swap it for the GAS (AT&T syntax) port and enable the ASM language so
    # CMake assembles the .S file with the system assembler.
    #
    # NOTE: the extension MUST be uppercase .S — the kernel-module build runs
    # with M= at the repo root, and kbuild's `make clean` deletes every lowercase
    # .s (it treats them as generated assembler intermediates), which would wipe
    # this hand-written source. Uppercase .S is a recognized source extension and
    # is left untouched. See linux/PORTING_STATUS.md.
    #
    list(REMOVE_ITEM SourceFiles "code/assembly/asm-vmx-checks-masm-windows.asm")
    list(APPEND SourceFiles "code/assembly/asm-vmx-checks-gas-unix.S")
    enable_language(ASM)
endif()

add_library(libhyperdbg SHARED ${SourceFiles})

if(UNIX)
    #
    # Enable the Intel TSX/RTM intrinsics (_xbegin/_xend/_XBEGIN_STARTED) used by
    # CheckAddressValidityUsingTsx() in common.cpp. GCC gates these behind -mrtm.
    # Harmless when unused: no RTM instructions are emitted unless the intrinsics
    # are actually called.
    #
    target_compile_options(libhyperdbg PRIVATE -mrtm)
endif()
