diff options
| author | coco875 <59367621+coco875@users.noreply.github.com> | 2026-02-25 03:23:44 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-02-24 19:23:44 -0700 |
| commit | 1732542a6a200a21a9112a75820517a754d9514a (patch) | |
| tree | 374c2250759bd9e4300ab9f562dcff0c1462d484 | |
| parent | a33c66ee31b72035c7712ada8f91acb03361467d (diff) | |
Name (#655)1.0.0
* Update CMakeLists.txt
* Update CMakeLists.txt
* Update CMakeLists.txt
* Update .gitignore
* Update CMakeLists.txt
* Update main.yml
| -rw-r--r-- | .github/workflows/main.yml | 2 | ||||
| -rw-r--r-- | .gitignore | 2 | ||||
| -rw-r--r-- | CMakeLists.txt | 363 |
3 files changed, 185 insertions, 182 deletions
diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c57009a83..bea0b4e06 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -447,7 +447,7 @@ jobs: mkdir -p spaghetti-${{ matrix.config }} wget -O gamecontrollerdb.txt https://raw.githubusercontent.com/mdqinc/SDL_GameControllerDB/master/gamecontrollerdb.txt mv gamecontrollerdb.txt spaghetti-${{ matrix.config }}/ - cp build/*.appimage spaghetti-${{ matrix.config }}/ 2>/dev/null || true + cp build/*.appimage spaghetti-${{ matrix.config }}/spaghetti.appimage 2>/dev/null || true - name: Publish packaged artifacts uses: actions/upload-artifact@v4 diff --git a/.gitignore b/.gitignore index b65d51fef..1b21a6b7b 100644 --- a/.gitignore +++ b/.gitignore @@ -129,3 +129,5 @@ build*/ .DS_Store .cache/ _packages/ +out/ + diff --git a/CMakeLists.txt b/CMakeLists.txt index 277d34612..9b4be14c9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,7 +1,6 @@ cmake_minimum_required(VERSION 3.16.0 FATAL_ERROR) # Set the project version and language -project(Spaghettify VERSION 0.1.0 LANGUAGES C CXX ASM) include(FetchContent) set(NATO_PHONETIC_ALPHABET @@ -53,10 +52,12 @@ math(EXPR PATCH_INDEX "${PROJECT_VERSION_PATCH}") # Use the patch number to select the correct word list(GET NATO_PHONETIC_ALPHABET ${PATCH_INDEX} PROJECT_PATCH_WORD) -set(PROJECT_BUILD_NAME "Alfredo ${PROJECT_PATCH_WORD}" CACHE STRING "" FORCE) +set(PROJECT_BUILD_NAME "Bolognese ${PROJECT_PATCH_WORD}" CACHE STRING "" FORCE) set(PROJECT_TEAM "github.com/harbourmasters" CACHE STRING "" FORCE) -message("Spaghetti Kart version: ${PROJECT_VERSION} Alfredo ${PROJECT_PATCH_WORD}") +project(Spaghettify VERSION ${PROJECT_VERSION_PATCH} LANGUAGES C CXX ASM) + +message("Spaghetti Kart version: ${PROJECT_VERSION} ${PROJECT_PATCH_WORD}") if(APPLE) enable_language(OBJCXX) @@ -84,52 +85,52 @@ add_compile_definitions(YAML_CPP_STATIC_DEFINE) include(cmake/lus-cvars.cmake) if (WIN32) -include(cmake/automate-vcpkg.cmake) -set(VCPKG_TRIPLET x64-windows-static) -set(VCPKG_TARGET_TRIPLET x64-windows-static) -vcpkg_bootstrap() -vcpkg_install_packages() - -set_property(DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT ${PROJECT_NAME}) -set_property(DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY VS_DEBUGGER_WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}) + include(cmake/automate-vcpkg.cmake) + set(VCPKG_TRIPLET x64-windows-static) + set(VCPKG_TARGET_TRIPLET x64-windows-static) + vcpkg_bootstrap() + vcpkg_install_packages() + + set_property(DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT ${PROJECT_NAME}) + set_property(DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY VS_DEBUGGER_WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}) endif() if (MSVC) -set(CPP "${CMAKE_C_COMPILER}" "/EP") + set(CPP "${CMAKE_C_COMPILER}" "/EP") else() -set(CPP "${CMAKE_C_COMPILER}" "-E" "-P" "-Wno-trigraphs" "-x" "c") + set(CPP "${CMAKE_C_COMPILER}" "-E" "-P" "-Wno-trigraphs" "-x" "c") endif() if(IOS) -set(PLATFORM "OS64") -include(cmake/ios.toolchain.cmake) -add_compile_definitions( + set(PLATFORM "OS64") + include(cmake/ios.toolchain.cmake) + add_compile_definitions( PLATFORM_IOS=1 ) -set(CMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM "YOUR_TEAM_ID") -set(PROJECT_ID "dev.net64.game") + set(CMAKE_XCODE_ATTRIBUTE_DEVELOPMENT_TEAM "YOUR_TEAM_ID") + set(PROJECT_ID "dev.net64.game") endif() ################################################################################ # Set target arch type if empty. Visual studio solution generator provides it. ################################################################################ if (CMAKE_SYSTEM_NAME STREQUAL "Windows") - if(NOT CMAKE_VS_PLATFORM_NAME) - set(CMAKE_VS_PLATFORM_NAME "x64") - endif() - message("${CMAKE_VS_PLATFORM_NAME} architecture in use") + if(NOT CMAKE_VS_PLATFORM_NAME) + set(CMAKE_VS_PLATFORM_NAME "x64") + endif() + message("${CMAKE_VS_PLATFORM_NAME} architecture in use") - if(NOT ("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64" + if(NOT ("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64" OR "${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32")) - message(FATAL_ERROR "${CMAKE_VS_PLATFORM_NAME} arch is not supported!") - endif() + message(FATAL_ERROR "${CMAKE_VS_PLATFORM_NAME} arch is not supported!") + endif() endif() ################################################################################ # Compiler specific configuration types ################################################################################ if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU|Clang|AppleClang") - set(COMMON_FLAGS "-Wall -Wextra -Wno-error \ + set(COMMON_FLAGS "-Wall -Wextra -Wno-error \ -Wno-return-type \ -Wno-unused-parameter \ -Wno-unused-function \ @@ -143,40 +144,40 @@ if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU|Clang|AppleClang") -pipe" ) - set(COMMON_C_FLAGS "${COMMON_FLAGS} -Wno-int-conversion -Werror-implicit-function-declaration -Wno-incompatible-pointer-types") - set(COMMON_CXX_FLAGS "${COMMON_FLAGS} -Wno-c++11-narrowing -Wno-deprecated-enum-enum-conversion -fpermissive -fomit-frame-pointer") + set(COMMON_C_FLAGS "${COMMON_FLAGS} -Wno-int-conversion -Werror-implicit-function-declaration -Wno-incompatible-pointer-types") + set(COMMON_CXX_FLAGS "${COMMON_FLAGS} -Wno-c++11-narrowing -Wno-deprecated-enum-enum-conversion -fpermissive -fomit-frame-pointer") elseif (MSVC) - set(COMMON_FLAGS "/fp:fast") - set(COMMON_C_FLAGS "${COMMON_FLAGS}") - set(COMMON_CXX_FLAGS "${COMMON_FLAGS}") + set(COMMON_FLAGS "/fp:fast") + set(COMMON_C_FLAGS "${COMMON_FLAGS}") + set(COMMON_CXX_FLAGS "${COMMON_FLAGS}") else() - set(COMMON_C_FLAGS "") - set(COMMON_CXX_FLAGS "") + set(COMMON_C_FLAGS "") + set(COMMON_CXX_FLAGS "") endif() # fix LTO breaks debug information on Apple/Ninja https://gitlab.kitware.com/cmake/cmake/-/issues/25202 if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "AppleClang" AND "${CMAKE_BUILD_TYPE}" STREQUAL "Debug") - add_link_options("-fno-lto") - add_compile_options("-fno-lto") + add_link_options("-fno-lto") + add_compile_options("-fno-lto") endif() ################################################################################ # Global configuration types ################################################################################ if (MSVC) - set(CMAKE_C_FLAGS_DEBUG "/Od /Zi /DNDEBUG ${COMMON_C_FLAGS}") - set(CMAKE_CXX_FLAGS_DEBUG "/Od /Zi /DNDEBUG ${COMMON_CXX_FLAGS}") - set(CMAKE_C_FLAGS_RELEASE "/O2 /DNDEBUG ${COMMON_C_FLAGS}") - set(CMAKE_CXX_FLAGS_RELEASE "/O2 /DNDEBUG ${COMMON_CXX_FLAGS}") + set(CMAKE_C_FLAGS_DEBUG "/Od /Zi /DNDEBUG ${COMMON_C_FLAGS}") + set(CMAKE_CXX_FLAGS_DEBUG "/Od /Zi /DNDEBUG ${COMMON_CXX_FLAGS}") + set(CMAKE_C_FLAGS_RELEASE "/O2 /DNDEBUG ${COMMON_C_FLAGS}") + set(CMAKE_CXX_FLAGS_RELEASE "/O2 /DNDEBUG ${COMMON_CXX_FLAGS}") else() - set(CMAKE_C_FLAGS_DEBUG "-g -DNDEBUG ${COMMON_C_FLAGS}") - set(CMAKE_CXX_FLAGS_DEBUG "-g -DNDEBUG ${COMMON_CXX_FLAGS}") - set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG ${COMMON_C_FLAGS}") - set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG ${COMMON_CXX_FLAGS}") - set(CMAKE_C_FLAGS_MINSIZEREL "-Os -DNDEBUG ${COMMON_C_FLAGS}") - set(CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG ${COMMON_CXX_FLAGS}") - set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG ${COMMON_C_FLAGS}") - set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG ${COMMON_CXX_FLAGS}") + set(CMAKE_C_FLAGS_DEBUG "-g -DNDEBUG ${COMMON_C_FLAGS}") + set(CMAKE_CXX_FLAGS_DEBUG "-g -DNDEBUG ${COMMON_CXX_FLAGS}") + set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG ${COMMON_C_FLAGS}") + set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG ${COMMON_CXX_FLAGS}") + set(CMAKE_C_FLAGS_MINSIZEREL "-Os -DNDEBUG ${COMMON_C_FLAGS}") + set(CMAKE_CXX_FLAGS_MINSIZEREL "-Os -DNDEBUG ${COMMON_CXX_FLAGS}") + set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG ${COMMON_C_FLAGS}") + set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g -DNDEBUG ${COMMON_CXX_FLAGS}") endif() # Set game compilation version @@ -197,17 +198,17 @@ add_compile_definitions( CIMGUI_DEFINE_ENUMS_AND_STRUCTS NON_MATCHING=1 NON_EQUIVALENT=1 - AVOID_UB=1 - SPAGHETTI_VERSION="${PROJECT_VERSION}" + AVOID_UB=1 + SPAGHETTI_VERSION="${PROJECT_VERSION}" ) # Find necessary libraries if (UNIX AND NOT APPLE) -find_package(OpenGL REQUIRED) + find_package(OpenGL REQUIRED) endif() if (CMAKE_SYSTEM_NAME STREQUAL "Windows") - configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/properties.h.in ${CMAKE_CURRENT_SOURCE_DIR}/properties.h @ONLY) + configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/properties.h.in ${CMAKE_CURRENT_SOURCE_DIR}/properties.h @ONLY) endif() # Include directories @@ -299,17 +300,17 @@ list(FILTER ALL_FILES EXCLUDE REGEX ".*.inc.c") list(FILTER ALL_FILES EXCLUDE REGEX "./src/debug/crash_screen_enhancement.c") if (CMAKE_SYSTEM_NAME STREQUAL "iOS") - set(IOS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libultraship/ios) + set(IOS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libultraship/ios) - set(STORYBOARD_FILE ${IOS_DIR}/Launch.storyboard) - set(IMAGE_FILES ${IOS_DIR}/PoweredBy.png) - set(ICON_FILES ${IOS_DIR}/Icon.png) + set(STORYBOARD_FILE ${IOS_DIR}/Launch.storyboard) + set(IMAGE_FILES ${IOS_DIR}/PoweredBy.png) + set(ICON_FILES ${IOS_DIR}/Icon.png) - list(APPEND ALL_FILES ${STORYBOARD_FILE} ${IMAGE_FILES} ${ICON_FILES}) + list(APPEND ALL_FILES ${STORYBOARD_FILE} ${IMAGE_FILES} ${ICON_FILES}) - add_executable(${PROJECT_NAME} ${ALL_FILES}) - set_xcode_property(${PROJECT_NAME} PRODUCT_BUNDLE_IDENTIFIER ${PROJECT_ID} All) - set_target_properties( + add_executable(${PROJECT_NAME} ${ALL_FILES}) + set_xcode_property(${PROJECT_NAME} PRODUCT_BUNDLE_IDENTIFIER ${PROJECT_ID} All) + set_target_properties( ${PROJECT_NAME} PROPERTIES MACOSX_BUNDLE TRUE @@ -317,7 +318,7 @@ if (CMAKE_SYSTEM_NAME STREQUAL "iOS") RESOURCE "${IMAGE_FILES};${STORYBOARD_FILE};${ICON_FILES}" ) else() - add_executable(${PROJECT_NAME} ${ALL_FILES}) + add_executable(${PROJECT_NAME} ${ALL_FILES}) endif() @@ -326,29 +327,29 @@ endif() ################################################################################ if (MSVC) if (CMAKE_SYSTEM_NAME STREQUAL "Windows") - get_property(MSVC_RUNTIME_LIBRARY_DEFAULT TARGET ${PROJECT_NAME} PROPERTY MSVC_RUNTIME_LIBRARY) - if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64") - string(CONCAT "MSVC_RUNTIME_LIBRARY_STR" - $<$<CONFIG:Debug>: + get_property(MSVC_RUNTIME_LIBRARY_DEFAULT TARGET ${PROJECT_NAME} PROPERTY MSVC_RUNTIME_LIBRARY) + if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64") + string(CONCAT "MSVC_RUNTIME_LIBRARY_STR" + $<$<CONFIG:Debug>: MultiThreadedDebug - > - $<$<CONFIG:Release>: + > + $<$<CONFIG:Release>: MultiThreaded - > - $<$<NOT:$<OR:$<CONFIG:Debug>,$<CONFIG:Release>>>:${MSVC_RUNTIME_LIBRARY_DEFAULT}> - ) - elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32") - string(CONCAT "MSVC_RUNTIME_LIBRARY_STR" - $<$<CONFIG:Debug>: - MultiThreadedDebug - > - $<$<CONFIG:Release>: - MultiThreaded - > - $<$<NOT:$<OR:$<CONFIG:Debug>,$<CONFIG:Release>>>:${MSVC_RUNTIME_LIBRARY_DEFAULT}> - ) - endif() - set_target_properties(${PROJECT_NAME} PROPERTIES MSVC_RUNTIME_LIBRARY ${MSVC_RUNTIME_LIBRARY_STR}) + > + $<$<NOT:$<OR:$<CONFIG:Debug>,$<CONFIG:Release>>>:${MSVC_RUNTIME_LIBRARY_DEFAULT}> + ) + elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32") + string(CONCAT "MSVC_RUNTIME_LIBRARY_STR" + $<$<CONFIG:Debug>: + MultiThreadedDebug + > + $<$<CONFIG:Release>: + MultiThreaded + > + $<$<NOT:$<OR:$<CONFIG:Debug>,$<CONFIG:Release>>>:${MSVC_RUNTIME_LIBRARY_DEFAULT}> + ) + endif() + set_target_properties(${PROJECT_NAME} PROPERTIES MSVC_RUNTIME_LIBRARY ${MSVC_RUNTIME_LIBRARY_STR}) endif() endif() @@ -368,7 +369,7 @@ include_directories(${SEMVER_DIR}) FetchContent_Declare( dr_libs GIT_REPOSITORY https://github.com/mackron/dr_libs.git - GIT_TAG da35f9d6c7374a95353fd1df1d394d44ab66cf01 + GIT_TAG da35f9d6c7374a95353fd1df1d394d44ab66cf01 ) FetchContent_MakeAvailable(dr_libs) @@ -395,7 +396,7 @@ set(ENABLE_EXP_AUTO_CONFIGURE_CONTROLLERS ON CACHE BOOL "") add_compile_definitions(EXCLUDE_MPQ_SUPPORT) if(CMAKE_SYSTEM_NAME STREQUAL "NintendoSwitch") - find_package(SDL2) + find_package(SDL2) endif() include_directories( @@ -412,7 +413,7 @@ add_dependencies(${PROJECT_NAME} libultraship) target_link_libraries(${PROJECT_NAME} PRIVATE libultraship) if (CMAKE_SYSTEM_NAME STREQUAL "Windows") - target_compile_definitions(${PROJECT_NAME} PRIVATE + target_compile_definitions(${PROJECT_NAME} PRIVATE "$<$<CONFIG:Debug>:" "_DEBUG;" "_CRT_SECURE_NO_WARNINGS;" @@ -428,89 +429,89 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Windows") "_CRT_SECURE_NO_WARNINGS;" "_SILENCE_ALL_MS_EXT_DEPRECATION_WARNINGS;" ) - add_compile_definitions(STORMLIB_NO_AUTO_LINK) - set(STORMLIB_NO_AUTO_LINK ON) + add_compile_definitions(STORMLIB_NO_AUTO_LINK) + set(STORMLIB_NO_AUTO_LINK ON) elseif (CMAKE_SYSTEM_NAME STREQUAL "CafeOS") - target_compile_definitions(${PROJECT_NAME} PRIVATE - "$<$<CONFIG:Debug>:" - "_DEBUG" - ">" - "$<$<CONFIG:Release>:" - "NDEBUG" - ">" + target_compile_definitions(${PROJECT_NAME} PRIVATE + "$<$<CONFIG:Debug>:" + "_DEBUG" + ">" + "$<$<CONFIG:Release>:" + "NDEBUG" + ">" "SPDLOG_ACTIVE_LEVEL=3;" - "SPDLOG_NO_THREAD_ID;" + "SPDLOG_NO_THREAD_ID;" "SPDLOG_NO_TLS;" - "STBI_NO_THREAD_LOCALS;" - ) + "STBI_NO_THREAD_LOCALS;" + ) elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU|Clang|AppleClang") - target_compile_definitions(${PROJECT_NAME} PRIVATE - "$<$<CONFIG:Debug>:" - "_DEBUG" - ">" - "$<$<CONFIG:Release>:" - "NDEBUG" - ">" + target_compile_definitions(${PROJECT_NAME} PRIVATE + "$<$<CONFIG:Debug>:" + "_DEBUG" + ">" + "$<$<CONFIG:Release>:" + "NDEBUG" + ">" "$<$<BOOL:${BUILD_CROWD_CONTROL}>:ENABLE_CROWD_CONTROL>" - "SPDLOG_ACTIVE_LEVEL=0;" - "_CONSOLE;" - "_CRT_SECURE_NO_WARNINGS;" - "UNICODE;" - "_UNICODE" - ) + "SPDLOG_ACTIVE_LEVEL=0;" + "_CONSOLE;" + "_CRT_SECURE_NO_WARNINGS;" + "UNICODE;" + "_UNICODE" + ) endif() if (CMAKE_SYSTEM_NAME STREQUAL "Windows") - find_package(Ogg CONFIG REQUIRED) - link_libraries(Ogg::ogg) + find_package(Ogg CONFIG REQUIRED) + link_libraries(Ogg::ogg) - find_package(Vorbis CONFIG REQUIRED) - link_libraries(Vorbis::vorbisfile) - set(ADDITIONAL_LIBRARY_DEPENDENCIES + find_package(Vorbis CONFIG REQUIRED) + link_libraries(Vorbis::vorbisfile) + set(ADDITIONAL_LIBRARY_DEPENDENCIES "Ogg::ogg" "Vorbis::vorbis" "Vorbis::vorbisenc" "Vorbis::vorbisfile" ) elseif(CMAKE_SYSTEM_NAME STREQUAL "NintendoSwitch") - set(ADDITIONAL_LIBRARY_DEPENDENCIES + set(ADDITIONAL_LIBRARY_DEPENDENCIES -lglad SDL2::SDL2 ) elseif(CMAKE_SYSTEM_NAME STREQUAL "CafeOS") - set(ADDITIONAL_LIBRARY_DEPENDENCIES + set(ADDITIONAL_LIBRARY_DEPENDENCIES "$<$<CONFIG:Debug>:-Wl,--wrap=abort>" ) - target_include_directories(${PROJECT_NAME} PRIVATE + target_include_directories(${PROJECT_NAME} PRIVATE ${DEVKITPRO}/portlibs/wiiu/include/ ) else() - find_package(Ogg REQUIRED) - find_package(Vorbis REQUIRED) - set(ADDITIONAL_LIBRARY_DEPENDENCIES + find_package(Ogg REQUIRED) + find_package(Vorbis REQUIRED) + set(ADDITIONAL_LIBRARY_DEPENDENCIES "Ogg::ogg" "Vorbis::vorbis" "Vorbis::vorbisenc" "Vorbis::vorbisfile" - ) + ) endif() if(USE_NETWORKING) - if(MSVC) - vcpkg_install_packages(sdl2-net) - endif() - include_directories(${SDL2_NET_INCLUDE_DIRS}) - target_compile_definitions(${PROJECT_NAME} PRIVATE USE_NETWORKING) - if(CMAKE_SYSTEM_NAME STREQUAL "NintendoSwitch") - target_link_libraries(${PROJECT_NAME} PRIVATE SDL2_net) - elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") - find_package(SDL2_net REQUIRED) - target_link_libraries(${PROJECT_NAME} PRIVATE $<IF:$<TARGET_EXISTS:SDL2_net::SDL2_net>,SDL2_net::SDL2_net,SDL2_net::SDL2_net-static>) - else() - find_package(SDL2_net REQUIRED) - target_link_libraries(${PROJECT_NAME} PRIVATE SDL2_net::SDL2_net-static) - endif() + if(MSVC) + vcpkg_install_packages(sdl2-net) + endif() + include_directories(${SDL2_NET_INCLUDE_DIRS}) + target_compile_definitions(${PROJECT_NAME} PRIVATE USE_NETWORKING) + if(CMAKE_SYSTEM_NAME STREQUAL "NintendoSwitch") + target_link_libraries(${PROJECT_NAME} PRIVATE SDL2_net) + elseif(CMAKE_SYSTEM_NAME STREQUAL "Linux") + find_package(SDL2_net REQUIRED) + target_link_libraries(${PROJECT_NAME} PRIVATE $<IF:$<TARGET_EXISTS:SDL2_net::SDL2_net>,SDL2_net::SDL2_net,SDL2_net::SDL2_net-static>) + else() + find_package(SDL2_net REQUIRED) + target_link_libraries(${PROJECT_NAME} PRIVATE SDL2_net::SDL2_net-static) + endif() endif() option(USE_STANDALONE "Build as a standalone executable" OFF) @@ -525,18 +526,18 @@ target_link_libraries(${PROJECT_NAME} PRIVATE torch "${ADDITIONAL_LIBRARY_DEPEND if(CMAKE_SYSTEM_NAME MATCHES "NintendoSwitch") -nx_generate_nacp(${PROJECT_NAME}.nacp + nx_generate_nacp(${PROJECT_NAME}.nacp NAME "${PROJECT_NAME}" AUTHOR "${PROJECT_TEAM}" VERSION "${PROJECT_VERSION}" ) -nx_create_nro(${PROJECT_NAME} + nx_create_nro(${PROJECT_NAME} NACP ${PROJECT_NAME}.nacp ICON ${CMAKE_CURRENT_SOURCE_DIR}/icon.png ) -INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.nro DESTINATION . COMPONENT ${PROJECT_NAME}) + INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.nro DESTINATION . COMPONENT ${PROJECT_NAME}) endif() ################################################################################ @@ -544,7 +545,7 @@ endif() ################################################################################ if(MSVC) if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64") - target_compile_options(${PROJECT_NAME} PRIVATE + target_compile_options(${PROJECT_NAME} PRIVATE $<$<CONFIG:Debug>: /w; /Od; @@ -561,10 +562,10 @@ if(MSVC) ${DEFAULT_CXX_DEBUG_INFORMATION_FORMAT}; ${DEFAULT_CXX_EXCEPTION_HANDLING} ) - target_compile_options(${PROJECT_NAME} PRIVATE $<$<CONFIG:Debug>:/ZI;>) - target_compile_options(${PROJECT_NAME} PRIVATE $<$<CONFIG:Release>:/Zi;>) + target_compile_options(${PROJECT_NAME} PRIVATE $<$<CONFIG:Debug>:/ZI;>) + target_compile_options(${PROJECT_NAME} PRIVATE $<$<CONFIG:Release>:/Zi;>) elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32") - target_compile_options(${PROJECT_NAME} PRIVATE + target_compile_options(${PROJECT_NAME} PRIVATE $<$<CONFIG:Debug>: /MTd > @@ -582,7 +583,7 @@ if(MSVC) ) endif() if("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "x64") - target_link_options(${PROJECT_NAME} PRIVATE + target_link_options(${PROJECT_NAME} PRIVATE $<$<CONFIG:Debug>: /INCREMENTAL > @@ -597,7 +598,7 @@ if(MSVC) /SUBSYSTEM:WINDOWS ) elseif("${CMAKE_VS_PLATFORM_NAME}" STREQUAL "Win32") - target_link_options(${PROJECT_NAME} PRIVATE + target_link_options(${PROJECT_NAME} PRIVATE $<$<CONFIG:Debug>: /STACK:8777216 > @@ -623,33 +624,33 @@ if(MSVC) endif() if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang") - if (CMAKE_SYSTEM_NAME STREQUAL "Darwin" OR CMAKE_SYSTEM_NAME STREQUAL "iOS") - target_compile_options(${PROJECT_NAME} PRIVATE + if (CMAKE_SYSTEM_NAME STREQUAL "Darwin" OR CMAKE_SYSTEM_NAME STREQUAL "iOS") + target_compile_options(${PROJECT_NAME} PRIVATE -pthread ) - target_link_options(${PROJECT_NAME} PRIVATE + target_link_options(${PROJECT_NAME} PRIVATE -pthread ) - elseif (CMAKE_SYSTEM_NAME STREQUAL "NintendoSwitch") - target_compile_options(${PROJECT_NAME} PRIVATE + elseif (CMAKE_SYSTEM_NAME STREQUAL "NintendoSwitch") + target_compile_options(${PROJECT_NAME} PRIVATE -pthread ) - target_link_options(${PROJECT_NAME} PRIVATE + target_link_options(${PROJECT_NAME} PRIVATE -pthread ) elseif (NOT CMAKE_SYSTEM_NAME STREQUAL "CafeOS") - if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64") - set(CPU_OPTION -msse2 -mfpmath=sse) - endif() + if(CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64") + set(CPU_OPTION -msse2 -mfpmath=sse) + endif() - target_compile_options(${PROJECT_NAME} PRIVATE + target_compile_options(${PROJECT_NAME} PRIVATE -pthread ${CPU_OPTION} ) - target_link_options(${PROJECT_NAME} PRIVATE + target_link_options(${PROJECT_NAME} PRIVATE -pthread -Wl,-export-dynamic ) @@ -657,29 +658,29 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang|AppleClang") endif() add_custom_command( - TARGET ${PROJECT_NAME} POST_BUILD - COMMENT "Copying asset yamls..." - COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_SOURCE_DIR}/config.yml" "$<TARGET_FILE_DIR:Spaghettify>/config.yml" - COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_SOURCE_DIR}/yamls/" "$<TARGET_FILE_DIR:Spaghettify>/yamls/" + TARGET ${PROJECT_NAME} POST_BUILD + COMMENT "Copying asset yamls..." + COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_SOURCE_DIR}/config.yml" "$<TARGET_FILE_DIR:Spaghettify>/config.yml" + COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_SOURCE_DIR}/yamls/" "$<TARGET_FILE_DIR:Spaghettify>/yamls/" COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_SOURCE_DIR}/meta/" "$<TARGET_FILE_DIR:Spaghettify>/meta/" ) if(NOT CMAKE_SYSTEM_NAME STREQUAL "NintendoSwitch") -include(ExternalProject) -ExternalProject_Add(TorchExternal + include(ExternalProject) + ExternalProject_Add(TorchExternal PREFIX TorchExternal SOURCE_DIR ${CMAKE_SOURCE_DIR}/torch CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_DIR}/torch ) -ExternalProject_Get_Property(TorchExternal install_dir) -if (MSVC) - set(TORCH_EXECUTABLE ${install_dir}/src/TorchExternal-build/$<CONFIGURATION>/torch) -else() - set(TORCH_EXECUTABLE ${install_dir}/src/TorchExternal-build/torch) -endif() + ExternalProject_Get_Property(TorchExternal install_dir) + if (MSVC) + set(TORCH_EXECUTABLE ${install_dir}/src/TorchExternal-build/$<CONFIGURATION>/torch) + else() + set(TORCH_EXECUTABLE ${install_dir}/src/TorchExternal-build/torch) + endif() -add_custom_target( + add_custom_target( ExtractAssets DEPENDS TorchExternal WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} @@ -690,7 +691,7 @@ add_custom_target( COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_SOURCE_DIR}/spaghetti.o2r" "${CMAKE_BINARY_DIR}/spaghetti.o2r" ) -add_custom_target( + add_custom_target( GenerateO2R DEPENDS TorchExternal WORKING_DIRECTORY ${CMAKE_SOURCE_DIR} @@ -698,12 +699,12 @@ add_custom_target( COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_SOURCE_DIR}/spaghetti.o2r" "${CMAKE_BINARY_DIR}/spaghetti.o2r" ) -if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") - install(FILES "${CMAKE_BINARY_DIR}/spaghetti.o2r" DESTINATION . COMPONENT ${PROJECT_NAME}) -endif() + if("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") + install(FILES "${CMAKE_BINARY_DIR}/spaghetti.o2r" DESTINATION . COMPONENT ${PROJECT_NAME}) + endif() -if(CMAKE_SYSTEM_NAME MATCHES "Darwin") -add_custom_target(CreateOSXIcons + if(CMAKE_SYSTEM_NAME MATCHES "Darwin") + add_custom_target(CreateOSXIcons COMMAND mkdir -p ${CMAKE_BINARY_DIR}/macosx/spaghettikart.iconset COMMAND sips -z 16 16 icon.png --out ${CMAKE_BINARY_DIR}/macosx/spaghettikart.iconset/icon_16x16.png COMMAND sips -z 32 32 icon.png --out ${CMAKE_BINARY_DIR}/macosx/spaghettikart.iconset/icon_16x16@2x.png @@ -721,19 +722,19 @@ add_custom_target(CreateOSXIcons ) add_dependencies(${PROJECT_NAME} CreateOSXIcons) configure_file("${CMAKE_SOURCE_DIR}/Info.plist" "${CMAKE_BINARY_DIR}/Info.plist" COPYONLY) -endif() + endif() -set_property(TARGET ${PROJECT_NAME} PROPERTY APPIMAGE_DESKTOP_FILE_TERMINAL YES) -set_property(TARGET ${PROJECT_NAME} PROPERTY APPIMAGE_DESKTOP_FILE "${CMAKE_SOURCE_DIR}/SpaghettiKart.desktop") -set_property(TARGET ${PROJECT_NAME} PROPERTY APPIMAGE_ICON_FILE "${CMAKE_SOURCE_DIR}/icon.png") + set_property(TARGET ${PROJECT_NAME} PROPERTY APPIMAGE_DESKTOP_FILE_TERMINAL YES) + set_property(TARGET ${PROJECT_NAME} PROPERTY APPIMAGE_DESKTOP_FILE "${CMAKE_SOURCE_DIR}/SpaghettiKart.desktop") + set_property(TARGET ${PROJECT_NAME} PROPERTY APPIMAGE_ICON_FILE "${CMAKE_SOURCE_DIR}/icon.png") endif() if(CMAKE_SYSTEM_NAME MATCHES "Linux") - set(CPACK_GENERATOR "External") + set(CPACK_GENERATOR "External") elseif(CMAKE_SYSTEM_NAME MATCHES "Windows|NintendoSwitch|CafeOS") - set(CPACK_GENERATOR "ZIP") + set(CPACK_GENERATOR "ZIP") elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin") - set(CPACK_GENERATOR "Bundle") + set(CPACK_GENERATOR "Bundle") endif() set(CPACK_PROJECT_CONFIG_FILE ${CMAKE_SOURCE_DIR}/cmake/configure-packaging.cmake) |
