Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
09b4c7b
use GLAD to link OpenGL
mbaetgen-wup Dec 14, 2025
da26d3d
dependency cleanup
mbaetgen-wup Dec 16, 2025
ecd0b4e
use glad for sdl-test-ui
mbaetgen-wup Dec 20, 2025
cf050bf
remove obsolete lib entry
mbaetgen-wup Dec 20, 2025
f0cef93
sdl-test-ui use logging api
mbaetgen-wup Dec 20, 2025
681b158
remove glad forward decl, naming fixes
mbaetgen-wup Dec 21, 2025
381d2a1
naming fixes
mbaetgen-wup Dec 21, 2025
6f4ab59
use shared_ptr to manage gl resolver lifecycle
mbaetgen-wup Dec 22, 2025
6c2426f
keep using lock_guard
mbaetgen-wup Dec 22, 2025
03470f5
cleanup
mbaetgen-wup Dec 22, 2025
5730277
macos build fix
mbaetgen-wup Jan 11, 2026
049dfe5
nit fixes
mbaetgen-wup Jan 11, 2026
e415a03
resolver lifecycle fix
mbaetgen-wup Jan 11, 2026
278c971
dependency cleanup
mbaetgen-wup Jan 12, 2026
74949ec
add emscripten support to resolver
mbaetgen-wup Jan 12, 2026
d31aebb
nit fixes
mbaetgen-wup Jan 12, 2026
cf51884
reset soil2 gl when gl resolver is destroyed
mbaetgen-wup Jan 12, 2026
02d8c5a
fix typo
mbaetgen-wup Jan 12, 2026
7806224
add GLVND support
mbaetgen-wup Jan 13, 2026
8c68598
Merge remote-tracking branch 'origin/glad-loader' into glad-loader
mbaetgen-wup Jan 13, 2026
ee46a01
windows fixes
mbaetgen-wup Jan 13, 2026
1700a18
fix emscripten, remove gles cmake install
mbaetgen-wup Jan 13, 2026
2fd94e6
add gl context version check, fix race condition, better func pointer…
mbaetgen-wup Jan 15, 2026
3096218
log gl lib loader errors
mbaetgen-wup Jan 15, 2026
b68012d
remove shutdown, locking fixes
mbaetgen-wup Jan 15, 2026
fedf650
avoid reinterpret_cast
mbaetgen-wup Jan 15, 2026
97fdedb
fix more reinterpret_cast edge cases
mbaetgen-wup Jan 15, 2026
b1038d3
improve gl/glx lib names
mbaetgen-wup Jan 15, 2026
fc4cc4d
soil2 atomic init fix
mbaetgen-wup Jan 15, 2026
83da614
resolver debug logging
mbaetgen-wup Jan 15, 2026
b30c448
fix emscripten, add some quotes
mbaetgen-wup Jan 16, 2026
f814aa5
verify gl context current
mbaetgen-wup Jan 16, 2026
7f63e85
fix more edge cases
mbaetgen-wup Jan 16, 2026
de7089e
fix emscripten
mbaetgen-wup Jan 16, 2026
bf2c94a
overhaul
mbaetgen-wup Jan 17, 2026
53dfda0
build fixes
mbaetgen-wup Jan 17, 2026
9000154
fix macos build
mbaetgen-wup Jan 17, 2026
48735e9
cleanup
mbaetgen-wup Jan 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion BUILDING-cmake.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ Required tools and dependencies:
- CMake 3.21 or higher.
- A working toolchain, e.g. Visual Studio on Windows or the `build-essentials` package on Ubuntu Linux.
- Main OpenGL libraries and development files.
- The `GLEW` Library on Windows.

To use the library in other projects, it is required to install it. Use `CMAKE_INSTALL_PREFIX` to specify the
installation directory.
Expand Down
5 changes: 0 additions & 5 deletions BUILDING.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,11 +100,6 @@ development files. To build projectM, both binaries and development files need t
library dependencies and/or using CMake to configure the build. Mainly used on Windows, but also works for Linux and
macOS.

### Only relevant for Windows:

* [**GLEW**](http://glew.sourceforge.net/): The OpenGL Extension Wrangler Library. Only required if using CMake to
configure the build, the pre-created solutions use a bundled copy of GLEW.

## Building on Linux and macOS

### Installing dependencies
Expand Down
30 changes: 3 additions & 27 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -165,36 +165,12 @@ else()

if(ENABLE_GLES)
message(STATUS "Building for OpenGL Embedded Profile")
if(NOT CMAKE_SYSTEM_NAME STREQUAL Linux
AND NOT CMAKE_SYSTEM_NAME STREQUAL Android)
message(FATAL_ERROR "OpenGL ES 3 support is currently only available for Linux platforms. You're building for ${CMAKE_SYSTEM_NAME}.")
endif()

# We use a local find script for OpenGL::GLES3 until the proposed changes are merged upstream.
list(APPEND CMAKE_MODULE_PATH "${PROJECTM_SOURCE_DIR}/cmake/gles")
find_package(OpenGL REQUIRED COMPONENTS GLES3)
if(NOT TARGET OpenGL::GLES3)
message(FATAL_ERROR "No suitable GLES3 library was found.")
endif()

set(PROJECTM_OPENGL_LIBRARIES OpenGL::GLES3)
set(USE_GLES ON)
else()
message(STATUS "Building for OpenGL Core Profile")
find_package(OpenGL REQUIRED)
set(PROJECTM_OPENGL_LIBRARIES OpenGL::GL)
# GLX is required by SOIL2 on platforms with the X Window System (e.g. most Linux distributions)
if(TARGET OpenGL::GLX)
list(APPEND PROJECTM_OPENGL_LIBRARIES OpenGL::GLX)
endif()
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
find_package(GLEW REQUIRED)
# Prefer shared, but check for static lib if shared is not available.
if(TARGET GLEW::glew)
list(APPEND PROJECTM_OPENGL_LIBRARIES GLEW::glew)
elseif(TARGET GLEW::glew_s)
list(APPEND PROJECTM_OPENGL_LIBRARIES GLEW::glew_s)
endif()
if(WIN32)
find_package(OpenGL REQUIRED)
set(PROJECTM_OPENGL_LIBRARIES OpenGL::GL)
endif()
endif()
endif()
Expand Down
2 changes: 1 addition & 1 deletion cmake/SDL2Target.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ endif()

# Temporary fix to deal with wrong include dir set by SDL2's CMake configuration.
get_target_property(_SDL2_INCLUDE_DIR SDL2::SDL2 INTERFACE_INCLUDE_DIRECTORIES)
if(_SDL2_INCLUDE_DIR MATCHES "(.+)/SDL2\$" AND _SDL2_TARGET_TYPE STREQUAL STATIC_LIBRARY)
if(_SDL2_INCLUDE_DIR MATCHES "(.+)/SDL2\$")
# Check if SDL2::SDL2 is aliased to SDL2::SDL2-static (will be the case for static-only builds)
get_target_property(_SDL2_ALIASED_TARGET SDL2::SDL2 ALIASED_TARGET)
if(_SDL2_ALIASED_TARGET)
Expand Down
Loading
Loading