summaryrefslogtreecommitdiff
path: root/cmake/nx
diff options
context:
space:
mode:
authorclaude-bot <[email protected]>2026-07-13 12:40:03 +0000
committerclaude-bot <[email protected]>2026-07-13 12:40:03 +0000
commit847962910f0bff071f3bf07c9abb87764fb6cac3 (patch)
treeddcd429e134c7fd5f72ddc97ced175de8d66fcd0 /cmake/nx
downloadlibrw-master.tar.gz
librw-master.zip
Import aap/librw @ masterHEADmaster
Snapshot for re3/reVC vendoring, per @lzcnt. Source: https://github.com/aap/librw (master).
Diffstat (limited to 'cmake/nx')
-rw-r--r--cmake/nx/NXFunctions.cmake37
1 files changed, 37 insertions, 0 deletions
diff --git a/cmake/nx/NXFunctions.cmake b/cmake/nx/NXFunctions.cmake
new file mode 100644
index 0000000..bab3360
--- /dev/null
+++ b/cmake/nx/NXFunctions.cmake
@@ -0,0 +1,37 @@
+if(NOT COMMAND nx_generate_nacp)
+ message(FATAL_ERROR "The `nx_generate_nacp` cmake command is not available. Please use an appropriate Nintendo Switch toolchain.")
+endif()
+
+if(NOT COMMAND nx_create_nro)
+ message(FATAL_ERROR "The `nx_create_nro` cmake command is not available. Please use an appropriate Nintendo Switch toolchain.")
+endif()
+
+set(CMAKE_EXECUTABLE_SUFFIX ".elf")
+
+function(librw_platform_target TARGET)
+ cmake_parse_arguments(LPT "INSTALL" "" "" ${ARGN})
+
+ get_target_property(TARGET_TYPE "${TARGET}" TYPE)
+ if(TARGET_TYPE STREQUAL "EXECUTABLE")
+ nx_generate_nacp(${TARGET}.nacp
+ NAME "${TARGET}"
+ AUTHOR "${librw_AUTHOR}"
+ VERSION "${librw_VERSION}"
+ )
+
+ nx_create_nro(${TARGET}
+ NACP ${TARGET}.nacp
+ )
+
+ if(LIBRW_INSTALL AND LPT_INSTALL)
+ get_target_property(TARGET_OUTPUT_NAME ${TARGET} OUTPUT_NAME)
+ if(NOT TARGET_OUTPUT_NAME)
+ set(TARGET_OUTPUT_NAME "${TARGET}")
+ endif()
+
+ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${TARGET_OUTPUT_NAME}.nro"
+ DESTINATION "${CMAKE_INSTALL_BINDIR}"
+ )
+ endif()
+ endif()
+endfunction()