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