mirror of
https://github.com/Whispergate/JanusLoader
synced 2026-07-22 11:23:12 +00:00
40 lines
1.5 KiB
CMake
40 lines
1.5 KiB
CMake
cmake_minimum_required(VERSION 3.20)
|
|
project(JanusLoader CXX)
|
|
|
|
set(CMAKE_CXX_STANDARD 17)
|
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
|
|
|
# ── VM + Loader library ───────────────────────────────────────────────────────
|
|
add_library(janus_vm STATIC
|
|
src/vm/core.cpp
|
|
src/vm/alu.cpp
|
|
src/vm/mem.cpp
|
|
src/vm/branch.cpp
|
|
src/vm/system.cpp
|
|
src/syscall/winapi.cpp
|
|
src/syscall/table.cpp
|
|
src/loader/crypto.cpp
|
|
src/loader/loader.cpp
|
|
src/loader/payload_blob.cpp
|
|
)
|
|
|
|
target_include_directories(janus_vm PUBLIC include)
|
|
|
|
if (MSVC)
|
|
target_compile_options(janus_vm PRIVATE /O2 /GS- /W4)
|
|
target_compile_definitions(janus_vm PRIVATE _CRT_SECURE_NO_WARNINGS)
|
|
else()
|
|
target_compile_options(janus_vm PRIVATE -O2 -Wall -Wextra)
|
|
endif()
|
|
|
|
# ── Loader executable ─────────────────────────────────────────────────────────
|
|
add_executable(JanusLoader src/main.cpp)
|
|
target_link_libraries(JanusLoader PRIVATE janus_vm)
|
|
|
|
if (WIN32)
|
|
target_link_libraries(JanusLoader PRIVATE kernel32)
|
|
endif()
|
|
|
|
# ── Build payload separately ──────────────────────────────────────────────────
|
|
# cd payload && cmake -B build -DCMAKE_TOOLCHAIN_FILE=../cmake/riscv64.cmake && cmake --build build
|