diff --git a/cmake/SwitchTools_nx.cmake b/cmake/SwitchTools_nx.cmake index 030b20b..c98894f 100644 --- a/cmake/SwitchTools_nx.cmake +++ b/cmake/SwitchTools_nx.cmake @@ -123,11 +123,11 @@ function(add_nro_target target) endif () if (NOT APP_ICON) if (EXISTS ${target}.png) - set(APP_ICON ${target}.png) - elseif (EXISTS icon.png) - set(APP_ICON icon.png) + set(APP_ICON ${target}.jpg) + elseif (EXISTS icon.jpg) + set(APP_ICON icon.jpg) elseif (NX) - set(APP_ICON ${DEVKITPRO}/libnx/default_icon.png) + set(APP_ICON ${DEVKITPRO}/libnx/default_icon.jpg) else () message(FATAL_ERROR "No icon found ! Please use NO_SMDH or provide some icon.") endif () @@ -137,13 +137,14 @@ function(add_nro_target target) endif () if (CMAKE_RUNTIME_OUTPUT_DIRECTORY) add_custom_command(OUTPUT ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${target_we}.nro - COMMAND ${ELF2NRO} $ --icon=${APP_ICON} --nacp=${CMAKE_CURRENT_BINARY_DIR}/${target_we}.nacp ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${target_we}.nro + COMMAND ${ELF2NRO} $ ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/${target_we}.nro --icon=${APP_ICON} --nacp=${CMAKE_CURRENT_BINARY_DIR}/${target_we}.nacp DEPENDS ${target} ${CMAKE_CURRENT_BINARY_DIR}/${target_we}.nacp VERBATIM ) else () + message("${CMAKE_CURRENT_BINARY_DIR}/${target_we}.nacp") add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${target_we}.nro - COMMAND ${ELF2NRO} $ --icon=${APP_ICON} --nacp=${CMAKE_CURRENT_BINARY_DIR}/${target_we}.nacp ${CMAKE_CURRENT_BINARY_DIR}/${target_we}.nro + COMMAND ${ELF2NRO} $ ${CMAKE_CURRENT_BINARY_DIR}/${target_we}.nro --icon=${APP_ICON} --nacp=${CMAKE_CURRENT_BINARY_DIR}/${target_we}.nacp DEPENDS ${target} ${CMAKE_CURRENT_BINARY_DIR}/${target_we}.nacp VERBATIM ) diff --git a/libnx.cmake b/libnx.cmake index 1a7b688..e7d15d7 100644 --- a/libnx.cmake +++ b/libnx.cmake @@ -30,7 +30,7 @@ else() endif() set(PKG_CONFIG "${DEVKITPRO}/portlibs/bin/aarch64-none-elf-pkg-config" CACHE STRING "") -set(CPPFLAGS "-D__SWITCH__ -D__USE_LARGEFILE64=1 -D__USE_LARGEOFFSET64=1 -I${DEVKITPRO}/libnx/include -I${DEVKITPRO}/portlibs/switch/include") +set(CPPFLAGS "-D__SWITCH__ -I${DEVKITPRO}/libnx/include -I${DEVKITPRO}/portlibs/switch/include") set(CMAKE_C_FLAGS "${CPPFLAGS} -march=armv8-a -mtune=cortex-a57 -mtp=soft -fPIC -ffunction-sections" CACHE STRING "C flags") set(CMAKE_CXX_FLAGS "${CPPFLAGS} ${CMAKE_C_FLAGS} -fno-rtti -fno-exceptions -std=gnu++11" CACHE STRING "C++ flags") @@ -45,7 +45,8 @@ set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) #set(CMAKE_STATIC_LINKER_FLAGS_INIT "-march=armv8-a -mtune=cortex-a57 -mtp=soft -L${DEVKITPRO}/libnx/lib -L${DEVKITPRO}/portlibs/switch/lib") -set(CMAKE_EXE_LINKER_FLAGS_INIT "-specs=${DEVKITPRO}/libnx/switch.specs -march=armv8-a -mtune=cortex-a57 -mtp=soft -fPIE -L${DEVKITPRO}/libnx/lib -L${DEVKITPRO}/portlibs/switch/lib") +set(CMAKE_EXE_LINKER_FLAGS "-specs=${DEVKITPRO}/libnx/switch.specs -march=armv8-a -mtune=cortex-a57 -mtp=soft -fPIE -L${DEVKITPRO}/libnx/lib -L${DEVKITPRO}/portlibs/switch/lib") + set(BUILD_SHARED_LIBS OFF CACHE INTERNAL "Shared libs not available") set(CMAKE_INSTALL_PREFIX ${DEVKITPRO}/portlibs/switch) diff --git a/src/athena/FileWriterNix.cpp b/src/athena/FileWriterNix.cpp index 072dbc5..afccad5 100644 --- a/src/athena/FileWriterNix.cpp +++ b/src/athena/FileWriterNix.cpp @@ -7,6 +7,8 @@ #include "osx_largefilewrapper.h" #endif +#include + namespace athena::io { FileWriter::FileWriter(std::string_view filename, bool overwrite, bool globalErr) @@ -82,6 +84,10 @@ void FileWriter::close() m_fileHandle = NULL; std::string tmpFilename = m_filename + '~'; +#ifdef __SWITCH__ + /* Due to Horizon not being a fully POSIX compatible OS, we need to make sure the file *does not* exist before attempting to rename */ + unlink(m_filename.c_str()); +#endif rename(tmpFilename.c_str(), m_filename.c_str()); }