diff --git a/BUILDING-cmake.md b/BUILDING-cmake.md index 82a758115..75167b6aa 100644 --- a/BUILDING-cmake.md +++ b/BUILDING-cmake.md @@ -106,22 +106,23 @@ using the `-D` switch. | `BUILD_SHARED_LIBS` | `ON` | | Build projectM as shared libraries. If `OFF`, build static libraries. | | `ENABLE_PLAYLIST` | `ON` | | Builds and installs the playlist library. | | `ENABLE_EMSCRIPTEN` | `OFF` | `Emscripten` | Build for the web using Emscripten. Only supports build as a static library and using GLES. | +| `ENABLE_GLES` | `OFF` | `GLES` | Use OpenGL ES 3 profile for rendering instead of the Core profile. | + +Note that `ENABLE_GLES` will be forcibly set to `ON` for Emscripten and Android builds, making it mandatory. ### Experimental and application-dependent build switches The following table contains a list of build options which are only useful in special circumstances, e.g. when developing libprojectM, trying experimental features or building the library for a special use-case/environment. -| CMake option | Default | Required dependencies | Description | -|------------------------|---------|-----------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------| -| `ENABLE_SDL_UI` | `ON` | `SDL2` | Builds the SDL-based test application. Only used for development testing, will not be installed. | -| `ENABLE_GLES` | `OFF` | `GLES` | Use OpenGL ES 3 profile for rendering instead of the Core profile. | -| `ENABLE_THREADING` | `ON` | | Enable multithreading support for preset loading if available. | -| `ENABLE_OPENMP` | `ON` | `OpenMP` | Enable OpenMP support if available. | -| `ENABLE_DEBUG_POSTFIX` | `ON` | | Adds `d` (by default) to the name of any binary file in debug builds. | -| `ENABLE_SYSTEM_GLM` | `OFF` | | Builds against a system-installed GLM library. | -| `ENABLE_LLVM` | `OFF` | `LLVM` | Enables **highly experimental** LLVM JIT support. Will most probably not build, as the LLVM API changes frequently. | -| `ENABLE_CXX_INTERFACE` | `OFF` | | Exports symbols for the `ProjectM` and `PCM` C++ classes and installs the additional the headers. Using the C++ interface is not recommended and unsupported. | +| CMake option | Default | Required dependencies | Description | +|------------------------|---------|--------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------| +| `ENABLE_SDL_UI` | `ON` | `SDL2` | Builds the SDL-based test application. Only used for development testing, will not be installed. | +| `ENABLE_THREADING` | `ON` | | Enable multithreading support for preset loading if available. | +| `ENABLE_INSTALL` | `OFF` | Building as a CMake subproject | Enable projectM install targets when built as a subproject via `add_subdirectory()`. | +| `ENABLE_DEBUG_POSTFIX` | `ON` | | Adds `d` (by default) to the name of any binary file in debug builds. | +| `ENABLE_SYSTEM_GLM` | `OFF` | | Builds against a system-installed GLM library. | +| `ENABLE_CXX_INTERFACE` | `OFF` | | Exports symbols for the `ProjectM` and `PCM` C++ classes and installs the additional the headers. Using the C++ interface is not recommended and unsupported. | ### Path options @@ -284,7 +285,7 @@ linked to. If you want to use the optional playlist library, you need to specifically request it as a component: ```cmake -find_package(libprojectM COMPONENTS Playlist) +find_package(projectM4 COMPONENTS Playlist) ``` You can either use `REQUIRED` to force a fatal error if the component cannot be found or check if the target exists @@ -303,11 +304,11 @@ If you link the playlist library, the main `libprojectM::projectM` target will b Searches for projectM and the playlist library and links both to the application: ```cmake -find_package(libprojectM REQUIRED COMPONENTS Playlist) +find_package(projectM4 REQUIRED COMPONENTS Playlist) add_executable(MyApp main.cpp) target_link_libraries(MyApp PRIVATE - libprojectM::Playlist + libprojectM::playlist ) ``` diff --git a/BUILDING.md b/BUILDING.md index 369d77036..8a295e686 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -92,8 +92,6 @@ development files. To build projectM, both binaries and development files need t autotools or if not installed. * [**SDL2**](https://github.com/libsdl-org/SDL): Simple Directmedia Layer. Version 2.0.5 or higher is required to build the standalone visualizer application (projectMSDL). -* [**LLVM**](https://llvm.org/): Low-Level Virtual Machine. Optional and **experimental**, used to speed up preset - execution by leveraging the LLVM JIT compiler. #### Only relevant for Linux distributions, FreeBSD and macOS: @@ -305,12 +303,6 @@ To build projectM using the Android SDK, please refer to the official NDK docs: It is highly recommended using the latest NDK and CMake >= 3.21 for building. -### LLVM JIT - -There are some optimizations for parsing preset equations that leverage the LLVM JIT. You can try adding the CMake -option `-DENABLE_LLVM=ON` to enable them. They may not work with a newer version of -LLVM (https://github.com/projectM-visualizer/projectm/pull/360). - ## libprojectM `libprojectM` is the core library. It is made up of three sub-libraries: