Fix Linux build issues by integrating system-level dependencies#1997
Fix Linux build issues by integrating system-level dependencies#1997killerdevildog wants to merge 2 commits into
Conversation
- Add pkg-config detection for Bullet Physics (libbullet-dev) - Add pkg-config detection for Lua 5.3 (liblua5.3-dev) - Generate lua/lua.hpp compatibility header for deprecated API calls - Add missing system libraries: GLEW, OpenAL, Vorbis to linking - Resolve CMake resource management conflicts between samples - Remove duplicate logo file references causing build failures This fixes build issues on Linux where the system looks for local lua instead of system-level lua installation, and ensures proper integration with system-installed Bullet Physics and Lua libraries.
- Implemented three-mode dependency system: AUTO (source→system fallback), SOURCE (force source build), SYSTEM (system libraries only) - Added cmake/BuildDependenciesFromSource.cmake for Git-based dependency building - Modified main CMakeLists.txt to support configurable DEPENDENCY_MODE - Updated gameplay/CMakeLists.txt and samples/CMakeLists.txt for new system - Removed /cmake from .gitignore to track CMake modules - Fixed C++11 compatibility and disabled FluidSynth for OpenAL - Tested with all samples: browser, character, racer, spaceship
|
@reven86 @rcmaniac25 @Benjamin-Dobell @timleader When you have a moment, I'd appreciate your review on this PR. I've implemented a feature that automatically builds dependencies from https://github.com/gameplay3d/gameplay-deps.git during the build process, with a fallback to system-installed dependencies if needed. This should streamline the setup and make the project more accessible for contributors. I was inspired to tackle this as part of my interest in open-source contributions, aiming to improve the build experience on my own system—and hopefully others' as well. Looking forward to your feedback! |
GamePlay Engine - Dependency Management SystemOverviewThis CMake system provides flexible dependency management for the GamePlay engine with three modes:
UsageQuick Start (Default - AUTO mode)mkdir build && cd build
cmake ..
cmake --build . --parallel 4Specific Modes# Build from source only
cmake -DDEPENDENCY_MODE=SOURCE ..
# Use system libraries only
cmake -DDEPENDENCY_MODE=SYSTEM ..
# Automatic mode (default)
cmake -DDEPENDENCY_MODE=AUTO ..Dependency Management ModesAUTO Mode (Recommended)
SOURCE Mode
SYSTEM Mode
Dependencies Built from SourceWhen using SOURCE or AUTO mode, the following libraries are built:
System RequirementsFor SOURCE mode:
For SYSTEM mode:
Build OutputSuccessful build produces:
TroubleshootingSource Build Issues
System Library Issues
FluidSynth Errors
Implementation DetailsThe system uses modular CMake files:
External dependencies are built in |
This fixes build issues on Linux where the system looks for local lua instead of system-level lua installation, and ensures proper integration with system-installed Bullet Physics and Lua libraries.