llvm-project/llvm/lib/ObjCopy/CMakeLists.txt
Finn Plummer 15babbaf5d
[DirectX] Add boilerplate integration of objcopy for DXContainerObjectFile (#153079)
This pr implements the boiler plate required to use `llvm-objcopy` for
`DXContainer` object files.

It defines a minimal structure `object` to represent the `DXContainer`
header and the following parts.
This structure is a simple representation of the object data to allow
for simple modifications at the granularity of each part. It follows
similarily to how the respective `object`s are defined for `ELF`,
`wasm`, `XCOFF`, etc.

This is the first step to implement
https://github.com/llvm/llvm-project/issues/150275 and
https://github.com/llvm/llvm-project/issues/150277 as compiler actions
that invoke `llvm-objcopy` for functionality.
2025-08-20 10:58:42 -07:00

95 lines
2.1 KiB
CMake

source_group("Header Files" REGULAR_EXPRESSION
.*[.]h
)
source_group("Header Files\\COFF" REGULAR_EXPRESSION
COFF/.*[.]h
)
source_group("Header Files\\ELF" REGULAR_EXPRESSION
ELF/.*[.]h
)
source_group("Header Files\\MachO" REGULAR_EXPRESSION
MachO/.*[.]h
)
source_group("Header Files\\wasm" REGULAR_EXPRESSION
wasm/.*[.]h
)
source_group("Header Files\\XCOFF" REGULAR_EXPRESSION
XCOFF/.*[.]h
)
source_group("Header Files\\DXContainer" REGULAR_EXPRESSION
DXContainer/.*[.]h
)
source_group("Source Files" REGULAR_EXPRESSION
.*[.]cpp
)
source_group("Source Files\\COFF" REGULAR_EXPRESSION
COFF/.*[.]cpp
)
source_group("Source Files\\ELF" REGULAR_EXPRESSION
ELF/.*[.]cpp
)
source_group("Source Files\\MachO" REGULAR_EXPRESSION
MachO/.*[.]cpp
)
source_group("Source Files\\wasm" REGULAR_EXPRESSION
wasm/.*[.]cpp
)
source_group("Source Files\\XCOFF" REGULAR_EXPRESSION
XCOFF/.*[.]cpp
)
source_group("Source Files\\DXContainer" REGULAR_EXPRESSION
DXContainer/.*[.]cpp
)
add_llvm_component_library(LLVMObjCopy
Archive.cpp
DXContainer/DXContainerObjcopy.cpp
DXContainer/DXContainerReader.cpp
DXContainer/DXContainerWriter.cpp
CommonConfig.cpp
ObjCopy.cpp
ConfigManager.cpp
COFF/COFFObjcopy.cpp
COFF/COFFObject.cpp
COFF/COFFReader.cpp
COFF/COFFWriter.cpp
ELF/ELFObjcopy.cpp
ELF/ELFObject.cpp
MachO/MachOObjcopy.cpp
MachO/MachOReader.cpp
MachO/MachOWriter.cpp
MachO/MachOLayoutBuilder.cpp
MachO/MachOObject.cpp
wasm/WasmObject.cpp
wasm/WasmReader.cpp
wasm/WasmWriter.cpp
wasm/WasmObjcopy.cpp
XCOFF/XCOFFObjcopy.cpp
XCOFF/XCOFFReader.cpp
XCOFF/XCOFFWriter.cpp
ADDITIONAL_HEADER_DIRS
${LLVM_MAIN_INCLUDE_DIR}/llvm/ObjCopy
${LLVM_MAIN_INCLUDE_DIR}/llvm/ObjCopy/COFF
${LLVM_MAIN_INCLUDE_DIR}/llvm/ObjCopy/DXContainer
${LLVM_MAIN_INCLUDE_DIR}/llvm/ObjCopy/ELF
${LLVM_MAIN_INCLUDE_DIR}/llvm/ObjCopy/MachO
${LLVM_MAIN_INCLUDE_DIR}/llvm/ObjCopy/wasm
${LLVM_MAIN_INCLUDE_DIR}/llvm/ObjCopy/XCOFF
COFF
DXContainer
ELF
MachO
wasm
XCOFF
DEPENDS
intrinsics_gen
LINK_COMPONENTS
BinaryFormat
Object
Support
MC
)