154 lines
4.6 KiB
CMake
154 lines
4.6 KiB
CMake
if(POLICY CMP0042)
|
|
# http://www.cmake.org/cmake/help/v3.0/policy/CMP0042.html
|
|
cmake_policy(SET CMP0042 NEW)
|
|
endif(POLICY CMP0042)
|
|
|
|
if (POLICY CMP0048)
|
|
# use old policy to honor version set using VERSION_* variables to preserve backwards
|
|
# compatibility. change OLD to NEW when minimum cmake version is updated to 3.* and
|
|
# set VERSION using project(capstone VERSION 4.0.0).
|
|
# http://www.cmake.org/cmake/help/v3.0/policy/CMP0048.html
|
|
cmake_policy (SET CMP0048 OLD)
|
|
endif()
|
|
|
|
add_definitions(-DCAPSTONE_USE_SYS_DYN_MEM)
|
|
|
|
## sources
|
|
set(SOURCES_ENGINE
|
|
Source/cs.c
|
|
Source/MCInst.c
|
|
Source/MCInstrDesc.c
|
|
Source/MCRegisterInfo.c
|
|
Source/SStream.c
|
|
Source/utils.c
|
|
)
|
|
set(HEADERS_ENGINE
|
|
Source/cs_priv.h
|
|
Source/LEB128.h
|
|
Source/MathExtras.h
|
|
Source/MCDisassembler.h
|
|
Source/MCFixedLenDisassembler.h
|
|
Source/MCInst.h
|
|
Source/MCInstrDesc.h
|
|
Source/MCRegisterInfo.h
|
|
Source/SStream.h
|
|
Source/utils.h
|
|
)
|
|
|
|
set(HEADERS_COMMON
|
|
Source/include/capstone/arm64.h
|
|
Source/include/capstone/arm.h
|
|
Source/include/capstone/capstone.h
|
|
Source/include/capstone/evm.h
|
|
Source/include/capstone/mips.h
|
|
Source/include/capstone/ppc.h
|
|
Source/include/capstone/x86.h
|
|
Source/include/capstone/sparc.h
|
|
Source/include/capstone/systemz.h
|
|
Source/include/capstone/xcore.h
|
|
Source/include/capstone/m68k.h
|
|
Source/include/capstone/tms320c64x.h
|
|
Source/include/capstone/m680x.h
|
|
Source/include/capstone/mos65xx.h
|
|
Source/include/capstone/platform.h
|
|
)
|
|
|
|
## architecture support
|
|
if (WTF_CPU_ARM)
|
|
add_definitions(-DCAPSTONE_HAS_ARM)
|
|
set(SOURCES_ARM
|
|
Source/arch/ARM/ARMDisassembler.c
|
|
Source/arch/ARM/ARMInstPrinter.c
|
|
Source/arch/ARM/ARMMapping.c
|
|
Source/arch/ARM/ARMModule.c
|
|
)
|
|
set(HEADERS_ARM
|
|
Source/arch/ARM/ARMAddressingModes.h
|
|
Source/arch/ARM/ARMBaseInfo.h
|
|
Source/arch/ARM/ARMDisassembler.h
|
|
Source/arch/ARM/ARMGenAsmWriter.inc
|
|
Source/arch/ARM/ARMGenDisassemblerTables.inc
|
|
Source/arch/ARM/ARMGenInstrInfo.inc
|
|
Source/arch/ARM/ARMGenRegisterInfo.inc
|
|
Source/arch/ARM/ARMGenSubtargetInfo.inc
|
|
Source/arch/ARM/ARMInstPrinter.h
|
|
Source/arch/ARM/ARMMapping.h
|
|
Source/arch/ARM/ARMMappingInsn.inc
|
|
Source/arch/ARM/ARMMappingInsnOp.inc
|
|
)
|
|
set(HEADERS_ARM
|
|
Source/arch/ARM/ARMAddressingModes.h
|
|
Source/arch/ARM/ARMBaseInfo.h
|
|
Source/arch/ARM/ARMDisassembler.h
|
|
Source/arch/ARM/ARMGenAsmWriter.inc
|
|
Source/arch/ARM/ARMGenDisassemblerTables.inc
|
|
Source/arch/ARM/ARMGenInstrInfo.inc
|
|
Source/arch/ARM/ARMGenRegisterInfo.inc
|
|
Source/arch/ARM/ARMGenSubtargetInfo.inc
|
|
Source/arch/ARM/ARMInstPrinter.h
|
|
Source/arch/ARM/ARMMapping.h
|
|
)
|
|
endif ()
|
|
|
|
if (WTF_CPU_MIPS)
|
|
add_definitions(-DCAPSTONE_HAS_MIPS)
|
|
set(SOURCES_MIPS
|
|
Source/arch/Mips/MipsDisassembler.c
|
|
Source/arch/Mips/MipsInstPrinter.c
|
|
Source/arch/Mips/MipsMapping.c
|
|
Source/arch/Mips/MipsModule.c
|
|
)
|
|
set(HEADERS_MIPS
|
|
Source/arch/Mips/MipsDisassembler.h
|
|
Source/arch/Mips/MipsGenAsmWriter.inc
|
|
Source/arch/Mips/MipsGenDisassemblerTables.inc
|
|
Source/arch/Mips/MipsGenInstrInfo.inc
|
|
Source/arch/Mips/MipsGenRegisterInfo.inc
|
|
Source/arch/Mips/MipsGenSubtargetInfo.inc
|
|
Source/arch/Mips/MipsInstPrinter.h
|
|
Source/arch/Mips/MipsMapping.h
|
|
Source/arch/Mips/MipsMappingInsn.inc
|
|
)
|
|
set(HEADERS_MIPS
|
|
Source/arch/Mips/MipsDisassembler.h
|
|
Source/arch/Mips/MipsGenAsmWriter.inc
|
|
Source/arch/Mips/MipsGenDisassemblerTables.inc
|
|
Source/arch/Mips/MipsGenInstrInfo.inc
|
|
Source/arch/Mips/MipsGenRegisterInfo.inc
|
|
Source/arch/Mips/MipsGenSubtargetInfo.inc
|
|
Source/arch/Mips/MipsInstPrinter.h
|
|
Source/arch/Mips/MipsMapping.h
|
|
)
|
|
endif ()
|
|
|
|
set(capstone_SOURCES
|
|
${SOURCES_ENGINE}
|
|
${SOURCES_ARM}
|
|
${SOURCES_MIPS}
|
|
)
|
|
|
|
set(capstone_HEADERS
|
|
${HEADERS_COMMON}
|
|
${HEADERS_ENGINE}
|
|
${HEADERS_ARM}
|
|
${HEADERS_MIPS}
|
|
)
|
|
|
|
set(capstone_INCLUDE_DIRECTORIES "${THIRDPARTY_DIR}/capstone/Source/include")
|
|
|
|
## targets
|
|
add_library(capstone STATIC ${capstone_SOURCES} ${capstone_HEADERS})
|
|
set_property(TARGET capstone PROPERTY OUTPUT_NAME capstone)
|
|
target_include_directories(capstone PRIVATE ${capstone_INCLUDE_DIRECTORIES})
|
|
|
|
if (COMPILER_IS_GCC_OR_CLANG)
|
|
WEBKIT_ADD_TARGET_C_FLAGS(capstone
|
|
-Wno-sign-compare
|
|
-Wno-unused-parameter
|
|
-Wno-implicit-fallthrough
|
|
-Wno-missing-field-initializers
|
|
-Wno-missing-format-attribute
|
|
-Wno-discarded-qualifiers
|
|
)
|
|
endif ()
|