diff --git a/CMakeLists.txt b/CMakeLists.txt index c0b02333e9..d46e836989 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,6 +60,7 @@ file(TOUCH "${PROJECTM_DUMMY_SOURCE_FILE}") if(CMAKE_SYSTEM_NAME STREQUAL Emscripten) set(ENABLE_EMSCRIPTEN ON CACHE BOOL "Build for web with emscripten. Will also build the SDL2-based entrypoint." FORCE) + option(USE_PTHREADS "Enable multithreading support" OFF) else() set(ENABLE_EMSCRIPTEN OFF CACHE BOOL "Build for web with emscripten. Requires emscripten toolset for building." FORCE) endif() @@ -80,11 +81,6 @@ option(ENABLE_CXX_INTERFACE "Enable exporting C++ symbols for ProjectM and PCM c if(ENABLE_SYSTEM_GLM) find_package(GLM REQUIRED) -else() - add_library(GLM::GLM INTERFACE IMPORTED) - set_target_properties(GLM::GLM PROPERTIES - INTERFACE_INCLUDE_DIRECTORIES "${PROJECTM_SOURCE_DIR}/vendor" - ) endif() if(NOT BUILD_SHARED_LIBS AND CMAKE_SYSTEM_NAME STREQUAL "Windows") @@ -122,6 +118,11 @@ if(ENABLE_EMSCRIPTEN) "SHELL:-s NO_DISABLE_EXCEPTION_CATCHING" ) + if(USE_PTHREADS) + add_compile_options("SHELL:-s USE_PTHREADS=1") + add_link_options("SHELL:-s USE_PTHREADS=1") + endif() + set(USE_GLES ON) else() if(ENABLE_SDL_UI) @@ -242,6 +243,9 @@ if(ENABLE_SDL_UI) endif() message(STATUS " OpenGL ES: ${ENABLE_GLES}") message(STATUS " Emscripten: ${ENABLE_EMSCRIPTEN}") +if(CMAKE_SYSTEM_NAME STREQUAL Emscripten) + message(STATUS " - PThreads: ${USE_PTHREADS}") +endif() message(STATUS " Use system GLM: ${ENABLE_SYSTEM_GLM}") message(STATUS " Link UI with shared lib: ${ENABLE_SHARED_LINKING}") message(STATUS "") diff --git a/src/libprojectM/MilkdropPreset/FinalComposite.cpp b/src/libprojectM/MilkdropPreset/FinalComposite.cpp index 3134cdb21c..549c950437 100644 --- a/src/libprojectM/MilkdropPreset/FinalComposite.cpp +++ b/src/libprojectM/MilkdropPreset/FinalComposite.cpp @@ -43,7 +43,7 @@ void FinalComposite::LoadCompositeShader(const PresetState& presetState) if (presetState.compositeShaderVersion > 0) { m_compositeShader = std::make_unique(MilkdropShader::ShaderType::CompositeShader); - if (!presetState.warpShader.empty()) + if (!presetState.compositeShader.empty()) { try { diff --git a/src/sdl-test-ui/opengl.h b/src/sdl-test-ui/opengl.h index 2ae4dd9125..0533989a24 100644 --- a/src/sdl-test-ui/opengl.h +++ b/src/sdl-test-ui/opengl.h @@ -35,7 +35,7 @@ #include "GL/glew.h" #include "GL/wglew.h" #else /* linux/unix/other */ -# if USE_GLES +# ifdef USE_GLES # include # else # if !defined(GL_GLEXT_PROTOTYPES) diff --git a/vendor/CMakeLists.txt b/vendor/CMakeLists.txt index bace9fc473..25591a65c7 100644 --- a/vendor/CMakeLists.txt +++ b/vendor/CMakeLists.txt @@ -1,3 +1,6 @@ +if(NOT ENABLE_SYSTEM_GLM) + add_subdirectory(glm) +endif() add_subdirectory(hlslparser) add_subdirectory(projectm-eval) add_subdirectory(SOIL2) diff --git a/vendor/SOIL2/CMakeLists.txt b/vendor/SOIL2/CMakeLists.txt index 0a52d1df27..f9ccc85f23 100644 --- a/vendor/SOIL2/CMakeLists.txt +++ b/vendor/SOIL2/CMakeLists.txt @@ -22,8 +22,10 @@ add_library(SOIL2 OBJECT ) target_include_directories(SOIL2 - PUBLIC + PRIVATE "." + PUBLIC + "${CMAKE_CURRENT_SOURCE_DIR}/.." ) target_link_libraries(SOIL2 diff --git a/vendor/glm/CMakeLists.txt b/vendor/glm/CMakeLists.txt index df9c9ee5ae..66669c22ae 100755 --- a/vendor/glm/CMakeLists.txt +++ b/vendor/glm/CMakeLists.txt @@ -1,77 +1,50 @@ -file(GLOB ROOT_SOURCE *.cpp) file(GLOB ROOT_INLINE *.inl) file(GLOB ROOT_HEADER *.hpp) file(GLOB ROOT_TEXT ../*.txt) file(GLOB ROOT_MD ../*.md) file(GLOB ROOT_NAT ../util/glm.natvis) -file(GLOB_RECURSE CORE_SOURCE ./detail/*.cpp) file(GLOB_RECURSE CORE_INLINE ./detail/*.inl) file(GLOB_RECURSE CORE_HEADER ./detail/*.hpp) -file(GLOB_RECURSE EXT_SOURCE ./ext/*.cpp) file(GLOB_RECURSE EXT_INLINE ./ext/*.inl) file(GLOB_RECURSE EXT_HEADER ./ext/*.hpp) -file(GLOB_RECURSE GTC_SOURCE ./gtc/*.cpp) file(GLOB_RECURSE GTC_INLINE ./gtc/*.inl) file(GLOB_RECURSE GTC_HEADER ./gtc/*.hpp) -file(GLOB_RECURSE GTX_SOURCE ./gtx/*.cpp) file(GLOB_RECURSE GTX_INLINE ./gtx/*.inl) file(GLOB_RECURSE GTX_HEADER ./gtx/*.hpp) -file(GLOB_RECURSE SIMD_SOURCE ./simd/*.cpp) file(GLOB_RECURSE SIMD_INLINE ./simd/*.inl) file(GLOB_RECURSE SIMD_HEADER ./simd/*.h) source_group("Text Files" FILES ${ROOT_TEXT} ${ROOT_MD}) -source_group("Core Files" FILES ${CORE_SOURCE}) + source_group("Core Files" FILES ${CORE_INLINE}) source_group("Core Files" FILES ${CORE_HEADER}) -source_group("EXT Files" FILES ${EXT_SOURCE}) source_group("EXT Files" FILES ${EXT_INLINE}) source_group("EXT Files" FILES ${EXT_HEADER}) -source_group("GTC Files" FILES ${GTC_SOURCE}) source_group("GTC Files" FILES ${GTC_INLINE}) source_group("GTC Files" FILES ${GTC_HEADER}) -source_group("GTX Files" FILES ${GTX_SOURCE}) source_group("GTX Files" FILES ${GTX_INLINE}) source_group("GTX Files" FILES ${GTX_HEADER}) -source_group("SIMD Files" FILES ${SIMD_SOURCE}) source_group("SIMD Files" FILES ${SIMD_INLINE}) source_group("SIMD Files" FILES ${SIMD_HEADER}) -include_directories(${CMAKE_CURRENT_SOURCE_DIR}/..) - -if(GLM_STATIC_LIBRARY_ENABLE OR GLM_DYNAMIC_LIBRARY_ENABLE) - if(GLM_STATIC_LIBRARY_ENABLE) - add_library(glm_static STATIC ${ROOT_TEXT} ${ROOT_MD} ${ROOT_NAT} - ${ROOT_SOURCE} ${ROOT_INLINE} ${ROOT_HEADER} - ${CORE_SOURCE} ${CORE_INLINE} ${CORE_HEADER} - ${EXT_SOURCE} ${EXT_INLINE} ${EXT_HEADER} - ${GTC_SOURCE} ${GTC_INLINE} ${GTC_HEADER} - ${GTX_SOURCE} ${GTX_INLINE} ${GTX_HEADER} - ${SIMD_SOURCE} ${SIMD_INLINE} ${SIMD_HEADER}) - endif(GLM_STATIC_LIBRARY_ENABLE) - - if(GLM_DYNAMIC_LIBRARY_ENABLE) - add_library(glm_shared SHARED ${ROOT_TEXT} ${ROOT_MD} ${ROOT_NAT} - ${ROOT_SOURCE} ${ROOT_INLINE} ${ROOT_HEADER} - ${CORE_SOURCE} ${CORE_INLINE} ${CORE_HEADER} - ${EXT_SOURCE} ${EXT_INLINE} ${EXT_HEADER} - ${GTC_SOURCE} ${GTC_INLINE} ${GTC_HEADER} - ${GTX_SOURCE} ${GTX_INLINE} ${GTX_HEADER} - ${SIMD_SOURCE} ${SIMD_INLINE} ${SIMD_HEADER}) - endif(GLM_DYNAMIC_LIBRARY_ENABLE) - -else(GLM_STATIC_LIBRARY_ENABLE OR GLM_DYNAMIC_LIBRARY_ENABLE) - add_executable(glm_dummy ${ROOT_TEXT} ${ROOT_MD} ${ROOT_NAT} - ${ROOT_SOURCE} ${ROOT_INLINE} ${ROOT_HEADER} - ${CORE_SOURCE} ${CORE_INLINE} ${CORE_HEADER} - ${EXT_SOURCE} ${EXT_INLINE} ${EXT_HEADER} - ${GTC_SOURCE} ${GTC_INLINE} ${GTC_HEADER} - ${GTX_SOURCE} ${GTX_INLINE} ${GTX_HEADER} - ${SIMD_SOURCE} ${SIMD_INLINE} ${SIMD_HEADER}) - -endif(GLM_STATIC_LIBRARY_ENABLE OR GLM_DYNAMIC_LIBRARY_ENABLE) +add_library(glm INTERFACE + ${ROOT_TEXT} ${ROOT_MD} ${ROOT_NAT} + ${ROOT_INLINE} ${ROOT_HEADER} + ${CORE_INLINE} ${CORE_HEADER} + ${EXT_INLINE} ${EXT_HEADER} + ${GTC_INLINE} ${GTC_HEADER} + ${GTX_INLINE} ${GTX_HEADER} + ${SIMD_INLINE} ${SIMD_HEADER} + ) + +target_include_directories(glm + INTERFACE + "${CMAKE_CURRENT_SOURCE_DIR}/.." + ) + +add_library(GLM::GLM ALIAS glm)