diff --git a/sphaira/CMakeLists.txt b/sphaira/CMakeLists.txt index 602b4d5..c90369b 100644 --- a/sphaira/CMakeLists.txt +++ b/sphaira/CMakeLists.txt @@ -147,6 +147,21 @@ set(YYJSON_DISABLE_NON_STANDARD ON) set(YYJSON_DISABLE_UTF8_VALIDATION ON) set(YYJSON_DISABLE_UNALIGNED_MEMORY_ACCESS OFF) +FetchContent_MakeAvailable( + # ftpsrv + libhaze + libpulsar + nanovg + stb + minIni + yyjson +) + +FetchContent_GetProperties(ftpsrv) +if (NOT ftpsrv_POPULATED) + FetchContent_Populate(ftpsrv) +endif() + set(FTPSRV_LIB_BUILD TRUE) set(FTPSRV_LIB_SOCK_UNISTD TRUE) set(FTPSRV_LIB_VFS_CUSTOM ${ftpsrv_SOURCE_DIR}/src/platform/nx/vfs_nx.h) @@ -154,6 +169,19 @@ set(FTPSRV_LIB_PATH_SIZE 0x301) set(FTPSRV_LIB_SESSIONS 32) set(FTPSRV_LIB_BUF_SIZE 1024*64) +# workaround until a64 container has latest libnx release. +if (NOT DEFINED USE_VFS_GC) + set(USE_VFS_GC TRUE) +endif() + +set(FTPSRV_LIB_CUSTOM_DEFINES + USE_VFS_SAVE=$ + USE_VFS_STORAGE=$ + USE_VFS_GC=$ +) + +add_subdirectory(${ftpsrv_SOURCE_DIR} binary_dir) + add_library(ftpsrv_helper ${ftpsrv_SOURCE_DIR}/src/platform/nx/vfs_nx.c ${ftpsrv_SOURCE_DIR}/src/platform/nx/vfs/vfs_nx_none.c @@ -164,10 +192,8 @@ add_library(ftpsrv_helper ${ftpsrv_SOURCE_DIR}/src/platform/nx/utils.c ) -# workaround until a64 container has latest libnx release. -if (NOT DEFINED USE_VFS_GC) - set(USE_VFS_GC TRUE) -endif() +target_link_libraries(ftpsrv_helper PUBLIC ftpsrv) +target_include_directories(ftpsrv_helper PUBLIC ${ftpsrv_SOURCE_DIR}/src/platform) if (USE_VFS_GC) target_sources(ftpsrv_helper PRIVATE @@ -175,25 +201,6 @@ if (USE_VFS_GC) ) endif() -set(FTPSRV_LIB_CUSTOM_DEFINES - USE_VFS_SAVE=$ - USE_VFS_STORAGE=$ - USE_VFS_GC=$ -) - -target_link_libraries(ftpsrv_helper PUBLIC ftpsrv) -target_include_directories(ftpsrv_helper PUBLIC ${ftpsrv_SOURCE_DIR}/src/platform) - -FetchContent_MakeAvailable( - ftpsrv - libhaze - libpulsar - nanovg - stb - minIni - yyjson -) - # todo: upstream cmake add_library(libhaze ${libhaze_SOURCE_DIR}/source/async_usb_server.cpp