summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorGlenn Smith <glenn@vector35.com>2022-02-01 16:34:18 -0500
committerGlenn Smith <glenn@vector35.com>2022-02-02 19:22:08 -0500
commitb8af211f9a3647687c7e45c0fd04b0768df87ffe (patch)
tree64f13fe262399189d70aadf33e1c6e33f0a74c3e /examples
parent5f5785fd2b1cee6bc9a082e1209de00b1497d410 (diff)
Fancier CMake: find scripts, out-of-tree example builds
Diffstat (limited to 'examples')
-rw-r--r--examples/bin-info/CMakeLists.txt13
-rw-r--r--examples/bin-info/Makefile.win9
-rw-r--r--examples/breakpoint/CMakeLists.txt13
-rw-r--r--examples/breakpoint/Makefile.win16
-rw-r--r--examples/cmdline_disasm/CMakeLists.txt13
-rw-r--r--examples/llil_parser/CMakeLists.txt13
-rw-r--r--examples/llil_parser/Makefile.win9
-rw-r--r--examples/mlil_parser/CMakeLists.txt13
-rw-r--r--examples/mlil_parser/Makefile.win9
-rw-r--r--examples/print_syscalls/CMakeLists.txt13
-rw-r--r--examples/print_syscalls/Makefile.win9
-rw-r--r--examples/triage/CMakeLists.txt13
-rw-r--r--examples/uinotification/CMakeLists.txt25
-rw-r--r--examples/workflows/inliner/CMakeLists.txt11
-rw-r--r--examples/workflows/objectivec/CMakeLists.txt11
-rw-r--r--examples/workflows/tailcall/CMakeLists.txt11
-rw-r--r--examples/x86_extension/CMakeLists.txt13
17 files changed, 141 insertions, 73 deletions
diff --git a/examples/bin-info/CMakeLists.txt b/examples/bin-info/CMakeLists.txt
index 708136c0..4f0815ac 100644
--- a/examples/bin-info/CMakeLists.txt
+++ b/examples/bin-info/CMakeLists.txt
@@ -1,10 +1,21 @@
cmake_minimum_required(VERSION 3.9 FATAL_ERROR)
-project(bin-info CXX)
+project(bin-info CXX C)
add_executable(${PROJECT_NAME}
src/bin-info.cpp)
+if(NOT BN_API_BUILD_EXAMPLES)
+ # Out-of-tree build
+ find_path(
+ BN_API_DIR
+ NAMES binaryninjaapi.h
+ HINTS ../.. binaryninjaapi $ENV{BN_API_DIR}
+ REQUIRED
+ )
+ add_subdirectory(${BN_API_DIR} api)
+endif()
+
target_link_libraries(${PROJECT_NAME}
binaryninjaapi)
diff --git a/examples/bin-info/Makefile.win b/examples/bin-info/Makefile.win
deleted file mode 100644
index b65bfb86..00000000
--- a/examples/bin-info/Makefile.win
+++ /dev/null
@@ -1,9 +0,0 @@
-BINJA_API_INC_PATH = ..\..\
-BINJA_API_LIB = ..\..\bin\libbinaryninjaapi.lib
-BINJA_CORE_LIB = "c:\Program Files\Vector35\BinaryNinja\binaryninjacore.lib"
-
-FLAGS = /DWIN32 /D__WIN32__ /EHsc /I$(BINJA_API_INC_PATH) /link $(BINJA_API_LIB) $(BINJA_CORE_LIB)
-
-bininfo: ./src/bin-info.cpp
- if not exist bin mkdir bin
- cl ./src/bin-info.cpp $(FLAGS) /Fe:.\bin\bininfo
diff --git a/examples/breakpoint/CMakeLists.txt b/examples/breakpoint/CMakeLists.txt
index 0ec4cb0d..8ede6524 100644
--- a/examples/breakpoint/CMakeLists.txt
+++ b/examples/breakpoint/CMakeLists.txt
@@ -1,10 +1,21 @@
cmake_minimum_required(VERSION 3.9 FATAL_ERROR)
-project(breakpoint CXX)
+project(breakpoint CXX C)
add_library(${PROJECT_NAME} SHARED
src/breakpoint.cpp)
+if(NOT BN_API_BUILD_EXAMPLES)
+ # Out-of-tree build
+ find_path(
+ BN_API_DIR
+ NAMES binaryninjaapi.h
+ HINTS ../.. binaryninjaapi $ENV{BN_API_DIR}
+ REQUIRED
+ )
+ add_subdirectory(${BN_API_DIR} api)
+endif()
+
target_link_libraries(${PROJECT_NAME}
binaryninjaapi)
diff --git a/examples/breakpoint/Makefile.win b/examples/breakpoint/Makefile.win
deleted file mode 100644
index 00cbbfa1..00000000
--- a/examples/breakpoint/Makefile.win
+++ /dev/null
@@ -1,16 +0,0 @@
-BINJA_API_INC_PATH = ..\..\
-BINJA_API_LIB = ..\..\bin\libbinaryninjaapi.lib
-BINJA_CORE_LIB = "c:\Program Files\Vector35\BinaryNinja\binaryninjacore.lib"
-
-FLAGS = /DWIN32 /D__WIN32__ /EHsc /I$(BINJA_API_INC_PATH) /link $(BINJA_API_LIB) $(BINJA_CORE_LIB)
-
-bininfo.dll: ./src/breakpoint.cpp
- if not exist bin mkdir bin
- cl ./src/breakpoint.cpp /LD $(FLAGS) /OUT:.\bin\breakpoint.dll
-
-clean:
- if exist *.obj del *.obj
- if exist *.exp del *.exp
- if exist *.lib del *.lib
- if exist *.dll del *.dll
- if exist .\bin del /S /Q bin
diff --git a/examples/cmdline_disasm/CMakeLists.txt b/examples/cmdline_disasm/CMakeLists.txt
index e4b14da5..2657b920 100644
--- a/examples/cmdline_disasm/CMakeLists.txt
+++ b/examples/cmdline_disasm/CMakeLists.txt
@@ -1,10 +1,21 @@
cmake_minimum_required(VERSION 3.9 FATAL_ERROR)
-project(cmdline_disasm CXX)
+project(cmdline_disasm CXX C)
add_executable(${PROJECT_NAME}
src/disasm.cpp)
+if(NOT BN_API_BUILD_EXAMPLES)
+ # Out-of-tree build
+ find_path(
+ BN_API_DIR
+ NAMES binaryninjaapi.h
+ HINTS ../.. binaryninjaapi $ENV{BN_API_DIR}
+ REQUIRED
+ )
+ add_subdirectory(${BN_API_DIR} api)
+endif()
+
target_link_libraries(${PROJECT_NAME}
binaryninjaapi)
diff --git a/examples/llil_parser/CMakeLists.txt b/examples/llil_parser/CMakeLists.txt
index 899fc8d1..6c57dfd5 100644
--- a/examples/llil_parser/CMakeLists.txt
+++ b/examples/llil_parser/CMakeLists.txt
@@ -1,10 +1,21 @@
cmake_minimum_required(VERSION 3.9 FATAL_ERROR)
-project(llil_parser CXX)
+project(llil_parser CXX C)
add_executable(${PROJECT_NAME}
src/llil_parser.cpp)
+if(NOT BN_API_BUILD_EXAMPLES)
+ # Out-of-tree build
+ find_path(
+ BN_API_DIR
+ NAMES binaryninjaapi.h
+ HINTS ../.. binaryninjaapi $ENV{BN_API_DIR}
+ REQUIRED
+ )
+ add_subdirectory(${BN_API_DIR} api)
+endif()
+
target_link_libraries(${PROJECT_NAME}
binaryninjaapi)
diff --git a/examples/llil_parser/Makefile.win b/examples/llil_parser/Makefile.win
deleted file mode 100644
index fb714c0b..00000000
--- a/examples/llil_parser/Makefile.win
+++ /dev/null
@@ -1,9 +0,0 @@
-BINJA_API_INC_PATH = ..\..\
-BINJA_API_LIB = ..\..\bin\libbinaryninjaapi.lib
-BINJA_CORE_LIB = "c:\Program Files\Vector35\BinaryNinja\binaryninjacore.lib"
-
-FLAGS = /DWIN32 /D__WIN32__ /EHsc /I$(BINJA_API_INC_PATH) /link $(BINJA_API_LIB) $(BINJA_CORE_LIB)
-
-bininfo: ./src/llil_parser.cpp
- if not exist bin mkdir bin
- cl ./src/llil_parser.cpp $(FLAGS) /Fe:.\bin\bininfo
diff --git a/examples/mlil_parser/CMakeLists.txt b/examples/mlil_parser/CMakeLists.txt
index a06a8c8e..ae4947a7 100644
--- a/examples/mlil_parser/CMakeLists.txt
+++ b/examples/mlil_parser/CMakeLists.txt
@@ -1,10 +1,21 @@
cmake_minimum_required(VERSION 3.9 FATAL_ERROR)
-project(mlil_parser CXX)
+project(mlil_parser CXX C)
add_executable(${PROJECT_NAME}
src/mlil_parser.cpp)
+if(NOT BN_API_BUILD_EXAMPLES)
+ # Out-of-tree build
+ find_path(
+ BN_API_DIR
+ NAMES binaryninjaapi.h
+ HINTS ../.. binaryninjaapi $ENV{BN_API_DIR}
+ REQUIRED
+ )
+ add_subdirectory(${BN_API_DIR} api)
+endif()
+
target_link_libraries(${PROJECT_NAME}
binaryninjaapi)
diff --git a/examples/mlil_parser/Makefile.win b/examples/mlil_parser/Makefile.win
deleted file mode 100644
index 92718ac0..00000000
--- a/examples/mlil_parser/Makefile.win
+++ /dev/null
@@ -1,9 +0,0 @@
-BINJA_API_INC_PATH = ..\..\
-BINJA_API_LIB = ..\..\bin\libbinaryninjaapi.lib
-BINJA_CORE_LIB = "c:\Program Files\Vector35\BinaryNinja\binaryninjacore.lib"
-
-FLAGS = /DWIN32 /D__WIN32__ /EHsc /I$(BINJA_API_INC_PATH) /link $(BINJA_API_LIB) $(BINJA_CORE_LIB)
-
-bininfo: ./src/mlil_parser.cpp
- if not exist bin mkdir bin
- cl ./src/mlil_parser.cpp $(FLAGS) /Fe:.\bin\bininfo
diff --git a/examples/print_syscalls/CMakeLists.txt b/examples/print_syscalls/CMakeLists.txt
index 9ef029bb..acdc4073 100644
--- a/examples/print_syscalls/CMakeLists.txt
+++ b/examples/print_syscalls/CMakeLists.txt
@@ -1,10 +1,21 @@
cmake_minimum_required(VERSION 3.9 FATAL_ERROR)
-project(print_syscalls CXX)
+project(print_syscalls CXX C)
add_executable(${PROJECT_NAME}
src/arm-syscall.cpp)
+if(NOT BN_API_BUILD_EXAMPLES)
+ # Out-of-tree build
+ find_path(
+ BN_API_DIR
+ NAMES binaryninjaapi.h
+ HINTS ../.. binaryninjaapi $ENV{BN_API_DIR}
+ REQUIRED
+ )
+ add_subdirectory(${BN_API_DIR} api)
+endif()
+
target_link_libraries(${PROJECT_NAME}
binaryninjaapi)
diff --git a/examples/print_syscalls/Makefile.win b/examples/print_syscalls/Makefile.win
deleted file mode 100644
index afc0cbd8..00000000
--- a/examples/print_syscalls/Makefile.win
+++ /dev/null
@@ -1,9 +0,0 @@
-BINJA_API_INC_PATH = ..\..\
-BINJA_API_LIB = ..\..\bin\libbinaryninjaapi.lib
-BINJA_CORE_LIB = "c:\Program Files\Vector35\BinaryNinja\binaryninjacore.lib"
-
-FLAGS = /DWIN32 /D__WIN32__ /EHsc /I$(BINJA_API_INC_PATH) /link $(BINJA_API_LIB) $(BINJA_CORE_LIB)
-
-print_syscalls: ./src/arm-syscall.cpp
- if not exist bin mkdir bin
- cl ./src/arm-syscall.cpp $(FLAGS) /Fe:.\bin\print_syscalls
diff --git a/examples/triage/CMakeLists.txt b/examples/triage/CMakeLists.txt
index 05dd03ce..ca47f8f9 100644
--- a/examples/triage/CMakeLists.txt
+++ b/examples/triage/CMakeLists.txt
@@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.9 FATAL_ERROR)
option(QT6 "Target Qt 6" OFF)
-project(triage)
+project(triage CXX C)
if(NOT QT6)
set(CMAKE_OSX_ARCHITECTURES x86_64)
@@ -18,6 +18,17 @@ else()
add_library(triage SHARED ${SOURCES})
endif()
+if(NOT BN_API_BUILD_EXAMPLES)
+ # Out-of-tree build
+ find_path(
+ BN_API_DIR
+ NAMES binaryninjaapi.h
+ HINTS ../.. binaryninjaapi $ENV{BN_API_DIR}
+ REQUIRED
+ )
+ add_subdirectory(${BN_API_DIR} api)
+endif()
+
target_link_libraries(triage binaryninjaapi binaryninjaui)
set_target_properties(triage PROPERTIES
diff --git a/examples/uinotification/CMakeLists.txt b/examples/uinotification/CMakeLists.txt
index df9bdbdc..552387dd 100644
--- a/examples/uinotification/CMakeLists.txt
+++ b/examples/uinotification/CMakeLists.txt
@@ -2,32 +2,31 @@ cmake_minimum_required(VERSION 3.13 FATAL_ERROR)
option(QT6 "Target Qt 6" OFF)
-project(uinotification)
+project(uinotification CXX C)
if(NOT QT6)
set(CMAKE_OSX_ARCHITECTURES x86_64)
endif()
-if(QT6)
- find_package(Qt6 COMPONENTS Core Gui Widgets REQUIRED)
-else()
- find_package(Qt5 COMPONENTS Core Gui Widgets REQUIRED)
-endif()
-
file(GLOB SOURCES
*.cpp
*.h)
add_library(uinotification SHARED ${SOURCES})
-if(QT6)
- target_link_libraries(uinotification binaryninjaapi binaryninjaui
- Qt6::Core Qt6::Gui Qt6::Widgets)
-else()
- target_link_libraries(uinotification binaryninjaapi binaryninjaui
- Qt5::Core Qt5::Gui Qt5::Widgets)
+if(NOT BN_API_BUILD_EXAMPLES)
+ # Out-of-tree build
+ find_path(
+ BN_API_DIR
+ NAMES binaryninjaapi.h
+ HINTS ../.. binaryninjaapi $ENV{BN_API_DIR}
+ REQUIRED
+ )
+ add_subdirectory(${BN_API_DIR} api)
endif()
+target_link_libraries(uinotification binaryninjaapi binaryninjaui)
+
set_target_properties(uinotification PROPERTIES
CXX_STANDARD 17
CXX_VISIBILITY_PRESET hidden
diff --git a/examples/workflows/inliner/CMakeLists.txt b/examples/workflows/inliner/CMakeLists.txt
index c42d580e..0a271d4b 100644
--- a/examples/workflows/inliner/CMakeLists.txt
+++ b/examples/workflows/inliner/CMakeLists.txt
@@ -9,6 +9,17 @@ file(GLOB SOURCES
add_library(workflow_inliner SHARED ${SOURCES})
+if(NOT BN_API_BUILD_EXAMPLES)
+ # Out-of-tree build
+ find_path(
+ BN_API_DIR
+ NAMES binaryninjaapi.h
+ HINTS ../../.. binaryninjaapi $ENV{BN_API_DIR}
+ REQUIRED
+ )
+ add_subdirectory(${BN_API_DIR} api)
+endif()
+
target_link_libraries(workflow_inliner binaryninjaapi)
set_target_properties(workflow_inliner PROPERTIES
diff --git a/examples/workflows/objectivec/CMakeLists.txt b/examples/workflows/objectivec/CMakeLists.txt
index f5f8ea5e..a4c0198a 100644
--- a/examples/workflows/objectivec/CMakeLists.txt
+++ b/examples/workflows/objectivec/CMakeLists.txt
@@ -9,6 +9,17 @@ file(GLOB SOURCES
add_library(workflow_objectivec SHARED ${SOURCES})
+if(NOT BN_API_BUILD_EXAMPLES)
+ # Out-of-tree build
+ find_path(
+ BN_API_DIR
+ NAMES binaryninjaapi.h
+ HINTS ../../.. binaryninjaapi $ENV{BN_API_DIR}
+ REQUIRED
+ )
+ add_subdirectory(${BN_API_DIR} api)
+endif()
+
target_link_libraries(workflow_objectivec binaryninjaapi)
set_target_properties(workflow_objectivec PROPERTIES
diff --git a/examples/workflows/tailcall/CMakeLists.txt b/examples/workflows/tailcall/CMakeLists.txt
index fa322684..6d7e5eb0 100644
--- a/examples/workflows/tailcall/CMakeLists.txt
+++ b/examples/workflows/tailcall/CMakeLists.txt
@@ -9,6 +9,17 @@ file(GLOB SOURCES
add_library(workflow_tailcall SHARED ${SOURCES})
+if(NOT BN_API_BUILD_EXAMPLES)
+ # Out-of-tree build
+ find_path(
+ BN_API_DIR
+ NAMES binaryninjaapi.h
+ HINTS ../../.. binaryninjaapi $ENV{BN_API_DIR}
+ REQUIRED
+ )
+ add_subdirectory(${BN_API_DIR} api)
+endif()
+
target_link_libraries(workflow_tailcall binaryninjaapi)
set_target_properties(workflow_tailcall PROPERTIES
diff --git a/examples/x86_extension/CMakeLists.txt b/examples/x86_extension/CMakeLists.txt
index 8980ca60..9faf9c88 100644
--- a/examples/x86_extension/CMakeLists.txt
+++ b/examples/x86_extension/CMakeLists.txt
@@ -1,12 +1,23 @@
cmake_minimum_required(VERSION 3.9 FATAL_ERROR)
-project(x86_extension CXX)
+project(x86_extension CXX C)
add_library(${PROJECT_NAME} SHARED
src/x86_extension.cpp
src/asmx86/asmx86.c
src/asmx86/asmx86.h)
+if(NOT BN_API_BUILD_EXAMPLES)
+ # Out-of-tree build
+ find_path(
+ BN_API_DIR
+ NAMES binaryninjaapi.h
+ HINTS ../.. binaryninjaapi $ENV{BN_API_DIR}
+ REQUIRED
+ )
+ add_subdirectory(${BN_API_DIR} api)
+endif()
+
target_link_libraries(${PROJECT_NAME}
binaryninjaapi)