diff options
| author | Glenn Smith <glenn@vector35.com> | 2022-02-01 16:34:18 -0500 |
|---|---|---|
| committer | Glenn Smith <glenn@vector35.com> | 2022-02-02 19:22:08 -0500 |
| commit | b8af211f9a3647687c7e45c0fd04b0768df87ffe (patch) | |
| tree | 64f13fe262399189d70aadf33e1c6e33f0a74c3e /examples | |
| parent | 5f5785fd2b1cee6bc9a082e1209de00b1497d410 (diff) | |
Fancier CMake: find scripts, out-of-tree example builds
Diffstat (limited to 'examples')
| -rw-r--r-- | examples/bin-info/CMakeLists.txt | 13 | ||||
| -rw-r--r-- | examples/bin-info/Makefile.win | 9 | ||||
| -rw-r--r-- | examples/breakpoint/CMakeLists.txt | 13 | ||||
| -rw-r--r-- | examples/breakpoint/Makefile.win | 16 | ||||
| -rw-r--r-- | examples/cmdline_disasm/CMakeLists.txt | 13 | ||||
| -rw-r--r-- | examples/llil_parser/CMakeLists.txt | 13 | ||||
| -rw-r--r-- | examples/llil_parser/Makefile.win | 9 | ||||
| -rw-r--r-- | examples/mlil_parser/CMakeLists.txt | 13 | ||||
| -rw-r--r-- | examples/mlil_parser/Makefile.win | 9 | ||||
| -rw-r--r-- | examples/print_syscalls/CMakeLists.txt | 13 | ||||
| -rw-r--r-- | examples/print_syscalls/Makefile.win | 9 | ||||
| -rw-r--r-- | examples/triage/CMakeLists.txt | 13 | ||||
| -rw-r--r-- | examples/uinotification/CMakeLists.txt | 25 | ||||
| -rw-r--r-- | examples/workflows/inliner/CMakeLists.txt | 11 | ||||
| -rw-r--r-- | examples/workflows/objectivec/CMakeLists.txt | 11 | ||||
| -rw-r--r-- | examples/workflows/tailcall/CMakeLists.txt | 11 | ||||
| -rw-r--r-- | examples/x86_extension/CMakeLists.txt | 13 |
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) |
