summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorRusty Wagner <rusty@vector35.com>2020-07-10 23:36:26 -0400
committerRusty Wagner <rusty@vector35.com>2020-07-17 18:31:55 -0400
commit308caf1f5b3f8f02ebb44c0c43a838e0709200a1 (patch)
tree2b04f6b809eedf88285eab69c662035ec6ce200d /examples
parentb3d490e9e7f21a90922973a617a89a8620f5778b (diff)
Switch build system to cmake
Diffstat (limited to 'examples')
-rw-r--r--examples/bin-info/CMakeLists.txt2
-rw-r--r--examples/bin-info/Makefile54
-rw-r--r--examples/breakpoint/CMakeLists.txt4
-rw-r--r--examples/breakpoint/Makefile57
-rw-r--r--examples/cmdline_disasm/CMakeLists.txt2
-rw-r--r--examples/cmdline_disasm/Makefile51
-rw-r--r--examples/llil_parser/CMakeLists.txt2
-rw-r--r--examples/llil_parser/Makefile51
-rw-r--r--examples/mlil_parser/CMakeLists.txt2
-rw-r--r--examples/mlil_parser/Makefile51
-rw-r--r--examples/print_syscalls/CMakeLists.txt2
-rw-r--r--examples/print_syscalls/Makefile54
-rw-r--r--examples/triage/CMakeLists.txt28
-rw-r--r--examples/x86_extension/CMakeLists.txt4
-rw-r--r--examples/x86_extension/Makefile59
15 files changed, 37 insertions, 386 deletions
diff --git a/examples/bin-info/CMakeLists.txt b/examples/bin-info/CMakeLists.txt
index 498a5793..54381871 100644
--- a/examples/bin-info/CMakeLists.txt
+++ b/examples/bin-info/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
+cmake_minimum_required(VERSION 3.9 FATAL_ERROR)
project(bin-info CXX)
diff --git a/examples/bin-info/Makefile b/examples/bin-info/Makefile
deleted file mode 100644
index c8b2efc2..00000000
--- a/examples/bin-info/Makefile
+++ /dev/null
@@ -1,54 +0,0 @@
-# Path to prebuilt libbinaryninjaapi.a
-BINJA_API_A := ../../bin/libbinaryninjaapi.a
-
-# Path to binaryninjaapi.h and json
-INC := -I../../
-
-UNAME_S := $(shell uname -s)
-ifeq ($(UNAME_S),Linux)
- # Path to binaryninja install
- BINJAPATH := $(HOME)/binaryninja/
- CC := g++
-else
- BINJAPATH := /Applications/Binary\ Ninja.app/Contents/MacOS
- CC := $(shell xcrun -f clang++)
-endif
-
-SRCDIR := src
-BUILDDIR := build
-TARGETDIR := bin
-
-TARGETNAME := bininfo
-TARGET := $(TARGETDIR)/$(TARGETNAME)
-
-SRCEXT := cpp
-SOURCES := $(shell find $(SRCDIR) -type f -name *.$(SRCEXT))
-OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.o))
-
-LIBS := -L $(BINJAPATH) -lbinaryninjacore
-CFLAGS := -c -std=gnu++11 -O2 -Wall -W -fPIC -pipe
-ifeq ($(UNAME_S),Darwin)
- CFLAGS += -arch x86_64 -pipe -stdlib=libc++
-endif
-
-all: $(TARGET)
-
-ifeq ($(UNAME_S),Linux)
-$(TARGET): $(OBJECTS)
- @mkdir -p $(TARGETDIR)
- $(CC) $^ $(BINJA_API_A) $(LIBS) -Wl,-rpath=$(BINJAPATH) -ldl -o $@
-else
-$(TARGET): $(OBJECTS)
- @mkdir -p $(TARGETDIR)
- $(CC) $^ $(BINJA_API_A) $(LIBS) -o $@
- install_name_tool -change @rpath/libbinaryninjacore.dylib $(BINJAPATH)/libbinaryninjacore.dylib $@
-endif
-
-$(BUILDDIR)/%.o: $(SRCDIR)/%.$(SRCEXT)
- @mkdir -p $(BUILDDIR)
- $(CC) $(CFLAGS) $(INC) -c -o $@ $<
-
-clean:
- $(RM) -r $(BUILDDIR) $(TARGETDIR)
-
-.PHONY: clean
diff --git a/examples/breakpoint/CMakeLists.txt b/examples/breakpoint/CMakeLists.txt
index 70de8884..f0ed85c9 100644
--- a/examples/breakpoint/CMakeLists.txt
+++ b/examples/breakpoint/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
+cmake_minimum_required(VERSION 3.9 FATAL_ERROR)
project(breakpoint CXX)
@@ -12,4 +12,4 @@ set_target_properties(${PROJECT_NAME} PROPERTIES
CXX_STANDARD 11
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../../bin)
-binja_install_plugin(${PROJECT_NAME})
+bn_install_plugin(${PROJECT_NAME})
diff --git a/examples/breakpoint/Makefile b/examples/breakpoint/Makefile
deleted file mode 100644
index d85b63e5..00000000
--- a/examples/breakpoint/Makefile
+++ /dev/null
@@ -1,57 +0,0 @@
-# Path to prebuilt libbinaryninjaapi.a
-BINJA_API_A := ../../bin/libbinaryninjaapi.a
-
-# Path to binaryninjaapi.h and json
-INC := -I../../
-
-UNAME_S := $(shell uname -s)
-ifeq ($(UNAME_S),Linux)
- # Path to binaryninja install
- BINJAPATH := $(HOME)/binaryninja
-else
- BINJAPATH := /Applications/Binary\ Ninja.app/Contents/MacOS
-endif
-
-SRCDIR := src
-BUILDDIR := build
-TARGETDIR := bin
-
-TARGETNAME := breakpoint
-TARGET := $(TARGETDIR)/$(TARGETNAME)
-INSTALLBINDIR := $(BINJAPATH)/plugins/
-
-SRCEXT := cpp
-SOURCES := $(shell find $(SRCDIR) -type f -name *.$(SRCEXT))
-OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.o))
-
-LIBS := -L $(BINJAPATH) -lbinaryninjacore
-CFLAGS := -c -std=gnu++11 -O2 -Wall -W -fPIC -pipe
-ifeq ($(UNAME_S),Linux)
- CC := g++
-all: $(TARGET).so
-else
- CC := $(shell xcrun -f clang++)
- CFLAGS += -arch x86_64 -pipe -stdlib=libc++ -mmacosx-version-min=10.7
-all: $(TARGET).dylib
-endif
-
-$(TARGET).so: $(OBJECTS)
- @mkdir -p $(TARGETDIR)
- $(CC) -shared $^ $(BINJA_API_A) $(LIBS) -o $@
-
-$(TARGET).dylib: $(OBJECTS)
- @mkdir -p $(TARGETDIR)
- $(CC) -dynamiclib $^ $(BINJA_API_A) $(LIBS) -o $@
- install_name_tool -id @loader_path/$(TARGETNAME).dylib -add_rpath @loader_path/.. $@
-
-$(BUILDDIR)/%.o: $(SRCDIR)/%.$(SRCEXT)
- @mkdir -p $(BUILDDIR)
- $(CC) $(CFLAGS) $(INC) -c -o $@ $<
-
-clean:
- $(RM) -r $(BUILDDIR) $(TARGETDIR)
-
-install:
- cp $(TARGET) $(INSTALLBINDIR)
-
-.PHONY: clean
diff --git a/examples/cmdline_disasm/CMakeLists.txt b/examples/cmdline_disasm/CMakeLists.txt
index 98e5f535..c76d49fc 100644
--- a/examples/cmdline_disasm/CMakeLists.txt
+++ b/examples/cmdline_disasm/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
+cmake_minimum_required(VERSION 3.9 FATAL_ERROR)
project(cmdline_disasm CXX)
diff --git a/examples/cmdline_disasm/Makefile b/examples/cmdline_disasm/Makefile
deleted file mode 100644
index 12931876..00000000
--- a/examples/cmdline_disasm/Makefile
+++ /dev/null
@@ -1,51 +0,0 @@
-# Path to prebuilt libbinaryninjaapi.a
-BINJA_API_A := ../../bin/libbinaryninjaapi.a
-
-# Path to binaryninjaapi.h and json
-INC := -I../../
-
-UNAME_S := $(shell uname -s)
-ifeq ($(UNAME_S),Linux)
- # Path to binaryninja install
- BINJAPATH := $(HOME)/binaryninja/
- CC := gcc
-else
- BINJAPATH := /Applications/Binary\ Ninja.app/Contents/MacOS
- CC := clang
-endif
-
-SRCDIR := src
-BUILDDIR := build
-TARGETDIR := bin
-
-TARGETNAME := disasm
-TARGET := $(TARGETDIR)/$(TARGETNAME)
-
-SRCEXT := cpp
-SOURCES := $(shell find $(SRCDIR) -type f -name *.$(SRCEXT))
-OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.o))
-
-LIBS := -L $(BINJAPATH) -lbinaryninjacore
-CPPFLAGS := -c -O2 -Wall -W -fPIC --std=c++11 -pipe
-
-all: $(TARGET)
-
-ifeq ($(UNAME_S),Linux)
-$(TARGET): $(OBJECTS)
- @mkdir -p $(TARGETDIR)
- $(CC) $^ $(BINJA_API_A) $(LIBS) -Wl,-rpath=$(BINJAPATH) -ldl -o $@
-else
-$(TARGET): $(OBJECTS)
- @mkdir -p $(TARGETDIR)
- $(CC) $^ $(BINJA_API_A) $(LIBS) -o $@
- install_name_tool -change @rpath/libbinaryninjacore.dylib $(BINJAPATH)/libbinaryninjacore.dylib $@
-endif
-
-$(BUILDDIR)/%.o: $(SRCDIR)/%.$(SRCEXT)
- @mkdir -p $(BUILDDIR)
- $(CC) $(CPPFLAGS) $(INC) -c -o $@ $<
-
-clean:
- $(RM) -r $(BUILDDIR) $(TARGETDIR)
-
-.PHONY: clean
diff --git a/examples/llil_parser/CMakeLists.txt b/examples/llil_parser/CMakeLists.txt
index dd850fc5..bc744ccb 100644
--- a/examples/llil_parser/CMakeLists.txt
+++ b/examples/llil_parser/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
+cmake_minimum_required(VERSION 3.9 FATAL_ERROR)
project(llil_parser CXX)
diff --git a/examples/llil_parser/Makefile b/examples/llil_parser/Makefile
deleted file mode 100644
index 13c01e62..00000000
--- a/examples/llil_parser/Makefile
+++ /dev/null
@@ -1,51 +0,0 @@
-# Path to prebuilt libbinaryninjaapi.a
-BINJA_API_A := ../../bin/libbinaryninjaapi.a
-
-# Path to binaryninjaapi.h and json
-INC := -I../../
-
-UNAME_S := $(shell uname -s)
-ifeq ($(UNAME_S),Linux)
- # Path to binaryninja install
- BINJAPATH := $(HOME)/binaryninja/
- CC := g++
-else
- BINJAPATH := /Applications/Binary\ Ninja.app/Contents/MacOS
- CC := clang++
-endif
-
-SRCDIR := src
-BUILDDIR := build
-TARGETDIR := bin
-
-TARGETNAME := llil_parser
-TARGET := $(TARGETDIR)/$(TARGETNAME)
-
-SRCEXT := cpp
-SOURCES := $(shell find $(SRCDIR) -type f -name *.$(SRCEXT))
-OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.o))
-
-LIBS := -L $(BINJAPATH) -lbinaryninjacore
-CFLAGS := -c -std=gnu++11 -O2 -Wall -W -fPIC -pipe
-
-all: $(TARGET)
-
-ifeq ($(UNAME_S),Linux)
-$(TARGET): $(OBJECTS)
- @mkdir -p $(TARGETDIR)
- $(CC) $^ $(BINJA_API_A) $(LIBS) -Wl,-rpath=$(BINJAPATH) -ldl -o $@
-else
-$(TARGET): $(OBJECTS)
- @mkdir -p $(TARGETDIR)
- $(CC) $^ $(BINJA_API_A) $(LIBS) -o $@
- install_name_tool -change @rpath/libbinaryninjacore.dylib $(BINJAPATH)/libbinaryninjacore.dylib $@
-endif
-
-$(BUILDDIR)/%.o: $(SRCDIR)/%.$(SRCEXT)
- @mkdir -p $(BUILDDIR)
- $(CC) $(CFLAGS) $(INC) -c -o $@ $<
-
-clean:
- $(RM) -r $(BUILDDIR) $(TARGETDIR)
-
-.PHONY: clean
diff --git a/examples/mlil_parser/CMakeLists.txt b/examples/mlil_parser/CMakeLists.txt
index 4f4f450b..f5cfa1ef 100644
--- a/examples/mlil_parser/CMakeLists.txt
+++ b/examples/mlil_parser/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
+cmake_minimum_required(VERSION 3.9 FATAL_ERROR)
project(mlil_parser CXX)
diff --git a/examples/mlil_parser/Makefile b/examples/mlil_parser/Makefile
deleted file mode 100644
index 44b7b77f..00000000
--- a/examples/mlil_parser/Makefile
+++ /dev/null
@@ -1,51 +0,0 @@
-# Path to prebuilt libbinaryninjaapi.a
-BINJA_API_A := ../../bin/libbinaryninjaapi.a
-
-# Path to binaryninjaapi.h and json
-INC := -I../../
-
-UNAME_S := $(shell uname -s)
-ifeq ($(UNAME_S),Linux)
- # Path to binaryninja install
- BINJAPATH := $(HOME)/binaryninja/
- CC := g++
-else
- BINJAPATH := /Applications/Binary\ Ninja.app/Contents/MacOS
- CC := clang++
-endif
-
-SRCDIR := src
-BUILDDIR := build
-TARGETDIR := bin
-
-TARGETNAME := mlil_parser
-TARGET := $(TARGETDIR)/$(TARGETNAME)
-
-SRCEXT := cpp
-SOURCES := $(shell find $(SRCDIR) -type f -name *.$(SRCEXT))
-OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.o))
-
-LIBS := -L $(BINJAPATH) -lbinaryninjacore
-CFLAGS := -c -std=gnu++11 -O2 -Wall -W -fPIC -pipe
-
-all: $(TARGET)
-
-ifeq ($(UNAME_S),Linux)
-$(TARGET): $(OBJECTS)
- @mkdir -p $(TARGETDIR)
- $(CC) $^ $(BINJA_API_A) $(LIBS) -Wl,-rpath=$(BINJAPATH) -ldl -o $@
-else
-$(TARGET): $(OBJECTS)
- @mkdir -p $(TARGETDIR)
- $(CC) $^ $(BINJA_API_A) $(LIBS) -o $@
- install_name_tool -change @rpath/libbinaryninjacore.dylib $(BINJAPATH)/libbinaryninjacore.dylib $@
-endif
-
-$(BUILDDIR)/%.o: $(SRCDIR)/%.$(SRCEXT)
- @mkdir -p $(BUILDDIR)
- $(CC) $(CFLAGS) $(INC) -c -o $@ $<
-
-clean:
- $(RM) -r $(BUILDDIR) $(TARGETDIR)
-
-.PHONY: clean
diff --git a/examples/print_syscalls/CMakeLists.txt b/examples/print_syscalls/CMakeLists.txt
index d8495b3c..166017fe 100644
--- a/examples/print_syscalls/CMakeLists.txt
+++ b/examples/print_syscalls/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
+cmake_minimum_required(VERSION 3.9 FATAL_ERROR)
project(print_syscalls CXX)
diff --git a/examples/print_syscalls/Makefile b/examples/print_syscalls/Makefile
deleted file mode 100644
index 54fd1237..00000000
--- a/examples/print_syscalls/Makefile
+++ /dev/null
@@ -1,54 +0,0 @@
-# Path to prebuilt libbinaryninjaapi.a
-BINJA_API_A := ../../bin/libbinaryninjaapi.a
-
-# Path to binaryninjaapi.h and json
-INC := -I../../
-
-UNAME_S := $(shell uname -s)
-ifeq ($(UNAME_S),Linux)
- # Path to binaryninja install
- BINJAPATH := $(HOME)/binaryninja/
- CC := g++
-else
- BINJAPATH := /Applications/Binary\ Ninja.app/Contents/MacOS
- CC := $(shell xcrun -f clang++)
-endif
-
-SRCDIR := src
-BUILDDIR := build
-TARGETDIR := bin
-
-TARGETNAME := print_syscalls
-TARGET := $(TARGETDIR)/$(TARGETNAME)
-
-SRCEXT := cpp
-SOURCES := $(shell find $(SRCDIR) -type f -name *.$(SRCEXT))
-OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.o))
-
-LIBS := -L $(BINJAPATH) -lbinaryninjacore
-CFLAGS := -c -std=gnu++11 -O2 -Wall -W -fPIC -pipe -ggdb
-ifeq ($(UNAME_S),Darwin)
- CFLAGS += -arch x86_64 -pipe -stdlib=libc++
-endif
-
-all: $(TARGET)
-
-ifeq ($(UNAME_S),Linux)
-$(TARGET): $(OBJECTS)
- @mkdir -p $(TARGETDIR)
- $(CC) $^ $(BINJA_API_A) $(LIBS) -Wl,-rpath=$(BINJAPATH) -ldl -o $@
-else
-$(TARGET): $(OBJECTS)
- @mkdir -p $(TARGETDIR)
- $(CC) $^ $(BINJA_API_A) $(LIBS) -o $@
- install_name_tool -change @rpath/libbinaryninjacore.dylib $(BINJAPATH)/libbinaryninjacore.dylib $@
-endif
-
-$(BUILDDIR)/%.o: $(SRCDIR)/%.$(SRCEXT)
- @mkdir -p $(BUILDDIR)
- $(CC) $(CFLAGS) $(INC) -c -o $@ $<
-
-clean:
- $(RM) -r $(BUILDDIR) $(TARGETDIR)
-
-.PHONY: clean
diff --git a/examples/triage/CMakeLists.txt b/examples/triage/CMakeLists.txt
new file mode 100644
index 00000000..f3d77fb4
--- /dev/null
+++ b/examples/triage/CMakeLists.txt
@@ -0,0 +1,28 @@
+cmake_minimum_required(VERSION 3.9 FATAL_ERROR)
+
+project(triage)
+
+file(GLOB SOURCES
+ *.cpp
+ *.h)
+
+if(DEMO)
+ add_library(triage STATIC ${SOURCES})
+else()
+ add_library(triage SHARED ${SOURCES})
+endif()
+
+target_link_libraries(triage binaryninjaapi binaryninjaui)
+
+set_target_properties(triage PROPERTIES
+ CXX_STANDARD 17
+ CXX_VISIBILITY_PRESET hidden
+ CXX_STANDARD_REQUIRED ON
+ VISIBILITY_INLINES_HIDDEN ON
+ POSITION_INDEPENDENT_CODE ON)
+
+if(BN_INTERNAL_BUILD)
+ ui_plugin_rpath(triage)
+ set_target_properties(triage PROPERTIES
+ LIBRARY_OUTPUT_DIRECTORY ${BN_CORE_PLUGIN_DIR})
+endif()
diff --git a/examples/x86_extension/CMakeLists.txt b/examples/x86_extension/CMakeLists.txt
index 632a9381..7f04d5a5 100644
--- a/examples/x86_extension/CMakeLists.txt
+++ b/examples/x86_extension/CMakeLists.txt
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
+cmake_minimum_required(VERSION 3.9 FATAL_ERROR)
project(x86_extension CXX)
@@ -14,4 +14,4 @@ set_target_properties(${PROJECT_NAME} PROPERTIES
CXX_STANDARD 11
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../../bin)
-binja_install_plugin(${PROJECT_NAME})
+bn_install_plugin(${PROJECT_NAME})
diff --git a/examples/x86_extension/Makefile b/examples/x86_extension/Makefile
deleted file mode 100644
index 1ee60891..00000000
--- a/examples/x86_extension/Makefile
+++ /dev/null
@@ -1,59 +0,0 @@
-# Path to prebuilt libbinaryninjaapi.a
-BINJA_API_A := ../../bin/libbinaryninjaapi.a
-
-# Path to binaryninjaapi.h and json
-INC := -I../../
-
-UNAME_S := $(shell uname -s)
-ifeq ($(UNAME_S),Linux)
- # Path to binaryninja install
- BINJAPATH := $(shell cat ~/.binaryninja/lastrun)
- PLUGIN_DIR := ~/.binaryninja/plugins/
- CC := g++
-else
- BINJAPATH := /Applications/Binary\ Ninja.app/Contents/MacOS
- PLUGIN_DIR := ~/Library/Application\ Support/Binary\ Ninja/plugins/
- CC := clang++
-endif
-
-SRCDIR := src
-BUILDDIR := build
-TARGETDIR := bin
-
-TARGETNAME := x86_extension
-TARGET := $(TARGETDIR)/$(TARGETNAME)
-
-SRCEXT := cpp
-SOURCES := $(shell find $(SRCDIR) -type f -name *.$(SRCEXT))
-OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.o)) src/asmx86/libasmx86.a
-
-LIBS := -L$(BINJAPATH) -lbinaryninjacore
-CFLAGS := -c -std=gnu++11 -O2 -Wall -W -fPIC -pipe -Wno-unused-function
-
-all: $(TARGET)
-
-ifeq ($(UNAME_S),Linux)
-$(TARGET): $(OBJECTS)
- @mkdir -p $(TARGETDIR)
- $(CC) $^ $(BINJA_API_A) $(LIBS) -shared -Wl,-rpath=$(BINJAPATH) -ldl -o bin/lib$(TARGETNAME).so
-else
-$(TARGET): $(OBJECTS)
- @mkdir -p $(TARGETDIR)
- $(CC) $^ $(BINJA_API_A) $(LIBS) -single_module -dynamiclib -o bin/lib$(TARGETNAME).dylib
- install_name_tool -add_rpath $(BINJAPATH)/libbinaryninjacore.dylib bin/lib$(TARGETNAME).dylib
-endif
-
-$(BUILDDIR)/%.o: $(SRCDIR)/%.$(SRCEXT)
- @mkdir -p $(BUILDDIR)
- $(CC) $(CFLAGS) $(INC) -c -o $@ $<
-
-src/asmx86/libasmx86.a:
- $(MAKE) -C src/asmx86
-
-install:
- cp bin/lib$(TARGETNAME).dylib $(PLUGIN_DIR)
-
-clean:
- $(RM) -r $(BUILDDIR) $(TARGETDIR)
-
-.PHONY: clean