###################################################################################################
# OnionHEN shared Detour + hde64 (shellui injectees)
###################################################################################################

cmake_minimum_required(VERSION 3.20)

set(basename "onion_detour")
project(${basename} C CXX)

onion_module_prologue(C_STANDARD 11 CXX_STANDARD 20)

set(D_CWD "${PROJECT_SOURCE_DIR}")

add_library(${PROJECT_NAME} STATIC
  source/detour.cpp
  source/hde64.cpp
  source/hotpatch.cpp
  source/trampoline_arena.cpp
  source/x64_relocator.cpp
)
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "${PROJECT_NAME}")

set(CMAKE_C_FLAGS "${ONION_PS5_TARGET_FLAGS_MARCH} ")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -fstack-protector-all")
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -O2 -Wall -Wextra -Werror -fno-exceptions")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g0 -O2")

target_include_directories(${PROJECT_NAME}
  PUBLIC  "${D_CWD}/include"
  PRIVATE "${D_CWD}/../include"
  PUBLIC  "${D_CWD}/../libonion_platform/include"
  PRIVATE "${D_CWD}/../libonion_ipc/include"
)

# Logging symbols (shellui_log) come from onion_ipc at final link.
add_dependencies(${PROJECT_NAME} onion_ipc)

