mirror of
https://git.eden-emu.dev/eden-emu/eden
synced 2026-06-28 09:45:45 +02:00
proper jthread support
This commit is contained in:
parent
d8cf5caeac
commit
e8246f42b2
4 changed files with 29 additions and 28 deletions
|
|
@ -1,33 +1,18 @@
|
|||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 1ca57e1..d38c0c6 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -113,9 +113,10 @@ elseif(MINGW)
|
||||
find_program(MAKE mingw32-make REQUIRED)
|
||||
set(OPENSSL_BUILD_TOOL ${MAKE})
|
||||
else()
|
||||
- find_program(MAKE make REQUIRED)
|
||||
+ find_program(MAKE gmake REQUIRED)
|
||||
set(OPENSSL_BUILD_TOOL ${MAKE})
|
||||
endif()
|
||||
+set(OPENSSL_BUILD_TOOL gmake)
|
||||
|
||||
# Modify configure/build options
|
||||
if(OPENSSL_TEST AND NOT CMAKE_CROSSCOMPILING)
|
||||
@@ -140,7 +141,7 @@ if(NUMBER_OF_THREADS GREATER 1)
|
||||
list(APPEND OPENSSL_CONFIGURE_OPTIONS /FS)
|
||||
list(APPEND OPENSSL_BUILD_OPTIONS /J ${NUMBER_OF_THREADS})
|
||||
else()
|
||||
- list(APPEND OPENSSL_BUILD_OPTIONS -j ${NUMBER_OF_THREADS})
|
||||
+# list(APPEND OPENSSL_BUILD_OPTIONS -j ${NUMBER_OF_THREADS})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
diff --git a/cmake/ConfigureOpenSSL.cmake b/cmake/ConfigureOpenSSL.cmake
|
||||
index 3012e05..9862aa0 100644
|
||||
index 3012e05..eda6cfb 100644
|
||||
--- a/cmake/ConfigureOpenSSL.cmake
|
||||
+++ b/cmake/ConfigureOpenSSL.cmake
|
||||
@@ -134,10 +134,24 @@ function(configure_openssl)
|
||||
@@ -108,7 +108,8 @@ function(configure_openssl)
|
||||
)
|
||||
|
||||
if(NOT "${CONFIGURE_OPTIONS_OLD}" STREQUAL "")
|
||||
- if(CONFIGURE_OPTIONS STREQUAL CONFIGURE_OPTIONS_OLD)
|
||||
+ # TODO(lizzie): Emscripten has issues with rebuilding due to the wrapper it uses
|
||||
+ if(CMAKE_SYSTEM_NAME MATCHES "Emscripten" OR CONFIGURE_OPTIONS STREQUAL CONFIGURE_OPTIONS_OLD)
|
||||
message(STATUS "Found previous configure results. Don't perform configuration")
|
||||
return()
|
||||
endif()
|
||||
@@ -134,10 +135,24 @@ function(configure_openssl)
|
||||
set(VERBOSE_OPTION OUTPUT_QUIET)
|
||||
endif()
|
||||
|
||||
|
|
|
|||
|
|
@ -381,6 +381,14 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
|
|||
# Prefer the -pthread flag on Linux.
|
||||
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
||||
find_package(Threads REQUIRED)
|
||||
# It is absolutely promordial to enable on Emscripten
|
||||
# Not only this allows to use std::thread and std::jthread without exceptions
|
||||
# but it also fixes several issues related to MT operations.
|
||||
# ...and CMake doesn't include it by default even when we specify
|
||||
# that we prefer the pthread flag; why is that? I don't know.
|
||||
if (PLATFORM_EMSCRIPTEN)
|
||||
add_compile_options($<$<COMPILE_LANGUAGE:C,CXX>:-pthread>)
|
||||
endif()
|
||||
|
||||
find_package(RenderDoc MODULE)
|
||||
|
||||
|
|
|
|||
|
|
@ -136,6 +136,11 @@ public:
|
|||
eden_path = GetDataDirectory("XDG_DATA_HOME") / EDEN_DIR;
|
||||
eden_path_cache = GetDataDirectory("XDG_CACHE_HOME") / EDEN_DIR;
|
||||
eden_path_config = GetDataDirectory("XDG_CONFIG_HOME") / EDEN_DIR;
|
||||
#if defined(__EMSCRIPTEN__) || defined(__wasi__) || defined(__managarm__)
|
||||
// folders MAY not exist in this distrobution/OS
|
||||
CreateParentDir(GetDataDirectory("XDG_CONFIG_HOME"));
|
||||
CreateParentDir(GetDataDirectory("XDG_CACHE_HOME"));
|
||||
#endif
|
||||
} else {
|
||||
eden_path_cache = eden_path / CACHE_DIR;
|
||||
eden_path_config = eden_path / CONFIG_DIR;
|
||||
|
|
|
|||
|
|
@ -77,5 +77,8 @@ if (NOT MSVC)
|
|||
endif()
|
||||
|
||||
if (PLATFORM_EMSCRIPTEN)
|
||||
set_target_properties(yuzu-cmd PROPERTIES LINK_FLAGS_RELEASE "--global-base=16777216")
|
||||
target_link_options(yuzu-cmd PRIVATE
|
||||
-sGLOBAL_BASE=16777216
|
||||
-sPTHREAD_POOL_SIZE_STRICT=0
|
||||
-sPTHREAD_POOL_SIZE=navigator.hardwareConcurrency)
|
||||
endif()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue