mirror of
https://github.com/aydencharles/onionHEN.git
synced 2026-10-19 02:19:47 -05:00
refactor(build): extract shared CMake target helpers
All 17 module CMakeLists repeated the same prologue: language standards, the PS5 SDK header paths, a clang check, the cross-compile triple, the output directory layout and an objcopy strip step. The triple appeared 17 times and the strip block 6 times, each needing manual sync. Add source/cmake/OnionTarget.cmake with onion_module_prologue, onion_output_dirs and onion_strip_debug. Language standards stay opt-in arguments because the loader-side C modules are C17 while the rest are C11, and a shared default would silently downgrade them. Per-module compiler flags are left alone since the modules genuinely differ. Drop IS_SUBPROJECT and IS_CLANG, which were assigned in 11 and 6 modules respectively and never read anywhere. Add CONFIGURE_DEPENDS to the seven source-listing globs that lacked it, so a newly added source file triggers a re-configure instead of being silently omitted from the build. Hoist -DDEBUG onto the shared C flags in the five modules that only passed it to C++, so both languages in a target see the same macros. No .c file keys off DEBUG today, so this changes no behaviour. Compile and link flags were captured from build.ninja before and after: all 132 compile edges and 17 link edges are unchanged except for the intended -DDEBUG addition. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
1 parent
dccfa2ddf0
commit
8db337607a
19 files changed
+170
-449
No files matched your search
@@ -3,6 +3,8 @@ cmake_minimum_required (VERSION 3.20)
|
||||
project("OnionHEN")
|
||||
|
||||
set(PROJECT_ROOT "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
||||
include(OnionTarget)
|
||||
get_filename_component(ONIONHEN_ROOT "${PROJECT_ROOT}/.." ABSOLUTE)
|
||||
set(ONIONHEN_THIRD_PARTY_DIR "${ONIONHEN_ROOT}/third_party" CACHE PATH
|
||||
"Third-party dependency source directory")
|
||||
|
||||
@@ -3,33 +3,10 @@ cmake_minimum_required (VERSION 3.20)
|
||||
set(basename "bootstrapper")
|
||||
project(${basename} C CXX ASM)
|
||||
|
||||
# Language Standard Defaults
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
|
||||
set(CMAKE_CXX_EXTENSIONS ON)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
|
||||
# Check for sub-project as part of main build or external build
|
||||
if (NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
|
||||
set(IS_SUBPROJECT TRUE)
|
||||
else()
|
||||
set(IS_SUBPROJECT FALSE)
|
||||
endif()
|
||||
|
||||
message("IS_SUBPROJECT: ${IS_SUBPROJECT}")
|
||||
onion_module_prologue(C_STANDARD 11 CXX_STANDARD 20)
|
||||
|
||||
set(D_CWD "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
if(DEFINED ONIONHEN_OUT_BIN)
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${ONIONHEN_OUT_BIN})
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${ONIONHEN_OUT_LIB})
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${ONIONHEN_OUT_LIB})
|
||||
else()
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${D_CWD}/../bin)
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${D_CWD}/bin)
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${D_CWD}/bin)
|
||||
endif()
|
||||
onion_output_dirs()
|
||||
set(D_SRC ${D_CWD}/source)
|
||||
|
||||
# SVG menu icons are the source of truth. Rasterize them into the build tree so
|
||||
@@ -97,20 +74,9 @@ foreach(_raster_icon IN ITEMS
|
||||
list(APPEND _generated_icon_files "${_raster_output}")
|
||||
endforeach()
|
||||
|
||||
# Headers
|
||||
include_directories (SYSTEM "${PS5_PAYLOAD_SDK}")
|
||||
include_directories (SYSTEM "${PS5_PAYLOAD_SDK}/include")
|
||||
|
||||
add_executable(${PROJECT_NAME})
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "${PROJECT_NAME}.elf")
|
||||
|
||||
# Must build with clang
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "[Cc]lang")
|
||||
set(IS_CLANG 1)
|
||||
else()
|
||||
message(FATAL_ERROR "${PROJECT_NAME} is meant to be built with clang! CompilerID: ${CMAKE_CXX_COMPILER_ID}")
|
||||
endif()
|
||||
|
||||
# Finalize main target sources
|
||||
target_compile_options(${PROJECT_NAME} PUBLIC
|
||||
$<$<COMPILE_LANGUAGE:C>:${C_DEFS} ${C_FLAGS}>
|
||||
@@ -118,17 +84,15 @@ target_compile_options(${PROJECT_NAME} PUBLIC
|
||||
$<$<COMPILE_LANGUAGE:ASM>:${ASM_FLAGS}>
|
||||
)
|
||||
|
||||
message("========== build: ${PROJECT_NAME} ==========")
|
||||
|
||||
|
||||
# Byepervisor removed from OnionHEN — bootstrapper sources only.
|
||||
# pt.c / elfldr.c live in libonion_elfldr (raise_privileges + inject primitives).
|
||||
file(GLOB SrcFiles ${D_SRC}/*.c ${D_SRC}/*.cpp ${D_SRC}/../include/*.h ${D_SRC}/../include/*.hpp ${D_SRC}/*.s ${ONIONHEN_COMMON_DIR}/backtrace.cpp)
|
||||
file(GLOB SrcFiles CONFIGURE_DEPENDS ${D_SRC}/*.c ${D_SRC}/*.cpp ${D_SRC}/../include/*.h ${D_SRC}/../include/*.hpp ${D_SRC}/*.s ${ONIONHEN_COMMON_DIR}/backtrace.cpp)
|
||||
list(FILTER SrcFiles EXCLUDE REGEX ".*/(pt|elfldr)\\.c$")
|
||||
|
||||
set(CMAKE_C_FLAGS "--target=x86_64-sie-ps5 -DPPR -DPS5 -DPS5_FW_VERSION=${V_FW} ")
|
||||
set(CMAKE_C_FLAGS "${ONION_PS5_TARGET_FLAGS} ")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-keyword-macro -fPIC -fPIE -march=znver2 -Wall -Werror -fstack-protector-all")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -DDEBUG -gfull -gdwarf-2 -O0 -pedantic -pedantic-errors")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DDEBUG")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -gfull -gdwarf-2 -O0 -pedantic -pedantic-errors")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0")
|
||||
|
||||
target_sources(${PROJECT_NAME} PRIVATE ${SrcFiles})
|
||||
@@ -168,7 +132,6 @@ target_include_directories(${PROJECT_NAME} PRIVATE
|
||||
target_link_directories (${PROJECT_NAME} PUBLIC "${ONIONHEN_PS5_STUB_DIR}")
|
||||
target_sources(${PROJECT_NAME} PRIVATE "${ONIONHEN_COMMON_DIR}/elfldr_remote.c")
|
||||
target_link_libraries (${PROJECT_NAME} PUBLIC onion_proc onion_platform onion_settings onion_payload onion_ready onion_elfldr SceNotification SceSystemService)
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
add_custom_target(${PROJECT_NAME}_assets DEPENDS ${_generated_icon_files})
|
||||
add_dependencies(${PROJECT_NAME} ${PROJECT_NAME}_assets)
|
||||
add_dependencies(${PROJECT_NAME} daemon util shellui onion_elfldr_server onion_proc onion_platform onion_settings onion_payload onion_ready onion_elfldr)
|
||||
@@ -180,10 +143,7 @@ add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
|
||||
)
|
||||
|
||||
# Add post-build command
|
||||
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
|
||||
COMMAND ${CMAKE_OBJCOPY} --remove-section .debug_info --remove-section .debug_abbrev --remove-section .debug_line --remove-section .debug_str --remove-section .debug_loc --remove-section .debug_aranges --remove-section .debug_ranges --remove-section .debug_pubnames --remove-section .debug_pubtypes --remove-section .debug_frame --strip-unneeded $<TARGET_FILE:${PROJECT_NAME}>
|
||||
COMMENT "Stripping debugging information from ${PROJECT_NAME}.elf"
|
||||
)
|
||||
onion_strip_debug(${PROJECT_NAME})
|
||||
|
||||
# Portable size + lzma pack (Linux GNU stat / macOS BSD stat; lzma or xz)
|
||||
# PROJECT_ROOT is source/; pack script lives at repo scripts/
|
||||
|
||||
@@ -0,0 +1,105 @@
|
||||
# OnionHEN shared CMake helpers.
|
||||
#
|
||||
# Every module under source/ used to repeat the same prologue: language
|
||||
# standards, the PS5 SDK header paths, a clang check, the cross-compile target
|
||||
# triple, the output directories, and an objcopy strip step. That was 17 copies
|
||||
# of the triple, 11 of the IS_SUBPROJECT dance, 9 clang checks and 6 strip
|
||||
# blocks — all of which had to be kept in sync by hand.
|
||||
#
|
||||
# Modules now call:
|
||||
# onion_module_prologue() # standards + SDK includes + clang check
|
||||
# onion_output_dirs() # bin/ and lib/ layout
|
||||
# onion_strip_debug(<target>) # post-build objcopy (ELF targets only)
|
||||
#
|
||||
# Compiler flags stay per-module: the modules genuinely differ (libhijacker
|
||||
# builds -O3 -fno-exceptions, shellui adds -pedantic, libNidResolver is
|
||||
# -nostdlib). ONION_PS5_TARGET_FLAGS holds only the part that is identical
|
||||
# everywhere, so a module composes it with its own flags rather than retyping
|
||||
# the triple.
|
||||
|
||||
include_guard(GLOBAL)
|
||||
|
||||
# Cross-compile target + platform defines. Identical in all 17 modules.
|
||||
# NOTE: no -march here — a few modules place it at a different position in
|
||||
# their flag string, so they append it themselves.
|
||||
set(ONION_PS5_TARGET_FLAGS
|
||||
"--target=x86_64-sie-ps5 -DPPR -DPS5 -DPS5_FW_VERSION=${V_FW}")
|
||||
|
||||
# Same, with -march=znver2 folded in, which is what most modules want.
|
||||
set(ONION_PS5_TARGET_FLAGS_MARCH
|
||||
"--target=x86_64-sie-ps5 -march=znver2 -DPPR -DPS5 -DPS5_FW_VERSION=${V_FW}")
|
||||
|
||||
# Language standards, PS5 SDK headers, and a compiler sanity check.
|
||||
# A macro (not a function) so the CMAKE_* settings land in the caller's scope.
|
||||
#
|
||||
# Usage: onion_module_prologue([C_STANDARD <n>] [CXX_STANDARD <n>])
|
||||
#
|
||||
# The standards are opt-in because modules genuinely differ: the loader-side
|
||||
# C modules (NidResolver, NineS, onion_elfldr, elfldr_server) are C17 while
|
||||
# the rest are C11. Setting a default here would silently downgrade them.
|
||||
macro(onion_module_prologue)
|
||||
cmake_parse_arguments(_onion "" "C_STANDARD;CXX_STANDARD" "" ${ARGN})
|
||||
if(DEFINED _onion_C_STANDARD)
|
||||
set(CMAKE_C_STANDARD ${_onion_C_STANDARD})
|
||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
endif()
|
||||
if(DEFINED _onion_CXX_STANDARD)
|
||||
set(CMAKE_CXX_STANDARD ${_onion_CXX_STANDARD})
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS ON)
|
||||
endif()
|
||||
|
||||
include_directories(SYSTEM "${PS5_PAYLOAD_SDK}")
|
||||
include_directories(SYSTEM "${PS5_PAYLOAD_SDK}/include")
|
||||
|
||||
# Check whichever language the module actually enabled — asking about
|
||||
# CMAKE_CXX_COMPILER_ID in a `project(... C)` module reads as empty and
|
||||
# would fail the check spuriously.
|
||||
get_property(_onion_langs GLOBAL PROPERTY ENABLED_LANGUAGES)
|
||||
if("CXX" IN_LIST _onion_langs)
|
||||
set(_onion_compiler_id "${CMAKE_CXX_COMPILER_ID}")
|
||||
else()
|
||||
set(_onion_compiler_id "${CMAKE_C_COMPILER_ID}")
|
||||
endif()
|
||||
if(NOT "${_onion_compiler_id}" MATCHES "[Cc]lang")
|
||||
message(FATAL_ERROR
|
||||
"${PROJECT_NAME} must be built with clang! CompilerID: ${_onion_compiler_id}")
|
||||
endif()
|
||||
unset(_onion_langs)
|
||||
unset(_onion_compiler_id)
|
||||
|
||||
message("========== build: ${PROJECT_NAME} ==========")
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
endmacro()
|
||||
|
||||
# Artifact layout: ELFs to bin/, static libs to lib/. Falls back to a
|
||||
# module-local directory for standalone (non-superbuild) configures.
|
||||
macro(onion_output_dirs)
|
||||
if(DEFINED ONIONHEN_OUT_BIN)
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${ONIONHEN_OUT_BIN}")
|
||||
else()
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/../bin")
|
||||
endif()
|
||||
if(DEFINED ONIONHEN_OUT_LIB)
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${ONIONHEN_OUT_LIB}")
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${ONIONHEN_OUT_LIB}")
|
||||
else()
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/bin")
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_SOURCE_DIR}/bin")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
# Drop DWARF sections from a linked ELF. Keeps the on-device payload small;
|
||||
# the unstripped object files stay in the build tree for symbolication.
|
||||
function(onion_strip_debug target)
|
||||
add_custom_command(TARGET ${target} POST_BUILD
|
||||
COMMAND ${CMAKE_OBJCOPY}
|
||||
--remove-section .debug_info --remove-section .debug_abbrev
|
||||
--remove-section .debug_line --remove-section .debug_str
|
||||
--remove-section .debug_loc --remove-section .debug_aranges
|
||||
--remove-section .debug_ranges --remove-section .debug_pubnames
|
||||
--remove-section .debug_pubtypes --remove-section .debug_frame
|
||||
--strip-unneeded $<TARGET_FILE:${target}>
|
||||
COMMENT "Stripping debugging information from ${target}"
|
||||
)
|
||||
endfunction()
|
||||
@@ -3,49 +3,15 @@ cmake_minimum_required (VERSION 3.20)
|
||||
set(basename "daemon")
|
||||
project(${basename} C CXX ASM)
|
||||
|
||||
# Language Standard Defaults
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
|
||||
set(CMAKE_CXX_EXTENSIONS ON)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
|
||||
# Check for sub-project as part of main build or external build
|
||||
if (NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
|
||||
set(IS_SUBPROJECT TRUE)
|
||||
else()
|
||||
set(IS_SUBPROJECT FALSE)
|
||||
endif()
|
||||
|
||||
message("IS_SUBPROJECT: ${IS_SUBPROJECT}")
|
||||
onion_module_prologue(C_STANDARD 11 CXX_STANDARD 20)
|
||||
|
||||
set(D_CWD "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
if(DEFINED ONIONHEN_OUT_BIN)
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${ONIONHEN_OUT_BIN})
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${ONIONHEN_OUT_LIB})
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${ONIONHEN_OUT_LIB})
|
||||
else()
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${D_CWD}/../bin)
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${D_CWD}/bin)
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${D_CWD}/bin)
|
||||
endif()
|
||||
onion_output_dirs()
|
||||
set(D_SRC ${D_CWD}/source)
|
||||
|
||||
# Headers
|
||||
include_directories (SYSTEM "${PS5_PAYLOAD_SDK}")
|
||||
include_directories (SYSTEM "${PS5_PAYLOAD_SDK}/include")
|
||||
|
||||
add_executable(${PROJECT_NAME})
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "${PROJECT_NAME}.elf")
|
||||
|
||||
# Must build with clang
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "[Cc]lang")
|
||||
set(IS_CLANG 1)
|
||||
else()
|
||||
message(FATAL_ERROR "${PROJECT_NAME} is meant to be built with clang! CompilerID: ${CMAKE_CXX_COMPILER_ID}")
|
||||
endif()
|
||||
|
||||
# Finalize main target sources
|
||||
target_compile_options(${PROJECT_NAME} PUBLIC
|
||||
$<$<COMPILE_LANGUAGE:C>:${C_DEFS} ${C_FLAGS}>
|
||||
@@ -53,14 +19,12 @@ target_compile_options(${PROJECT_NAME} PUBLIC
|
||||
$<$<COMPILE_LANGUAGE:ASM>:${ASM_FLAGS}>
|
||||
)
|
||||
|
||||
message("========== build: ${PROJECT_NAME} ==========")
|
||||
file(GLOB SrcFiles CONFIGURE_DEPENDS ${D_SRC}/*.c ${D_SRC}/*.cpp ${D_SRC}/../include/*.h ${D_SRC}/../include/*.hpp ${D_SRC}/*.s ${ONIONHEN_THIRD_PARTY_DIR}/cjson/*.cpp ${ONIONHEN_THIRD_PARTY_DIR}/cjson/*.hpp ${ONIONHEN_COMMON_DIR}/backtrace.cpp)
|
||||
|
||||
|
||||
file(GLOB SrcFiles ${D_SRC}/*.c ${D_SRC}/*.cpp ${D_SRC}/../include/*.h ${D_SRC}/../include/*.hpp ${D_SRC}/*.s ${ONIONHEN_THIRD_PARTY_DIR}/cjson/*.cpp ${ONIONHEN_THIRD_PARTY_DIR}/cjson/*.hpp ${ONIONHEN_COMMON_DIR}/backtrace.cpp)
|
||||
|
||||
set(CMAKE_C_FLAGS "--target=x86_64-sie-ps5 -DPPR -DPS5 -DPS5_FW_VERSION=${V_FW} ")
|
||||
set(CMAKE_C_FLAGS "${ONION_PS5_TARGET_FLAGS} ")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-keyword-macro -fPIC -fPIE -march=znver2 -Wall -Werror -fstack-protector-all")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -DDEBUG -gfull -gdwarf-2 -O0 -pedantic -pedantic-errors")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DDEBUG")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -gfull -gdwarf-2 -O0 -pedantic -pedantic-errors")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0 ")
|
||||
|
||||
target_sources(${PROJECT_NAME} PRIVATE ${SrcFiles} "${ONIONHEN_COMMON_DIR}/elfldr_remote.c")
|
||||
@@ -96,9 +60,5 @@ target_link_directories (${PROJECT_NAME} PUBLIC "${ONIONHEN_PS5_STUB_DIR}")
|
||||
add_dependencies(${PROJECT_NAME} onion_version util onion_elfldr_server NineS shellui hijacker onion_settings onion_ipc onion_proc onion_platform onion_ready onion_elfldr)
|
||||
# Supervises private :9020 via external :9021, then restarts embedded util via :9020.
|
||||
target_link_libraries (${PROJECT_NAME} PUBLIC onion_ipc onion_settings onion_proc onion_platform onion_ready onion_elfldr hijacker SceSystemService SceNotification SceUserService SceNetCtl SceSysCore kernel_sys NineS)
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
# Add post-build command
|
||||
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
|
||||
COMMAND ${CMAKE_OBJCOPY} --remove-section .debug_info --remove-section .debug_abbrev --remove-section .debug_line --remove-section .debug_str --remove-section .debug_loc --remove-section .debug_aranges --remove-section .debug_ranges --remove-section .debug_pubnames --remove-section .debug_pubtypes --remove-section .debug_frame --strip-unneeded $<TARGET_FILE:${PROJECT_NAME}>
|
||||
COMMENT "Stripping debugging information from ${PROJECT_NAME}.elf"
|
||||
)
|
||||
onion_strip_debug(${PROJECT_NAME})
|
||||
@@ -9,29 +9,13 @@ cmake_minimum_required (VERSION 3.20)
|
||||
set(basename "NidResolver")
|
||||
project(${basename} C)
|
||||
|
||||
# Language Standard Defaults
|
||||
set(CMAKE_C_STANDARD 17)
|
||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
|
||||
# Check for sub-project as part of main build or external build
|
||||
if (NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
|
||||
set(IS_SUBPROJECT TRUE)
|
||||
else()
|
||||
set(IS_SUBPROJECT FALSE)
|
||||
endif()
|
||||
|
||||
message("IS_SUBPROJECT: ${IS_SUBPROJECT}")
|
||||
|
||||
set(D_CWD "${PROJECT_SOURCE_DIR}")
|
||||
|
||||
|
||||
# Headers
|
||||
include_directories (SYSTEM "${PS5_PAYLOAD_SDK}")
|
||||
include_directories (SYSTEM "${PS5_PAYLOAD_SDK}/include")
|
||||
onion_module_prologue(C_STANDARD 17)
|
||||
|
||||
set(D_SRC ${D_CWD}/source)
|
||||
|
||||
file(GLOB SrcFiles ${D_SRC}/*.c ${D_SRC}/*.h)
|
||||
file(GLOB SrcFiles CONFIGURE_DEPENDS ${D_SRC}/*.c ${D_SRC}/*.h)
|
||||
|
||||
add_library(${PROJECT_NAME} STATIC ${SrcFiles})
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "${PROJECT_NAME}")
|
||||
@@ -41,12 +25,9 @@ target_compile_options(${PROJECT_NAME} PUBLIC
|
||||
$<$<COMPILE_LANGUAGE:C>:${C_DEFS} ${C_FLAGS}>
|
||||
)
|
||||
|
||||
message("========== build: ${PROJECT_NAME} ==========")
|
||||
|
||||
set(CMAKE_C_FLAGS "--target=x86_64-sie-ps5 -march=znver2 -DPPR -DPS5 -DPS5_FW_VERSION=${V_FW} ")
|
||||
set(CMAKE_C_FLAGS "${ONION_PS5_TARGET_FLAGS_MARCH} ")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_POSIX_SOURCE -D_POSIX_C_SOURCE=200112 -D__BSD_VISIBLE=1 -D__XSI_VISIBLE=500")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-builtin -nostdlib -Wall") # -nostartfiles
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -gfull -O3 -march=znver2 -Wall -Werror")
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE "${D_CWD}/../include")
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
@@ -9,25 +9,9 @@ cmake_minimum_required (VERSION 3.20)
|
||||
set(basename "NineS")
|
||||
project(${basename} C)
|
||||
|
||||
# Language Standard Defaults
|
||||
set(CMAKE_C_STANDARD 17)
|
||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
|
||||
# Check for sub-project as part of main build or external build
|
||||
if (NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
|
||||
set(IS_SUBPROJECT TRUE)
|
||||
else()
|
||||
set(IS_SUBPROJECT FALSE)
|
||||
endif()
|
||||
|
||||
message("IS_SUBPROJECT: ${IS_SUBPROJECT}")
|
||||
|
||||
set(D_CWD "${PROJECT_SOURCE_DIR}")
|
||||
|
||||
|
||||
# Headers
|
||||
include_directories (SYSTEM "${PS5_PAYLOAD_SDK}")
|
||||
include_directories (SYSTEM "${PS5_PAYLOAD_SDK}/include")
|
||||
onion_module_prologue(C_STANDARD 17)
|
||||
|
||||
set(D_SRC ${D_CWD}/src)
|
||||
|
||||
@@ -46,9 +30,7 @@ target_compile_options(${PROJECT_NAME} PUBLIC
|
||||
$<$<COMPILE_LANGUAGE:C>:${C_DEFS} ${C_FLAGS}>
|
||||
)
|
||||
|
||||
message("========== build: ${PROJECT_NAME} ==========")
|
||||
|
||||
set(CMAKE_C_FLAGS "--target=x86_64-sie-ps5 -march=znver2 -DPPR -DPS5 -DPS5_FW_VERSION=${V_FW} ")
|
||||
set(CMAKE_C_FLAGS "${ONION_PS5_TARGET_FLAGS_MARCH} ")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_POSIX_SOURCE -D_POSIX_C_SOURCE=200112 -D__BSD_VISIBLE=1 -D__XSI_VISIBLE=500")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-builtin -nostdlib -Wall") # -nostartfiles
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
|
||||
@@ -75,4 +57,3 @@ if(TARGET onion_elfldr)
|
||||
add_dependencies(${PROJECT_NAME} onion_elfldr)
|
||||
target_link_libraries(${PROJECT_NAME} PUBLIC onion_elfldr)
|
||||
endif()
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
@@ -9,47 +9,19 @@ cmake_minimum_required (VERSION 3.20)
|
||||
set(basename "hijacker")
|
||||
project(${basename} C CXX ASM)
|
||||
|
||||
# Language Standard Defaults
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
|
||||
set(CMAKE_CXX_EXTENSIONS ON)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
onion_module_prologue(C_STANDARD 11 CXX_STANDARD 20)
|
||||
if ("${CMAKE_CXX_STANDARD}" STREQUAL "")
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
endif()
|
||||
|
||||
# Check for sub-project as part of main build or external build
|
||||
if (NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
|
||||
set(IS_SUBPROJECT TRUE)
|
||||
else()
|
||||
set(IS_SUBPROJECT FALSE)
|
||||
endif()
|
||||
|
||||
message("IS_SUBPROJECT: ${IS_SUBPROJECT}")
|
||||
|
||||
set(D_CWD "${PROJECT_SOURCE_DIR}")
|
||||
|
||||
|
||||
# Headers
|
||||
include_directories (SYSTEM "${PS5_PAYLOAD_SDK}")
|
||||
include_directories (SYSTEM "${PS5_PAYLOAD_SDK}/include")
|
||||
|
||||
set(D_SRC ${D_CWD}/source)
|
||||
|
||||
file(GLOB SrcFiles ${D_SRC}/*.c ${D_SRC}/*.cpp ${D_SRC}/**/*.cpp ${D_SRC}/*.h ${D_SRC}/*.hpp ${D_SRC}/**/*.hpp ${D_SRC}/*.s)
|
||||
file(GLOB SrcFiles CONFIGURE_DEPENDS ${D_SRC}/*.c ${D_SRC}/*.cpp ${D_SRC}/**/*.cpp ${D_SRC}/*.h ${D_SRC}/*.hpp ${D_SRC}/**/*.hpp ${D_SRC}/*.s)
|
||||
|
||||
add_library(${PROJECT_NAME} STATIC ${SrcFiles})
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "${PROJECT_NAME}")
|
||||
|
||||
# Must build with clang
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "[Cc]lang")
|
||||
set(IS_CLANG 1)
|
||||
else()
|
||||
message(FATAL_ERROR "${PROJECT_NAME} is meant to be built with clang! CompilerID: ${CMAKE_CXX_COMPILER_ID}")
|
||||
endif()
|
||||
|
||||
# Finalize main target sources
|
||||
target_compile_options(${PROJECT_NAME} PUBLIC
|
||||
$<$<COMPILE_LANGUAGE:C>:${C_DEFS} ${C_FLAGS}>
|
||||
@@ -57,13 +29,8 @@ target_compile_options(${PROJECT_NAME} PUBLIC
|
||||
$<$<COMPILE_LANGUAGE:ASM>:${ASM_FLAGS}>
|
||||
)
|
||||
|
||||
message("========== build: ${PROJECT_NAME} ==========")
|
||||
|
||||
|
||||
|
||||
set(CMAKE_C_FLAGS "--target=x86_64-sie-ps5 -march=znver2 -DPPR -DPS5 -DPS5_FW_VERSION=${V_FW} ")
|
||||
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} -O3 -march=znver2 -Wall -Wextra -Wmove -Wmost -Werror -fno-exceptions")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g0 -O0")
|
||||
target_include_directories(${PROJECT_NAME} PRIVATE "${D_CWD}/../include")
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
@@ -7,25 +7,10 @@ cmake_minimum_required(VERSION 3.20)
|
||||
set(basename "onion_detour")
|
||||
project(${basename} C CXX)
|
||||
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS ON)
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
if(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
|
||||
set(IS_SUBPROJECT TRUE)
|
||||
else()
|
||||
set(IS_SUBPROJECT FALSE)
|
||||
endif()
|
||||
|
||||
message("IS_SUBPROJECT: ${IS_SUBPROJECT}")
|
||||
onion_module_prologue(C_STANDARD 11 CXX_STANDARD 20)
|
||||
|
||||
set(D_CWD "${PROJECT_SOURCE_DIR}")
|
||||
|
||||
include_directories(SYSTEM "${PS5_PAYLOAD_SDK}")
|
||||
include_directories(SYSTEM "${PS5_PAYLOAD_SDK}/include")
|
||||
|
||||
add_library(${PROJECT_NAME} STATIC
|
||||
source/detour.cpp
|
||||
source/hde64.cpp
|
||||
@@ -35,13 +20,7 @@ add_library(${PROJECT_NAME} STATIC
|
||||
)
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "${PROJECT_NAME}")
|
||||
|
||||
if(NOT "${CMAKE_CXX_COMPILER_ID}" MATCHES "[Cc]lang")
|
||||
message(FATAL_ERROR "${PROJECT_NAME} is meant to be built with clang! CompilerID: ${CMAKE_CXX_COMPILER_ID}")
|
||||
endif()
|
||||
|
||||
message("========== build: ${PROJECT_NAME} ==========")
|
||||
|
||||
set(CMAKE_C_FLAGS "--target=x86_64-sie-ps5 -march=znver2 -DPPR -DPS5 -DPS5_FW_VERSION=${V_FW} ")
|
||||
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")
|
||||
@@ -55,4 +34,3 @@ target_include_directories(${PROJECT_NAME}
|
||||
# Logging symbols (shellui_log) come from onion_ipc at final link.
|
||||
add_dependencies(${PROJECT_NAME} onion_ipc)
|
||||
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
@@ -7,12 +7,9 @@ cmake_minimum_required(VERSION 3.20)
|
||||
set(basename "onion_elfldr")
|
||||
project(${basename} C)
|
||||
|
||||
set(CMAKE_C_STANDARD 17)
|
||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
set(D_CWD "${PROJECT_SOURCE_DIR}")
|
||||
|
||||
include_directories(SYSTEM "${PS5_PAYLOAD_SDK}")
|
||||
include_directories(SYSTEM "${PS5_PAYLOAD_SDK}/include")
|
||||
onion_module_prologue(C_STANDARD 17)
|
||||
|
||||
add_library(${PROJECT_NAME} STATIC
|
||||
source/pt.c
|
||||
@@ -20,9 +17,7 @@ add_library(${PROJECT_NAME} STATIC
|
||||
)
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "${PROJECT_NAME}")
|
||||
|
||||
message("========== build: ${PROJECT_NAME} ==========")
|
||||
|
||||
set(CMAKE_C_FLAGS "--target=x86_64-sie-ps5 -march=znver2 -DPPR -DPS5 -DPS5_FW_VERSION=${V_FW} ")
|
||||
set(CMAKE_C_FLAGS "${ONION_PS5_TARGET_FLAGS_MARCH} ")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_POSIX_SOURCE -D_POSIX_C_SOURCE=200112 -D__BSD_VISIBLE=1 -D__XSI_VISIBLE=500")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-builtin -nostdlib -Wall -fPIC -gfull -O3")
|
||||
|
||||
@@ -34,4 +29,3 @@ target_include_directories(${PROJECT_NAME}
|
||||
# Authid policy: no per-syscall flip in pt.c; injectors elevate once at entry.
|
||||
target_compile_definitions(${PROJECT_NAME} PRIVATE ONION_ELFLDR_NO_PER_CALL_AUTHID=1)
|
||||
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
@@ -7,38 +7,17 @@ cmake_minimum_required(VERSION 3.20)
|
||||
set(basename "onion_ipc")
|
||||
project(${basename} C CXX)
|
||||
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS ON)
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
if(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
|
||||
set(IS_SUBPROJECT TRUE)
|
||||
else()
|
||||
set(IS_SUBPROJECT FALSE)
|
||||
endif()
|
||||
|
||||
message("IS_SUBPROJECT: ${IS_SUBPROJECT}")
|
||||
onion_module_prologue(C_STANDARD 11 CXX_STANDARD 20)
|
||||
|
||||
set(D_CWD "${PROJECT_SOURCE_DIR}")
|
||||
|
||||
include_directories(SYSTEM "${PS5_PAYLOAD_SDK}")
|
||||
include_directories(SYSTEM "${PS5_PAYLOAD_SDK}/include")
|
||||
|
||||
add_library(${PROJECT_NAME} STATIC
|
||||
source/ipc_client.cpp
|
||||
source/ipc_server.cpp
|
||||
)
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "${PROJECT_NAME}")
|
||||
|
||||
if(NOT "${CMAKE_CXX_COMPILER_ID}" MATCHES "[Cc]lang")
|
||||
message(FATAL_ERROR "${PROJECT_NAME} is meant to be built with clang! CompilerID: ${CMAKE_CXX_COMPILER_ID}")
|
||||
endif()
|
||||
|
||||
message("========== build: ${PROJECT_NAME} ==========")
|
||||
|
||||
set(CMAKE_C_FLAGS "--target=x86_64-sie-ps5 -march=znver2 -DPPR -DPS5 -DPS5_FW_VERSION=${V_FW} ")
|
||||
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")
|
||||
@@ -52,4 +31,3 @@ target_include_directories(${PROJECT_NAME}
|
||||
# cJSON symbols are provided by the final link unit (shellui already
|
||||
# compile third_party/cjson into the ELF). Keep them unresolved here.
|
||||
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
@@ -7,19 +7,13 @@ cmake_minimum_required(VERSION 3.20)
|
||||
set(basename "onion_payload")
|
||||
project(${basename} C)
|
||||
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
onion_module_prologue(C_STANDARD 11)
|
||||
set(D_CWD "${PROJECT_SOURCE_DIR}")
|
||||
|
||||
include_directories(SYSTEM "${PS5_PAYLOAD_SDK}")
|
||||
include_directories(SYSTEM "${PS5_PAYLOAD_SDK}/include")
|
||||
|
||||
add_library(${PROJECT_NAME} STATIC source/payload.c)
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "${PROJECT_NAME}")
|
||||
|
||||
message("========== build: ${PROJECT_NAME} ==========")
|
||||
|
||||
set(CMAKE_C_FLAGS "--target=x86_64-sie-ps5 -march=znver2 -DPPR -DPS5 -DPS5_FW_VERSION=${V_FW} -fPIC -fstack-protector-all -O2 -Wall -Wextra -Werror")
|
||||
set(CMAKE_C_FLAGS "${ONION_PS5_TARGET_FLAGS_MARCH} -fPIC -fstack-protector-all -O2 -Wall -Wextra -Werror")
|
||||
|
||||
target_include_directories(${PROJECT_NAME}
|
||||
PUBLIC "${D_CWD}/include"
|
||||
@@ -32,4 +26,3 @@ target_include_directories(${PROJECT_NAME}
|
||||
target_link_libraries(${PROJECT_NAME} PUBLIC onion_proc onion_platform)
|
||||
add_dependencies(${PROJECT_NAME} onion_proc onion_platform)
|
||||
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
@@ -7,13 +7,9 @@ cmake_minimum_required(VERSION 3.20)
|
||||
set(basename "onion_platform")
|
||||
project(${basename} C)
|
||||
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
onion_module_prologue(C_STANDARD 11)
|
||||
set(D_CWD "${PROJECT_SOURCE_DIR}")
|
||||
|
||||
include_directories(SYSTEM "${PS5_PAYLOAD_SDK}")
|
||||
include_directories(SYSTEM "${PS5_PAYLOAD_SDK}/include")
|
||||
|
||||
add_library(${PROJECT_NAME} STATIC
|
||||
source/fs.c
|
||||
source/log.c
|
||||
@@ -23,8 +19,6 @@ add_library(${PROJECT_NAME} STATIC
|
||||
)
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "${PROJECT_NAME}")
|
||||
|
||||
message("========== build: ${PROJECT_NAME} ==========")
|
||||
|
||||
find_package(Python3 REQUIRED COMPONENTS Interpreter)
|
||||
|
||||
set(I18N_DIR "${D_CWD}/../i18n")
|
||||
@@ -47,11 +41,10 @@ add_custom_command(
|
||||
add_custom_target(onion_platform_i18n_catalog DEPENDS "${NOTIFY_I18N_CATALOG}")
|
||||
add_dependencies(${PROJECT_NAME} onion_platform_i18n_catalog)
|
||||
|
||||
set(CMAKE_C_FLAGS "--target=x86_64-sie-ps5 -march=znver2 -DPPR -DPS5 -DPS5_FW_VERSION=${V_FW} -fPIC -fstack-protector-all -O2 -Wall -Wextra -Werror")
|
||||
set(CMAKE_C_FLAGS "${ONION_PS5_TARGET_FLAGS_MARCH} -fPIC -fstack-protector-all -O2 -Wall -Wextra -Werror")
|
||||
|
||||
target_include_directories(${PROJECT_NAME}
|
||||
PUBLIC "${D_CWD}/include"
|
||||
PRIVATE "${D_CWD}/../include" "${I18N_GENERATED_DIR}"
|
||||
)
|
||||
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
@@ -1,20 +1,15 @@
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
set(basename "onion_proc")
|
||||
project(${basename} C CXX)
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(D_CWD "${PROJECT_SOURCE_DIR}")
|
||||
include_directories(SYSTEM "${PS5_PAYLOAD_SDK}")
|
||||
include_directories(SYSTEM "${PS5_PAYLOAD_SDK}/include")
|
||||
onion_module_prologue(C_STANDARD 11 CXX_STANDARD 20)
|
||||
add_library(${PROJECT_NAME} STATIC
|
||||
source/proc.cpp
|
||||
source/ucred.cpp
|
||||
source/proc_query.cpp
|
||||
)
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "${PROJECT_NAME}")
|
||||
message("========== build: ${PROJECT_NAME} ==========")
|
||||
set(CMAKE_C_FLAGS "--target=x86_64-sie-ps5 -march=znver2 -DPPR -DPS5 -DPS5_FW_VERSION=${V_FW} -fPIC -fstack-protector-all")
|
||||
set(CMAKE_C_FLAGS "${ONION_PS5_TARGET_FLAGS_MARCH} -fPIC -fstack-protector-all")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -O2 -Wall -Wextra -Werror -fno-exceptions")
|
||||
target_include_directories(${PROJECT_NAME}
|
||||
PUBLIC "${D_CWD}/include"
|
||||
|
||||
@@ -2,22 +2,15 @@ cmake_minimum_required(VERSION 3.20)
|
||||
set(basename "onion_ready")
|
||||
project(${basename} C)
|
||||
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
onion_module_prologue(C_STANDARD 11)
|
||||
set(D_CWD "${PROJECT_SOURCE_DIR}")
|
||||
|
||||
include_directories(SYSTEM "${PS5_PAYLOAD_SDK}")
|
||||
include_directories(SYSTEM "${PS5_PAYLOAD_SDK}/include")
|
||||
|
||||
add_library(${PROJECT_NAME} STATIC source/ready.c)
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "${PROJECT_NAME}")
|
||||
|
||||
message("========== build: ${PROJECT_NAME} ==========")
|
||||
|
||||
set(CMAKE_C_FLAGS "--target=x86_64-sie-ps5 -march=znver2 -DPPR -DPS5 -DPS5_FW_VERSION=${V_FW} -fPIC -fstack-protector-all -O2 -Wall -Wextra -Werror")
|
||||
set(CMAKE_C_FLAGS "${ONION_PS5_TARGET_FLAGS_MARCH} -fPIC -fstack-protector-all -O2 -Wall -Wextra -Werror")
|
||||
|
||||
target_include_directories(${PROJECT_NAME}
|
||||
PUBLIC "${PROJECT_ROOT}/include"
|
||||
)
|
||||
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
@@ -7,37 +7,16 @@ cmake_minimum_required(VERSION 3.20)
|
||||
set(basename "onion_settings")
|
||||
project(${basename} C CXX)
|
||||
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS ON)
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
if(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
|
||||
set(IS_SUBPROJECT TRUE)
|
||||
else()
|
||||
set(IS_SUBPROJECT FALSE)
|
||||
endif()
|
||||
|
||||
message("IS_SUBPROJECT: ${IS_SUBPROJECT}")
|
||||
onion_module_prologue(C_STANDARD 11 CXX_STANDARD 20)
|
||||
|
||||
set(D_CWD "${PROJECT_SOURCE_DIR}")
|
||||
|
||||
include_directories(SYSTEM "${PS5_PAYLOAD_SDK}")
|
||||
include_directories(SYSTEM "${PS5_PAYLOAD_SDK}/include")
|
||||
|
||||
add_library(${PROJECT_NAME} STATIC
|
||||
source/settings.cpp
|
||||
)
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "${PROJECT_NAME}")
|
||||
|
||||
if(NOT "${CMAKE_CXX_COMPILER_ID}" MATCHES "[Cc]lang")
|
||||
message(FATAL_ERROR "${PROJECT_NAME} is meant to be built with clang! CompilerID: ${CMAKE_CXX_COMPILER_ID}")
|
||||
endif()
|
||||
|
||||
message("========== build: ${PROJECT_NAME} ==========")
|
||||
|
||||
set(CMAKE_C_FLAGS "--target=x86_64-sie-ps5 -march=znver2 -DPPR -DPS5 -DPS5_FW_VERSION=${V_FW} ")
|
||||
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")
|
||||
@@ -47,4 +26,3 @@ target_include_directories(${PROJECT_NAME}
|
||||
PRIVATE "${D_CWD}/../include"
|
||||
)
|
||||
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
@@ -3,29 +3,15 @@ cmake_minimum_required(VERSION 3.20)
|
||||
set(basename "onion_elfldr_server")
|
||||
project(${basename} C)
|
||||
|
||||
set(CMAKE_C_STANDARD 17)
|
||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
|
||||
set(D_CWD "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
if(DEFINED ONIONHEN_OUT_BIN)
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${ONIONHEN_OUT_BIN})
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${ONIONHEN_OUT_LIB})
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${ONIONHEN_OUT_LIB})
|
||||
else()
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${D_CWD}/../bin)
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${D_CWD}/bin)
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${D_CWD}/bin)
|
||||
endif()
|
||||
onion_output_dirs()
|
||||
|
||||
include_directories(SYSTEM "${PS5_PAYLOAD_SDK}")
|
||||
include_directories(SYSTEM "${PS5_PAYLOAD_SDK}/include")
|
||||
onion_module_prologue(C_STANDARD 17)
|
||||
|
||||
add_executable(${PROJECT_NAME} source/main.c)
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "onion_elfldr.elf")
|
||||
|
||||
message("========== build: ${PROJECT_NAME} ==========")
|
||||
|
||||
set(CMAKE_C_FLAGS "--target=x86_64-sie-ps5 -DPPR -DPS5 -DPS5_FW_VERSION=${V_FW} ")
|
||||
set(CMAKE_C_FLAGS "${ONION_PS5_TARGET_FLAGS} ")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_POSIX_SOURCE -D_POSIX_C_SOURCE=200112 -D__BSD_VISIBLE=1 -D__XSI_VISIBLE=500")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-keyword-macro -fPIC -fPIE -march=znver2 -Wall -Werror -fstack-protector-all -O2")
|
||||
|
||||
@@ -37,8 +23,4 @@ target_link_directories(${PROJECT_NAME} PUBLIC "${ONIONHEN_PS5_STUB_DIR}")
|
||||
add_dependencies(${PROJECT_NAME} onion_elfldr)
|
||||
target_link_libraries(${PROJECT_NAME} PUBLIC onion_elfldr)
|
||||
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
|
||||
COMMAND ${CMAKE_OBJCOPY} --remove-section .debug_info --remove-section .debug_abbrev --remove-section .debug_line --remove-section .debug_str --remove-section .debug_loc --remove-section .debug_aranges --remove-section .debug_ranges --remove-section .debug_pubnames --remove-section .debug_pubtypes --remove-section .debug_frame --strip-unneeded $<TARGET_FILE:${PROJECT_NAME}>
|
||||
COMMENT "Stripping debugging information from onion_elfldr.elf"
|
||||
)
|
||||
onion_strip_debug(${PROJECT_NAME})
|
||||
@@ -3,52 +3,15 @@ cmake_minimum_required (VERSION 3.20)
|
||||
set(basename "shellui")
|
||||
project(${basename} C CXX ASM)
|
||||
|
||||
# Language Standard Defaults
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
|
||||
set(CMAKE_CXX_EXTENSIONS ON)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
|
||||
# Check for sub-project as part of main build or external build
|
||||
if (NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
|
||||
set(IS_SUBPROJECT TRUE)
|
||||
else()
|
||||
set(IS_SUBPROJECT FALSE)
|
||||
endif()
|
||||
|
||||
message("IS_SUBPROJECT: ${IS_SUBPROJECT}")
|
||||
onion_module_prologue(C_STANDARD 11 CXX_STANDARD 20)
|
||||
|
||||
set(D_CWD "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
if(DEFINED ONIONHEN_OUT_BIN)
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${ONIONHEN_OUT_BIN})
|
||||
else()
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${D_CWD}/../bin)
|
||||
endif()
|
||||
if(DEFINED ONIONHEN_OUT_LIB)
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${ONIONHEN_OUT_LIB})
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${ONIONHEN_OUT_LIB})
|
||||
else()
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${D_CWD}/bin)
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${D_CWD}/bin)
|
||||
endif()
|
||||
onion_output_dirs()
|
||||
set(D_SRC ${D_CWD}/src)
|
||||
|
||||
# Headers
|
||||
include_directories (SYSTEM "${PS5_PAYLOAD_SDK}")
|
||||
include_directories (SYSTEM "${PS5_PAYLOAD_SDK}/include")
|
||||
|
||||
add_executable(${PROJECT_NAME})
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "${PROJECT_NAME}.elf")
|
||||
|
||||
# Must build with clang
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "[Cc]lang")
|
||||
set(IS_CLANG 1)
|
||||
else()
|
||||
message(FATAL_ERROR "${PROJECT_NAME} is meant to be built with clang! CompilerID: ${CMAKE_CXX_COMPILER_ID}")
|
||||
endif()
|
||||
|
||||
# Finalize main target sources
|
||||
target_compile_options(${PROJECT_NAME} PUBLIC
|
||||
$<$<COMPILE_LANGUAGE:C>:${C_DEFS} ${C_FLAGS}>
|
||||
@@ -65,8 +28,6 @@ if(NOT ONIONHEN_SHELLUI_HOMEUI_TOP_NAV_PATCH)
|
||||
message(STATUS "shellui: HomeUI top-nav patch DISABLED")
|
||||
endif()
|
||||
|
||||
message("========== build: ${PROJECT_NAME} ==========")
|
||||
|
||||
find_package(Python3 REQUIRED COMPONENTS Interpreter)
|
||||
|
||||
set(I18N_DIR "${D_CWD}/../i18n")
|
||||
@@ -88,11 +49,12 @@ add_custom_command(
|
||||
)
|
||||
add_custom_target(shellui_i18n_catalog DEPENDS "${I18N_CATALOG}")
|
||||
|
||||
file(GLOB SrcFiles ${D_SRC}/*.c ${D_SRC}/*.cpp ${D_SRC}/../include/*.h ${D_SRC}/../include/*.hpp ${D_SRC}/*.s ${ONIONHEN_THIRD_PARTY_DIR}/cjson/*.cpp ${ONIONHEN_THIRD_PARTY_DIR}/cjson/*.hpp ${ONIONHEN_COMMON_DIR}/backtrace.cpp)
|
||||
file(GLOB SrcFiles CONFIGURE_DEPENDS ${D_SRC}/*.c ${D_SRC}/*.cpp ${D_SRC}/../include/*.h ${D_SRC}/../include/*.hpp ${D_SRC}/*.s ${ONIONHEN_THIRD_PARTY_DIR}/cjson/*.cpp ${ONIONHEN_THIRD_PARTY_DIR}/cjson/*.hpp ${ONIONHEN_COMMON_DIR}/backtrace.cpp)
|
||||
|
||||
set(CMAKE_C_FLAGS "--target=x86_64-sie-ps5 -DPPR -DPS5 -DPS5_FW_VERSION=${V_FW} ")
|
||||
set(CMAKE_C_FLAGS "${ONION_PS5_TARGET_FLAGS} ")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-nested-anon-types -Wno-gnu-anonymous-struct -Wno-zero-length-array -Wno-keyword-macro -fPIC -fPIE -march=znver2 -Wall -Werror -fstack-protector-all")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -DDEBUG -gfull -gdwarf-2 -O0 -pedantic -pedantic-errors")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DDEBUG")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -gfull -gdwarf-2 -O0 -pedantic -pedantic-errors")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0 ")
|
||||
|
||||
target_sources(${PROJECT_NAME} PRIVATE ${SrcFiles})
|
||||
@@ -110,10 +72,6 @@ target_include_directories(${PROJECT_NAME} PRIVATE
|
||||
)
|
||||
target_link_directories (${PROJECT_NAME} PUBLIC "${ONIONHEN_PS5_STUB_DIR}")
|
||||
target_link_libraries (${PROJECT_NAME} PUBLIC onion_detour onion_proc onion_platform onion_ipc onion_settings onion_ready SceRegMgr SceSystemService SceUserService SceNetCtl SceAppInstUtil)
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
|
||||
# Add post-build command
|
||||
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
|
||||
COMMAND ${CMAKE_OBJCOPY} --remove-section .debug_info --remove-section .debug_abbrev --remove-section .debug_line --remove-section .debug_str --remove-section .debug_loc --remove-section .debug_aranges --remove-section .debug_ranges --remove-section .debug_pubnames --remove-section .debug_pubtypes --remove-section .debug_frame --strip-unneeded $<TARGET_FILE:${PROJECT_NAME}>
|
||||
COMMENT "Stripping debugging information from ${PROJECT_NAME}.elf"
|
||||
)
|
||||
onion_strip_debug(${PROJECT_NAME})
|
||||
@@ -3,51 +3,16 @@ cmake_minimum_required (VERSION 3.20)
|
||||
set(basename "unpacker")
|
||||
project(${basename} C ASM)
|
||||
|
||||
# Language Standard Defaults
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
|
||||
set(CMAKE_CXX_EXTENSIONS ON)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
|
||||
# Check for sub-project as part of main build or external build
|
||||
if (NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
|
||||
set(IS_SUBPROJECT TRUE)
|
||||
else()
|
||||
set(IS_SUBPROJECT FALSE)
|
||||
endif()
|
||||
|
||||
message("IS_SUBPROJECT: ${IS_SUBPROJECT}")
|
||||
onion_module_prologue(C_STANDARD 11 CXX_STANDARD 20)
|
||||
|
||||
set(D_CWD "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
if(DEFINED ONIONHEN_OUT_BIN)
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${ONIONHEN_OUT_BIN})
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${ONIONHEN_OUT_LIB})
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${ONIONHEN_OUT_LIB})
|
||||
else()
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${D_CWD}/../bin)
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${D_CWD}/bin)
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${D_CWD}/bin)
|
||||
endif()
|
||||
onion_output_dirs()
|
||||
set(D_SRC ${D_CWD}/source)
|
||||
|
||||
# Headers
|
||||
include_directories (SYSTEM "${PS5_PAYLOAD_SDK}")
|
||||
include_directories (SYSTEM "${PS5_PAYLOAD_SDK}/include")
|
||||
|
||||
|
||||
set(PROJECT_NAME OnionHEN)
|
||||
add_executable(${PROJECT_NAME})
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "${PROJECT_NAME}.elf")
|
||||
|
||||
# Must build with clang
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "[Cc]lang")
|
||||
set(IS_CLANG 1)
|
||||
else()
|
||||
message(FATAL_ERROR "${PROJECT_NAME} is meant to be built with clang! CompilerID: ${CMAKE_CXX_COMPILER_ID}")
|
||||
endif()
|
||||
|
||||
# Finalize main target sources
|
||||
target_compile_options(${PROJECT_NAME} PUBLIC
|
||||
$<$<COMPILE_LANGUAGE:C>:${C_DEFS} ${C_FLAGS}>
|
||||
@@ -55,10 +20,6 @@ target_compile_options(${PROJECT_NAME} PUBLIC
|
||||
$<$<COMPILE_LANGUAGE:ASM>:${ASM_FLAGS}>
|
||||
)
|
||||
|
||||
message("========== build: ${PROJECT_NAME} ==========")
|
||||
|
||||
|
||||
|
||||
set(LZMA_ROOT "${ONIONHEN_THIRD_PARTY_DIR}/7zip_sdk/C")
|
||||
set(LZMA_LIB ${LZMA_ROOT}/LzmaLib.c ${LZMA_ROOT}/Alloc.c
|
||||
${LZMA_ROOT}/LzmaEnc.c
|
||||
@@ -72,9 +33,10 @@ set(LZMA_LIB ${LZMA_ROOT}/LzmaLib.c ${LZMA_ROOT}/Alloc.c
|
||||
# main.c only — initial bootstrap is sent to external elfldr 9021.
|
||||
set(SrcFiles ${D_SRC}/main.c ${LZMA_LIB})
|
||||
|
||||
set(CMAKE_C_FLAGS "--target=x86_64-sie-ps5 -DPPR -DPS5 -DPS5_FW_VERSION=${V_FW} ")
|
||||
set(CMAKE_C_FLAGS "${ONION_PS5_TARGET_FLAGS} ")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-keyword-macro -fPIC -fPIE -march=znver2 -Wall -Werror -fstack-protector-all")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -DDEBUG -O0")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DDEBUG")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -O0")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0")
|
||||
|
||||
target_sources(${PROJECT_NAME} PRIVATE ${SrcFiles})
|
||||
@@ -91,11 +53,7 @@ target_compile_definitions(${PROJECT_NAME} PRIVATE
|
||||
ONIONHEN_BOOTSTRAPPER_LZMA="${ONIONHEN_OUT_BIN}/bootstrapper.elf.lzma"
|
||||
ONIONHEN_BOOTSTRAPPER_SIZE="${ONIONHEN_OUT_BIN}/bootstrapper.elf.lzma.size"
|
||||
)
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
add_dependencies(${PROJECT_NAME} bootstrapper)
|
||||
|
||||
# Add post-build command
|
||||
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
|
||||
COMMAND ${CMAKE_OBJCOPY} --remove-section .debug_info --remove-section .debug_abbrev --remove-section .debug_line --remove-section .debug_str --remove-section .debug_loc --remove-section .debug_aranges --remove-section .debug_ranges --remove-section .debug_pubnames --remove-section .debug_pubtypes --remove-section .debug_frame --strip-unneeded $<TARGET_FILE:${PROJECT_NAME}>
|
||||
COMMENT "Stripping debugging information from ${PROJECT_NAME}.elf"
|
||||
)
|
||||
onion_strip_debug(${PROJECT_NAME})
|
||||
@@ -4,54 +4,22 @@ set(basename "util")
|
||||
|
||||
project(${basename} C CXX ASM)
|
||||
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
set(CMAKE_C_STANDARD_REQUIRED ON)
|
||||
|
||||
set(CMAKE_CXX_EXTENSIONS ON)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
|
||||
if (NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
|
||||
set(IS_SUBPROJECT TRUE)
|
||||
else()
|
||||
set(IS_SUBPROJECT FALSE)
|
||||
endif()
|
||||
|
||||
message("IS_SUBPROJECT: ${IS_SUBPROJECT}")
|
||||
onion_module_prologue(C_STANDARD 11 CXX_STANDARD 20)
|
||||
|
||||
set(D_CWD "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
if(DEFINED ONIONHEN_OUT_BIN)
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${ONIONHEN_OUT_BIN})
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${ONIONHEN_OUT_LIB})
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${ONIONHEN_OUT_LIB})
|
||||
else()
|
||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${D_CWD}/../bin)
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${D_CWD}/bin)
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${D_CWD}/bin)
|
||||
endif()
|
||||
onion_output_dirs()
|
||||
set(D_SRC ${D_CWD}/source)
|
||||
|
||||
include_directories (SYSTEM "${PS5_PAYLOAD_SDK}")
|
||||
include_directories (SYSTEM "${PS5_PAYLOAD_SDK}/include")
|
||||
|
||||
add_executable(${PROJECT_NAME})
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES OUTPUT_NAME "${PROJECT_NAME}.elf")
|
||||
|
||||
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "[Cc]lang")
|
||||
set(IS_CLANG 1)
|
||||
else()
|
||||
message(FATAL_ERROR "${PROJECT_NAME} is meant to be built with clang! CompilerID: ${CMAKE_CXX_COMPILER_ID}")
|
||||
endif()
|
||||
|
||||
target_compile_options(${PROJECT_NAME} PUBLIC
|
||||
$<$<COMPILE_LANGUAGE:C>:${C_DEFS} ${C_FLAGS}>
|
||||
$<$<COMPILE_LANGUAGE:CXX>:${CXX_DEFS} ${CXX_FLAGS}>
|
||||
$<$<COMPILE_LANGUAGE:ASM>:${ASM_FLAGS}>
|
||||
)
|
||||
|
||||
message("========== build: ${PROJECT_NAME} ==========")
|
||||
|
||||
file(GLOB SrcFiles
|
||||
file(GLOB SrcFiles CONFIGURE_DEPENDS
|
||||
${D_SRC}/*.c
|
||||
${D_SRC}/*.cpp
|
||||
${D_SRC}/cheats/*.c
|
||||
@@ -65,9 +33,10 @@ file(GLOB SrcFiles
|
||||
${ONIONHEN_COMMON_DIR}/backtrace.cpp
|
||||
)
|
||||
|
||||
set(CMAKE_C_FLAGS "--target=x86_64-sie-ps5 -DPPR -DPS5 -DPS5_FW_VERSION=${V_FW} ")
|
||||
set(CMAKE_C_FLAGS "${ONION_PS5_TARGET_FLAGS} ")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-keyword-macro -fPIC -fPIE -march=znver2 -Wall -Werror -fstack-protector-all -Wno-unused-const-variable -Wno-deprecated-declarations")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -DDEBUG -gfull -gdwarf-2 -O0 -pedantic -pedantic-errors")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DDEBUG")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -gfull -gdwarf-2 -O0 -pedantic -pedantic-errors")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0")
|
||||
|
||||
target_sources(${PROJECT_NAME} PRIVATE ${SrcFiles} "${ONIONHEN_COMMON_DIR}/elfldr_remote.c")
|
||||
@@ -114,13 +83,9 @@ set_source_files_properties(
|
||||
${ONIONHEN_THIRD_PARTY_DIR}/cheat_support/sha256.c
|
||||
PROPERTIES COMPILE_FLAGS "-Wno-error -Wno-unused-function -Wno-sign-compare -Wno-unused-parameter"
|
||||
)
|
||||
file(GLOB CHEAT_ENGINE_SRCS ${D_SRC}/cheats/*.c)
|
||||
file(GLOB CHEAT_ENGINE_SRCS CONFIGURE_DEPENDS ${D_SRC}/cheats/*.c)
|
||||
set_source_files_properties(${CHEAT_ENGINE_SRCS} PROPERTIES
|
||||
COMPILE_FLAGS "-Wno-error -Wno-unused-parameter -Wno-sign-compare"
|
||||
)
|
||||
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
|
||||
COMMAND ${CMAKE_OBJCOPY} --remove-section .debug_info --remove-section .debug_abbrev --remove-section .debug_line --remove-section .debug_str --remove-section .debug_loc --remove-section .debug_aranges --remove-section .debug_ranges --remove-section .debug_pubnames --remove-section .debug_pubtypes --remove-section .debug_frame --strip-unneeded $<TARGET_FILE:${PROJECT_NAME}>
|
||||
COMMENT "Stripping debugging information from ${PROJECT_NAME}.elf"
|
||||
)
|
||||
onion_strip_debug(${PROJECT_NAME})
|
||||
Reference in new issue
Block a user