Files
hunterino-sec e25b2e2a78 Initial commit!
2026-07-19 04:43:07 -04:00

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