Skip to content

Commit

Permalink
Update macOS and Web projects for next release
Browse files Browse the repository at this point in the history
- Force Apple Silicon and Web ports to use OpenGL Software
- Update Dockerfile for web builds to target a known working version of emscripten from September
- Update web build Cmakelists.txt to properly pass emscripten settings
- New emscripten version no longer needs experimental filesystem library, so share code with Linux
  • Loading branch information
Sappharad committed Nov 18, 2023
1 parent b4c0f1f commit 53fc258
Show file tree
Hide file tree
Showing 6 changed files with 20 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -221,8 +221,12 @@ Configuration* Configuration::mSingleInstance = nullptr;

Configuration::RenderMethod Configuration::getHighestSupportedRenderMethod()
{
#if defined(PLATFORM_WEB) || (defined(PLATFORM_MAC) && defined(__arm64__))
return RenderMethod::OPENGL_SOFT;
#else
// Default is OpenGL Hardware render method (as it's the highest one), but this can be lowered as needed, e.g. for individual platforms or depending on the execution environment
return RenderMethod::OPENGL_FULL;
#endif
}

Configuration::Configuration()
Expand Down
6 changes: 3 additions & 3 deletions Oxygen/sonic3air/build/_emscripten/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ elseif (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")

endif()

set (CMAKE_CXX_FLAGS "-s USE_VORBIS=1 -s USE_SDL=2 -s FULL_ES2=1 -s FORCE_FILESYSTEM=1 -s ALLOW_MEMORY_GROWTH=1 -s EXIT_RUNTIME=1 -s USE_ZLIB=1")
set (CMAKE_CXX_FLAGS "-s USE_VORBIS=1 -s USE_SDL=2 -s USE_ZLIB=1")
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lidbfs.js -lwebsocket.js")

include_directories(${WORKSPACE_DIR}/framework/external/sdl/SDL2/include)
Expand Down Expand Up @@ -151,6 +151,6 @@ target_link_libraries(Sonic3AIR oxygen_enduser)
#target_link_libraries(Sonic3AIR discord_game_sdk_source)

set_target_properties(Sonic3AIR PROPERTIES OUTPUT_NAME "sonic3air_web")



set_target_properties(Sonic3AIR PROPERTIES LINK_FLAGS "-s FULL_ES2=1 -sFORCE_FILESYSTEM -sSTACK_SIZE=2MB -s ALLOW_MEMORY_GROWTH=1 -s EXIT_RUNTIME=1 -s DEFAULT_LIBRARY_FUNCS_TO_INCLUDE=\"['\$ERRNO_CODES']\"")

2 changes: 1 addition & 1 deletion Oxygen/sonic3air/build/_emscripten/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
FROM emscripten/emsdk
FROM emscripten/emsdk:3.1.46
RUN apt-get update && apt-get -y install libgl-dev libogg-dev libsdl2-dev python3
2 changes: 1 addition & 1 deletion Oxygen/sonic3air/build/_emscripten/how-to-build.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
=== Build under Emscripten via docker ===

Make sure docker is installed.
Use the included Dockerfile to build a docker container named llvm_emscripten:
Use the included Dockerfile to build a docker container named emscripten_gl:
- cd ./Oxygen/sonic3air/build/_emscripten
- docker build -t emscripten_gl .

Expand Down
18 changes: 10 additions & 8 deletions Oxygen/sonic3air/build/_xcode/sonic3air.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -781,6 +781,7 @@
9E995D3D25F9CFAF00F4B934 /* StringRef.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9E995D3925F9CFAF00F4B934 /* StringRef.cpp */; };
9E9EF33B24678BC900AAA00F /* OpenGLDrawerResources.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9E9EF33A24678BC900AAA00F /* OpenGLDrawerResources.cpp */; };
9E9FBBDA2824C9B20050EA3E /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9E9FBBD92824C9B20050EA3E /* Main.storyboard */; };
9EADEEEA2B08531E00C164D7 /* libcurl.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 9E0EFFA42B01CFDC0078ACB6 /* libcurl.tbd */; };
9EB0699A24807A9C0080AC49 /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9EB0699924807A9C0080AC49 /* AppDelegate.mm */; };
9EB0699C24807A9D0080AC49 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9EB0699B24807A9D0080AC49 /* Assets.xcassets */; };
9EB0699F24807A9D0080AC49 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9EB0699D24807A9D0080AC49 /* MainMenu.xib */; };
Expand Down Expand Up @@ -2311,6 +2312,7 @@
9EC1F79228178FE90073C39E /* Carbon.framework in Frameworks */,
9EC1F7792817858B0073C39E /* liboggvorbis_mac.a in Frameworks */,
9E0C5F4A247DEDFA000105D0 /* OpenGL.framework in Frameworks */,
9EADEEEA2B08531E00C164D7 /* libcurl.tbd in Frameworks */,
9EC1F78928178C520073C39E /* ForceFeedback.framework in Frameworks */,
9EC1F799281794260073C39E /* AppKit.framework in Frameworks */,
9EC1F797281793F90073C39E /* CoreVideo.framework in Frameworks */,
Expand Down Expand Up @@ -5808,7 +5810,7 @@
MACOSX_DEPLOYMENT_TARGET = 10.13;
"MACOSX_DEPLOYMENT_TARGET[arch=arm64]" = 11.0;
"MACOSX_DEPLOYMENT_TARGET[arch=arm64e]" = 11.0;
MARKETING_VERSION = 23.11.12.1;
MARKETING_VERSION = 23.11.18.0;
"OTHER_LDFLAGS[arch=x86_64]" = "$(SRCROOT)/boost.framework/boost";
PRODUCT_BUNDLE_IDENTIFIER = org.sonic3air;
PRODUCT_NAME = "$(TARGET_NAME)";
Expand Down Expand Up @@ -5856,7 +5858,7 @@
MACOSX_DEPLOYMENT_TARGET = 10.13;
"MACOSX_DEPLOYMENT_TARGET[arch=arm64]" = 11.0;
"MACOSX_DEPLOYMENT_TARGET[arch=arm64e]" = 11.0;
MARKETING_VERSION = 23.11.12.1;
MARKETING_VERSION = 23.11.18.0;
"OTHER_LDFLAGS[arch=x86_64]" = "$(SRCROOT)/boost.framework/boost";
PRODUCT_BUNDLE_IDENTIFIER = org.sonic3air;
PRODUCT_NAME = "$(TARGET_NAME)";
Expand Down Expand Up @@ -5909,7 +5911,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 23.11.12.1;
MARKETING_VERSION = 23.11.18.0;
PRODUCT_BUNDLE_IDENTIFIER = "org.sonic3air.sonic3air-ios";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
Expand Down Expand Up @@ -5964,7 +5966,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 23.11.12.1;
MARKETING_VERSION = 23.11.18.0;
PRODUCT_BUNDLE_IDENTIFIER = "org.sonic3air.sonic3air-ios";
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = "";
Expand Down Expand Up @@ -6128,7 +6130,7 @@
MACOSX_DEPLOYMENT_TARGET = 10.13;
"MACOSX_DEPLOYMENT_TARGET[arch=arm64]" = 11.0;
"MACOSX_DEPLOYMENT_TARGET[arch=arm64e]" = 11.0;
MARKETING_VERSION = 23.11.12.1;
MARKETING_VERSION = 23.11.18.0;
"OTHER_LDFLAGS[arch=x86_64]" = "$(SRCROOT)/boost.framework/boost";
PRODUCT_BUNDLE_IDENTIFIER = "org.sonic3air-dev";
PRODUCT_NAME = "sonic3air-dev";
Expand Down Expand Up @@ -6172,7 +6174,7 @@
MACOSX_DEPLOYMENT_TARGET = 10.13;
"MACOSX_DEPLOYMENT_TARGET[arch=arm64]" = 11.0;
"MACOSX_DEPLOYMENT_TARGET[arch=arm64e]" = 11.0;
MARKETING_VERSION = 23.11.12.1;
MARKETING_VERSION = 23.11.18.0;
"OTHER_LDFLAGS[arch=x86_64]" = "$(SRCROOT)/boost.framework/boost";
PRODUCT_BUNDLE_IDENTIFIER = "org.sonic3air-dev";
PRODUCT_NAME = "sonic3air-dev";
Expand Down Expand Up @@ -6216,7 +6218,7 @@
MACOSX_DEPLOYMENT_TARGET = 10.13;
"MACOSX_DEPLOYMENT_TARGET[arch=arm64]" = 11.0;
"MACOSX_DEPLOYMENT_TARGET[arch=arm64e]" = 11.0;
MARKETING_VERSION = 23.11.12.1;
MARKETING_VERSION = 23.11.18.0;
"OTHER_LDFLAGS[arch=x86_64]" = "$(SRCROOT)/boost.framework/boost";
PRODUCT_BUNDLE_IDENTIFIER = org.sonic3air.oxygenApp;
PRODUCT_NAME = "$(TARGET_NAME)";
Expand Down Expand Up @@ -6260,7 +6262,7 @@
MACOSX_DEPLOYMENT_TARGET = 10.13;
"MACOSX_DEPLOYMENT_TARGET[arch=arm64]" = 11.0;
"MACOSX_DEPLOYMENT_TARGET[arch=arm64e]" = 11.0;
MARKETING_VERSION = 23.11.12.1;
MARKETING_VERSION = 23.11.18.0;
"OTHER_LDFLAGS[arch=x86_64]" = "$(SRCROOT)/boost.framework/boost";
PRODUCT_BUNDLE_IDENTIFIER = org.sonic3air.oxygenApp;
PRODUCT_NAME = "$(TARGET_NAME)";
Expand Down
10 changes: 1 addition & 9 deletions librmx/source/rmxbase/file/FileIO.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,22 +17,14 @@
#include <direct.h>
#include <io.h>

#elif defined(PLATFORM_LINUX)
#elif defined(PLATFORM_LINUX) || defined(PLATFORM_WEB)
#include <filesystem>
namespace std_filesystem = std::filesystem;
#define USE_STD_FILESYSTEM

#include <dirent.h>
#include <sys/stat.h>

#elif defined(PLATFORM_WEB)
#include <experimental/filesystem>
namespace std_filesystem = std::experimental::filesystem;
#define USE_STD_FILESYSTEM

#include <dirent.h>
#include <sys/stat.h>

#elif defined(PLATFORM_MAC)
#if TARGET_CPU_X86_64
//Older Intel macOS < 10.15 lacks std::filesystem, so we substitute with boost::filesystem
Expand Down

0 comments on commit 53fc258

Please sign in to comment.