semiproper cmake build configuration
This commit is contained in:
parent
89d042fb45
commit
d2ae162332
3
.gitignore
vendored
3
.gitignore
vendored
@ -50,3 +50,6 @@ modules.order
|
||||
Module.symvers
|
||||
Mkfile.old
|
||||
dkms.conf
|
||||
|
||||
# CMAke generated makefiles
|
||||
build/
|
||||
|
3
.gitmodules
vendored
Normal file
3
.gitmodules
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
[submodule "concord"]
|
||||
path = concord
|
||||
url = https://github.com/Cogmasters/concord
|
41
CMakeLists.txt
Normal file
41
CMakeLists.txt
Normal file
@ -0,0 +1,41 @@
|
||||
cmake_minimum_required(VERSION 3.11)
|
||||
project(airborne)
|
||||
|
||||
include(FetchContent)
|
||||
|
||||
if(NOT CMAKE_SYSTEM_NAME MATCHES Windows)
|
||||
message(FATAL_ERROR "Use a cross compilation suitable toolchain with CMAKE_SYSTEM_NAME set to Windows")
|
||||
endif()
|
||||
|
||||
if(NOT MSVC)
|
||||
add_compile_options("-Wall")
|
||||
else()
|
||||
# Level 4 warnings
|
||||
add_compile_options("-W4")
|
||||
endif()
|
||||
|
||||
# Discord API wrapper dependency
|
||||
FetchContent_Declare(
|
||||
concord
|
||||
GIT_REPOSITORY https://github.com/Cogmasters/concord
|
||||
GIT_TAG 769bdb7 # v2.2.1 release
|
||||
)
|
||||
FetchContent_MakeAvailable(concord)
|
||||
|
||||
# *) Reflective loader (DLL)
|
||||
add_library(reflective_loader SHARED reflective_loader/loader.c reflective_loader/loader.h)
|
||||
|
||||
# *) Payload (DLL)
|
||||
add_library(payload SHARED payload/payload.c)
|
||||
|
||||
# *) Injector (EXE)
|
||||
add_executable(injector injector/injector.c)
|
||||
target_link_libraries(injector PRIVATE concord)
|
||||
|
||||
# *) Shellcode generator (EXE)
|
||||
add_executable(shellcode_generator shellcode_generator/generator.c)
|
||||
target_link_libraries(shellcode_generator PRIVATE concord)
|
||||
|
||||
# Include directories
|
||||
target_include_directories(injector PRIVATE concord)
|
||||
target_include_directories(shellcode_generator PRIVATE concord)
|
@ -1,22 +0,0 @@
|
||||
# Usage:
|
||||
# *) Install cross-compiler: `sudo apt install mingw-w64`
|
||||
# *) cmake -DCMAKE_TOOLCHAIN_FILE=macos-mingw-w64-x86_64.cmake -B build -S .
|
||||
# *) make -C build
|
||||
|
||||
set(CMAKE_SYSTEM_NAME Windows)
|
||||
set(TOOLCHAIN_PREFIX x86_64-w64-mingw32)
|
||||
|
||||
# Cross-compilers to use for C and C++
|
||||
set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-gcc)
|
||||
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-g++)
|
||||
|
||||
# Target environment on the build host system (with Homebrew)
|
||||
set(CMAKE_FIND_ROOT_PATH /usr/${TOOLCHAIN_PREFIX})
|
||||
|
||||
# Search for programs in the build host directories (modifying default behavior of FIND_XXX())
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -static -Os")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static -Os")
|
@ -1,22 +0,0 @@
|
||||
# Usage:
|
||||
# *) Install cross-compiler: `brew install mingw-w64`
|
||||
# *) cmake -DCMAKE_TOOLCHAIN_FILE=macos-mingw-w64-x86_64.cmake -B build -S .
|
||||
# *) make -C build
|
||||
|
||||
set(CMAKE_SYSTEM_NAME Windows)
|
||||
set(TOOLCHAIN_PREFIX x86_64-w64-mingw32)
|
||||
|
||||
# Cross-compilers to use for C and C++
|
||||
set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}-gcc)
|
||||
set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}-g++)
|
||||
|
||||
# Target environment on the build host system (with Homebrew)
|
||||
set(CMAKE_FIND_ROOT_PATH /opt/homebrew/Cellar/mingw-w64/11.0.1/toolchain-x86_64/${TOOLCHAIN_PREFIX})
|
||||
|
||||
# Search for programs in the build host directories (modifying default behavior of FIND_XXX())
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -static -Os")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static -Os")
|
Loading…
Reference in New Issue
Block a user