Files
Whispergate-JanusLoader/payload/CMakeLists.txt
T
hunterino-sec e25b2e2a78 Initial commit!
2026-07-19 04:43:07 -04:00

39 lines
921 B
CMake

cmake_minimum_required(VERSION 3.20)
project(JanusPayload C CXX ASM)
# Requires a RISC-V cross-compiler:
# apt install gcc-riscv64-linux-gnu g++-riscv64-linux-gnu
# Or pass -DCMAKE_TOOLCHAIN_FILE=../cmake/riscv64.cmake
set(CMAKE_CXX_STANDARD 17)
add_executable(payload
crt0.S
main.cpp
)
target_compile_options(payload PRIVATE
-nostdlib
-fno-exceptions
-fno-rtti
-fPIC
-Os
-march=rv64imac
-mabi=lp64
)
target_link_options(payload PRIVATE
-nostdlib
-static
-fuse-ld=lld # requires: sudo apt install lld
-T ${CMAKE_CURRENT_SOURCE_DIR}/link.ld
)
# After build, generate flat binary + run embed_payload.py
add_custom_command(TARGET payload POST_BUILD
COMMAND python3 ${CMAKE_SOURCE_DIR}/../tools/embed_payload.py
$<TARGET_FILE:payload>
${CMAKE_SOURCE_DIR}/../src/loader/payload_blob.cpp
COMMENT "Embedding payload into loader"
)