From d5b2c59ebf1ab194758e5621338d552a42ca5618 Mon Sep 17 00:00:00 2001 From: InviseDivine Date: Fri, 20 Mar 2026 19:14:18 +0200 Subject: [PATCH 1/2] FIX: Cmake --- CMakeLists.txt | 87 ++++++++++++++++++++++---------------------------- 1 file changed, 39 insertions(+), 48 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index aa81883..6a67598 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,45 +6,22 @@ include(cmake/CPM.cmake) set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_STANDARD_REQUIRED TRUE) set(CMAKE_POLICY_VERSION_MINIMUM 3.10) - if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") set(CMAKE_CXX_FLAGS "-Wno-c++11-narrowing -Wno-narrowing -Wno-invalid-source-encoding -Wno-reserved-user-defined-literal") endif() -# ## Config options ### -include(CMakeDependentOption) -include(cmake/EnumOption.cmake) - -if(EMSCRIPTEN) - # When configuring web builds with "emcmake cmake -B build -S .", set PLATFORM to Web by default - set(PLATFORM Web CACHE STRING "Platform to build for.") -endif() - -enum_option(PLATFORM "Desktop;Web" "Platform to build for.") - find_package(Threads REQUIRED) find_package(OpenSSL) -if (${PLATFORM} STREQUAL "Desktop") - set(PLATFORM_CPP "PLATFORM_DESKTOP") - - if (WIN32) - add_definitions(-D_CRT_SECURE_NO_WARNINGS) - set(EXTRA_LIBS ws2_32) - elseif(UNIX) - find_library(pthread NAMES pthread) - set(EXTRA_LIBS pthread m) - endif() - -elseif (${PLATFORM} STREQUAL "Web") - set(PLATFORM_CPP "PLATFORM_WEB") - set(EXTRA_LIBS "idbfs.js") +if(EMSCRIPTEN) + set(AL_LIBTYPE "STATIC") +else() + set(AL_LIBTYPE "SHARED") endif() # I totally shocked -if(${PLATFORM} MATCHES "Web") +if(EMSCRIPTEN) set(PNG_LIB png) - set(AL_LIBTYPE "STATIC") add_library(zlib INTERFACE IMPORTED) set_target_properties(zlib PROPERTIES @@ -62,7 +39,6 @@ if(${PLATFORM} MATCHES "Web") ) else() set(PNG_LIB png_shared) - set(AL_LIBTYPE "SHARED") CPMAddPackage( NAME "zlib" @@ -283,32 +259,49 @@ file(GLOB CLIENT_SOURCES "src/SharedConstants.cpp" "src/main.cpp" "src/NinecraftApp.cpp" - - "src/AppPlatform_glfw.cpp" - "src/main.cpp" ) -if (${PLATFORM} STREQUAL "Desktop") - list(APPEND CLIENT_SOURCES glad/src/glad.c) +if(NOT DEFINED PLATFORM) + set(PLATFORM "PLATFORM_GLFW") +endif() + + +if(PLATFORM STREQUAL "PLATFORM_WIN32") + list(APPEND CLIENT_SOURCES "src/AppPlatform_win32.cpp" "glad/src/glad.c") +endif() + +if(PLATFORM STREQUAL "PLATFORM_GLFW") + list(APPEND CLIENT_SOURCES "src/AppPlatform_glfw.cpp" "glad/src/glad.c") +endif() + +if(EMSCRIPTEN) + list(APPEND CLIENT_SOURCES "glad/src/glad.c") endif() # Server if(UNIX) - add_executable("${PROJECT_NAME}-server" ${SERVER_SOURCES}) +add_executable("${PROJECT_NAME}-server" ${SERVER_SOURCES}) - target_compile_definitions("${PROJECT_NAME}-server" PUBLIC "STANDALONE_SERVER" "SERVER_PROFILER") +target_compile_definitions("${PROJECT_NAME}-server" PUBLIC "STANDALONE_SERVER" "SERVER_PROFILER") - target_include_directories("${PROJECT_NAME}-server" PUBLIC - "${CMAKE_SOURCE_DIR}/src/" - "project/lib_projects/raknet/jni/RaknetSources" - ) +target_include_directories("${PROJECT_NAME}-server" PUBLIC + "${CMAKE_SOURCE_DIR}/src/" + "project/lib_projects/raknet/jni/RaknetSources" +) - target_link_libraries("${PROJECT_NAME}-server" ${CMAKE_THREAD_LIBS_INIT}) +target_link_libraries("${PROJECT_NAME}-server" ${CMAKE_THREAD_LIBS_INIT}) endif() add_executable(${PROJECT_NAME} ${CLIENT_SOURCES}) -target_compile_definitions(${PROJECT_NAME} PUBLIC ${PLATFORM_CPP}) +if(WIN32) + set(EXTRA_LIBS "ws2_32") + target_compile_definitions(${PROJECT_NAME} PUBLIC "_CRT_SECURE_NO_WARNINGS") +endif() + +if(PLATFORM STREQUAL "PLATFORM_WIN32" OR PLATFORM STREQUAL "PLATFORM_GLFW") + target_compile_definitions(${PROJECT_NAME} PUBLIC "PLATFORM_DESKTOP") +endif() target_include_directories(${PROJECT_NAME} PUBLIC "${CMAKE_SOURCE_DIR}/glad/include/" @@ -318,7 +311,7 @@ target_include_directories(${PROJECT_NAME} PUBLIC "lib/include" ) -if(${PLATFORM} MATCHES "Web") +if(EMSCRIPTEN) set(CMAKE_CXX_STANDARD 11) # uuuh i hate it set(EM_FLAGS "-pthread -sUSE_PTHREADS=1 -sSHARED_MEMORY=1") @@ -359,6 +352,7 @@ if(${PLATFORM} MATCHES "Web") endif() target_compile_definitions(${PROJECT_NAME} PUBLIC "__EMSCRIPTEN__" "NO_SOUND" "NO_NETWORK") + set(EXTRA_LIBS "idbfs.js") endif() # Client @@ -379,7 +373,7 @@ if (NOT UNIX) ) endif() -if(NOT ${PLATFORM} MATCHES "Web") +if(NOT EMSCRIPTEN) add_custom_command( TARGET ${PROJECT_NAME} POST_BUILD @@ -391,7 +385,4 @@ else() POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_SOURCE_DIR}/misc/web/index.html" $ ) -endif() - -message(STATUS "Compiling with the flags:") -message(STATUS " PLATFORM=" ${PLATFORM_CPP}) \ No newline at end of file +endif() \ No newline at end of file From c54bdfdcff157f124960aa8f4cc6ead235857130 Mon Sep 17 00:00:00 2001 From: mschiller890 Date: Fri, 20 Mar 2026 19:07:25 +0100 Subject: [PATCH 2/2] Target SDK lowered for compatibility Setting it to 36 broke some permission things Still seems like the game can't write anywhere even with r/w permissions... --- project/android/AndroidManifest.xml | 2 +- project/android_java/AndroidManifest.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/project/android/AndroidManifest.xml b/project/android/AndroidManifest.xml index 7b97a02..7cb9435 100755 --- a/project/android/AndroidManifest.xml +++ b/project/android/AndroidManifest.xml @@ -7,7 +7,7 @@ + android:targetSdkVersion="30" /> diff --git a/project/android_java/AndroidManifest.xml b/project/android_java/AndroidManifest.xml index 3859e3c..042a27c 100755 --- a/project/android_java/AndroidManifest.xml +++ b/project/android_java/AndroidManifest.xml @@ -6,7 +6,7 @@ + android:targetSdkVersion="30"/>