From 1182fb287079b3df0f4fdeaaf250368f206211fe Mon Sep 17 00:00:00 2001 From: Dan Date: Tue, 16 May 2017 13:59:39 +0200 Subject: [PATCH] CMake support --- CMakeLists.txt | 51 +++++++++++++++++++ Info.plist.in | 12 +++++ README.md | 13 +++++ .../xcschemes/xcschememanagement.plist | 27 ---------- 4 files changed, 76 insertions(+), 27 deletions(-) create mode 100644 CMakeLists.txt create mode 100644 Info.plist.in delete mode 100644 RISCV.xcodeproj/xcuserdata/dan.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..4e2b9d8 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,51 @@ +cmake_minimum_required(VERSION 3.0) + +set(PRODUCT_NAME RISCV) +project(${PRODUCT_NAME}) + +set(HOPPER_SDK_PATH ${CMAKE_SOURCE_DIR}/HopperSDK/include) +set(HOPPER_PLUGINS_PATH "~/Library/Application Support/Hopper/Plugins/V4") +set(HOPPER_PLUGIN_CPU_DIRNAME CPUs) +set(HOPPER_PLUGIN_CPU_EXTENSION hopperCPU) + +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin) +set(CMAKE_INSTALL_PREFIX ${HOPPER_PLUGINS_PATH} CACHE PATH "Plugins install prefix" FORCE) + +add_definitions( +# -std=c++11 +# -fno-rtti +) + +include_directories("${HOPPER_SDK_PATH}" "${CMAKE_SOURCE_DIR}") + +add_library( + ${PRODUCT_NAME} MODULE + RISCV/RISCVCPU.m + RISCV/RISCVCtx.m +) + +target_compile_options( + ${PRODUCT_NAME} PUBLIC + -fno-exceptions + -pedantic + -Wall + -Wextra + -fobjc-arc +) + +set_target_properties( + ${PRODUCT_NAME} PROPERTIES + BUNDLE TRUE + BUNDLE_EXTENSION ${HOPPER_PLUGIN_CPU_EXTENSION} + MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist.in +) + +target_link_libraries(${PRODUCT_NAME} "-framework Foundation") + +install( + TARGETS ${PRODUCT_NAME} + LIBRARY DESTINATION ${HOPPER_PLUGIN_CPU_DIRNAME} +) + +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin) + diff --git a/Info.plist.in b/Info.plist.in new file mode 100644 index 0000000..d3f0d32 --- /dev/null +++ b/Info.plist.in @@ -0,0 +1,12 @@ + + + + + CFBundleExecutable + ${PRODUCT_NAME} + CFBundlePackageType + BNDL + NSHumanReadableCopyright + ©2016 – Makigumo + + diff --git a/README.md b/README.md index 727f907..98ff438 100644 --- a/README.md +++ b/README.md @@ -27,6 +27,19 @@ Supported instruction sets: * [Hopper Disassembler v4](https://www.hopperapp.com/) +## Building + +* build with Xcode +* or, via `xcodebuild` +* or, using *cmake* + ``` + mkdir build + cd build + cmake .. + make + make install + ``` + ## Resources * [The RISC-V Instruction Set Manual, Volume I: User-Level ISA, Version 2.1](https://www2.eecs.berkeley.edu/Pubs/TechRpts/2016/EECS-2016-118.html) diff --git a/RISCV.xcodeproj/xcuserdata/dan.xcuserdatad/xcschemes/xcschememanagement.plist b/RISCV.xcodeproj/xcuserdata/dan.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index 4071df9..0000000 --- a/RISCV.xcodeproj/xcuserdata/dan.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,27 +0,0 @@ - - - - - SchemeUserState - - RISCV.xcscheme_^#shared#^_ - - orderHint - 1 - - - SuppressBuildableAutocreation - - 376CF6991DF38E7000020F20 - - primary - - - 3797132D1DF430DA00C870DE - - primary - - - - -