x64dbg/cmake.toml

296 lines
6.4 KiB
TOML
Raw Permalink Normal View History

2024-08-05 15:54:28 +02:00
[cmake]
version = "3.15"
cmkr-include = "cmake/cmkr.cmake"
2025-03-16 01:49:53 +01:00
[options]
X64DBG_BUILD_IN_TREE = true
X64DBG_RELEASE = false
2025-03-16 01:49:53 +01:00
[variables]
CMAKE_MODULE_PATH = "${CMAKE_SOURCE_DIR}/cmake"
2024-08-05 15:54:28 +02:00
[project]
name = "x64dbg"
description = "An open-source x64/x32 debugger for windows."
msvc-runtime = "dynamic"
2024-08-05 15:54:28 +02:00
include-before = [
"cmake/VSToolchain.cmake"
]
include-after = [
"cmake/VSFlags.cmake",
]
[conditions]
x86 = "CMAKE_SIZEOF_VOID_P EQUAL 4"
x64 = "CMAKE_SIZEOF_VOID_P EQUAL 8"
[find-package]
2025-06-30 02:18:23 +02:00
Qt5 = { components = ["Widgets", "WinExtras"] }
2024-08-05 15:54:28 +02:00
[subdir."src/zydis_wrapper"]
[subdir."src/gui/Src/ThirdPartyLibs/md4c"]
[subdir."src/third_party"]
2026-03-21 17:36:00 +01:00
[subdir."src/tests"]
2024-08-05 15:54:28 +02:00
[target.bridge]
type = "shared"
sources = [
"src/bridge/*.cpp",
"src/bridge/*.c",
"src/bridge/*.h",
]
private-compile-definitions = [
"BUILD_BRIDGE",
]
[target.bridge.properties]
x86.OUTPUT_NAME = "x32bridge"
x64.OUTPUT_NAME = "x64bridge"
[target.btparser]
type = "static"
sources = [
"src/dbg/btparser/btparser/lexer.cpp",
"src/dbg/btparser/btparser/helpers.h",
"src/dbg/btparser/btparser/keywords.h",
"src/dbg/btparser/btparser/lexer.h",
"src/dbg/btparser/btparser/operators.h",
"src/dbg/btparser/btparser/parser.h",
"src/dbg/btparser/btparser/testfiles.h",
]
include-directories = [
"src/dbg/btparser",
]
2026-02-03 00:24:22 +01:00
clang-any.compile-options = ["-Wno-self-assign-field"]
2024-08-05 15:54:28 +02:00
[target.dbg]
type = "shared"
sources = [
"src/dbg/*.cpp",
"src/dbg/*.h",
"src/dbg/analysis/*.cpp",
"src/dbg/analysis/*.h",
"src/dbg/commands/*.cpp",
"src/dbg/commands/*.h",
"src/dbg/DeviceNameResolver/*.h",
"src/dbg/jansson/*.h",
"src/dbg/lz4/*.h",
"src/dbg/msdia/*.cpp",
"src/dbg/msdia/*.h",
"src/dbg/ntdll/*.h",
"src/dbg/TitanEngine/*.h",
"src/dbg/WinInet-Downloader/*.cpp",
"src/dbg/WinInet-Downloader/*.h",
"src/dbg/XEDParse/*.h",
]
private-link-libraries = [
"::zydis_wrapper",
"::bridge",
"::btparser",
2024-08-05 15:54:28 +02:00
"Psapi",
"Shlwapi",
"Ws2_32",
"Wininet",
"Iphlpapi",
2024-08-05 15:54:28 +02:00
]
x86.private-link-libraries = [
"src/dbg/dbghelp/dbghelp_x86.lib",
"src/dbg/DeviceNameResolver/DeviceNameResolver_x86.lib",
"src/dbg/jansson/jansson_x86.lib",
"src/dbg/lz4/lz4_x86.lib",
"src/dbg/ntdll/ntdll_x86.lib",
"src/dbg/TitanEngine/TitanEngine_x86.lib",
"src/dbg/XEDParse/XEDParse_x86.lib",
"src/dbg/LLVMDemangle/LLVMDemangle_x86.lib",
]
x64.private-link-libraries = [
"src/dbg/dbghelp/dbghelp_x64.lib",
"src/dbg/DeviceNameResolver/DeviceNameResolver_x64.lib",
"src/dbg/jansson/jansson_x64.lib",
"src/dbg/lz4/lz4_x64.lib",
"src/dbg/ntdll/ntdll_x64.lib",
"src/dbg/TitanEngine/TitanEngine_x64.lib",
"src/dbg/XEDParse/XEDParse_x64.lib",
"src/dbg/LLVMDemangle/LLVMDemangle_x64.lib",
]
private-compile-definitions = [
"BUILD_DBG",
2025-08-05 23:09:44 +02:00
"NOMINMAX",
2024-08-05 15:54:28 +02:00
]
private-include-directories = [
"src/dbg",
"src/dbg/analysis",
"src/dbg/commands",
]
msvc.link-options = [
"/DELAYLOAD:TitanEngine.dll",
]
msvc.link-libraries = [
"Delayimp",
]
2024-08-05 15:54:28 +02:00
[target.dbg.properties]
x86.OUTPUT_NAME = "x32dbg"
x64.OUTPUT_NAME = "x64dbg"
[target.gui]
type = "shared"
sources = [
"src/gui/**.cpp",
"src/gui/**.h",
"src/gui/**.ui",
"src/gui/**.qrc",
]
private-link-libraries = [
"Qt5::Widgets",
"Qt5::WinExtras",
"::zydis_wrapper",
"::bridge",
"::md4c-html",
2024-08-05 15:54:28 +02:00
"winmm",
2025-06-30 02:18:23 +02:00
"wininet",
"dwmapi"
2024-08-05 15:54:28 +02:00
]
x86.private-link-libraries = [
"src/gui/Src/ThirdPartyLibs/ldconvert/ldconvert_x86.lib",
]
x64.private-link-libraries = [
"src/gui/Src/ThirdPartyLibs/ldconvert/ldconvert_x64.lib",
]
private-include-directories = [
"src",
"src/gui/Src",
"src/gui/Src/Gui",
"src/gui/Src/BasicView",
"src/gui/Src/Disassembler",
"src/gui/Src/Memory",
"src/gui/Src/Bridge",
"src/gui/Src/Global",
"src/gui/Src/Utils",
"src/gui/Src/ThirdPartyLibs/ldconvert",
]
private-compile-definitions = [
"BUILD_LIB",
"NOMINMAX",
2025-07-21 01:13:02 +02:00
"X64DBG",
2024-08-05 15:54:28 +02:00
]
X64DBG_RELEASE.compile-definitions = ["X64DBG_RELEASE"]
2025-01-24 02:06:03 +01:00
include-after = ["cmake/deps.cmake"]
2024-08-05 15:54:28 +02:00
[target.gui.properties]
x86.OUTPUT_NAME = "x32gui"
x64.OUTPUT_NAME = "x64gui"
2025-01-24 02:06:03 +01:00
AUTOMOC = true
AUTORCC = true
AUTOUIC = true
2024-08-05 15:54:28 +02:00
[target.exe]
type = "executable"
msvc-runtime = "static"
2024-08-05 15:54:28 +02:00
sources = [
"src/exe/*.cpp",
"src/exe/*.h",
"src/exe/manifest.xml",
"src/exe/resource.rc",
2025-03-30 17:50:01 +02:00
"src/exe/strings_utf8.rc",
2024-08-05 15:54:28 +02:00
]
x86.sources = ["src/exe/icon32.rc"]
x64.sources = ["src/exe/icon64.rc"]
link-libraries = [
"::bridge",
2024-08-05 15:54:28 +02:00
"Wintrust",
]
msvc.link-options = [
# resource.rc already embeds manifest.xml as RT_MANIFEST, so disable the
# linker's default manifest to avoid embedding a second one.
"/MANIFEST:NO",
"/DELAYLOAD:user32.dll",
"/DELAYLOAD:wintrust.dll",
"/DELAYLOAD:$<TARGET_FILE_NAME:bridge>",
"/NOIMPLIB",
"/NOEXP",
"/LARGEADDRESSAWARE",
]
msvc.link-libraries = [
"Delayimp",
2024-08-05 15:54:28 +02:00
]
2026-02-02 15:58:00 +01:00
# Make the executable build everything
dependencies = [
"dbg",
"gui",
"loaddll",
"deps",
"third_party",
]
2026-02-02 15:58:00 +01:00
x86.dependencies = ["launcher"]
2024-08-05 15:54:28 +02:00
[target.exe.properties]
x86.OUTPUT_NAME = "x32dbg"
x64.OUTPUT_NAME = "x64dbg"
x86.ARCHIVE_OUTPUT_NAME = "x32dbg_exe"
x64.ARCHIVE_OUTPUT_NAME = "x64dbg_exe"
2024-08-05 15:54:28 +02:00
x86.PDB_NAME = "x32dbg_exe"
x64.PDB_NAME = "x64dbg_exe"
WIN32_EXECUTABLE = "ON"
2026-02-02 15:58:00 +01:00
[target.loaddll]
type = "executable"
msvc-runtime = "static"
sources = [
"src/loaddll/loaddll.cpp",
]
x86.link-libraries = [
"src/dbg/ntdll/ntdll_x86.lib",
]
x64.link-libraries = [
"src/dbg/ntdll/ntdll_x64.lib",
]
msvc.link-options = [
"/DELAYLOAD:user32.dll",
]
msvc.link-libraries = [
"Delayimp",
]
[target.loaddll.properties]
WIN32_EXECUTABLE = "ON"
[target.headless]
type = "executable"
sources = [
"src/headless/*.cpp",
"src/headless/*.h",
]
link-libraries = [
"::bridge",
]
msvc.link-options = [
"/LARGEADDRESSAWARE",
]
2026-02-02 15:58:00 +01:00
dependencies = ["exe"]
2024-08-05 15:54:28 +02:00
[target.launcher]
type = "executable"
condition = "x86"
msvc-runtime = "static"
2024-08-05 15:54:28 +02:00
sources = [
"src/launcher/*.cpp",
"src/exe/icon.rc",
"src/exe/resource.rc",
2025-03-30 17:50:01 +02:00
"src/exe/strings_utf8.rc",
2024-08-05 15:54:28 +02:00
]
msvc.link-options = [
# resource.rc already embeds manifest.xml as RT_MANIFEST, so disable the
# linker's default manifest to avoid embedding a second one.
"/MANIFEST:NO",
]
2024-08-05 15:54:28 +02:00
link-libraries = [
"Shlwapi",
"Comctl32",
]
[target.launcher.properties]
OUTPUT_NAME = "x96dbg"
2025-03-16 01:49:53 +01:00
WIN32_EXECUTABLE = "ON"
X64DBG_BUILD_IN_TREE.RUNTIME_OUTPUT_DIRECTORY = "${PROJECT_SOURCE_DIR}/bin"