| 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 () |