Commit Graph

19 Commits

Author SHA1 Message Date
0067e82f7e Fix various typos
Found via `codespell -q 3 -S "./vendor" -L ist`
2024-02-11 22:40:11 +01:00
79973a1e07 Initial import of sphinx project 2024-02-09 16:37:09 -06:00
0789c54404 Remove unnecessary feature detections, move filesystem defines to config.h. 2024-02-02 15:08:04 +01:00
170f054860 Remove no longer used LLVM support code. 2024-02-02 15:08:04 +01:00
3fc7c9dd2f Replace low-level FS API with std:: or boost::filesystem.
Also gets rid of the dirent.h hack used on Windows platforms, as the filesystem API hides all the OS-specific stuff, and we can use a recursive iterator instead of doing that ourselves, making the code even cleaner.
2024-01-30 15:25:29 +01:00
3cba474888 Move filesystem support check to top level CMakeLists.txt
Preparing to replace the low-level POSIX API usage in FileScanner.cpp.
2024-01-30 14:43:10 +01:00
b88f96b780 Fix CMake scripts, so they can be used via add_subdirectory(). 2023-09-19 18:38:43 +02:00
5fe105cb31 Don't search for desktop GL libraries if any GLES component is requested 2023-09-19 18:38:43 +02:00
f9d55a3470 GenerateExportHeader.cmake: adjust coding style
Make the coding style inline with upstream CMake, so it is possible to
diff ours vs. upstream. No functional changes, only indenting changes.
2023-07-19 10:59:04 +02:00
c9b946be86 CMake: Set OUTPUT NAME to affect .so filenames
Old:
- libprojectM.so
- libprojectM_playlist.so

New:
- libprojectM-4.0.so
- libprojectM-4.0-playlist.so
2023-02-22 16:34:46 +01:00
a88f62360a Add version header and API methods to get build/run time versions of libprojectM. 2023-01-24 20:03:44 +01:00
ebafd69dfb Create proper pkg-config file for libprojectM_playlist.
Generalized the generator code as a macro. Still a huge mess.
2023-01-24 19:13:07 +01:00
b6dfb6e195 Moved public API headers into an INTERFACE library 2022-11-21 19:54:56 +01:00
02c6e2df68 Fixed CMake compiler/linker flag detection on Windows.
Replacing the / with _ in the variable name, as CMake doesn't support this character in variable names.
2022-09-15 16:22:05 +02:00
f626b73a5b CMake: Check if SDL2::SDL2 target is aliased and set property on the original target instead 2022-05-20 17:51:59 +02:00
9e9f4ca1b2 Removed all outsourced code/files from the repo and updated README.md with new links.
New subproject/data locations:
- presets/presets-cream_of_the_crop: https://github.com/projectM-visualizer/presets-cream-of-the-crop
- presets/presets-En_D: https://github.com/projectM-visualizer/presets-en-d
- presets/textures: https://github.com/projectM-visualizer/presets-milkdrop-texture-pack
- src/EyeTune: https://github.com/projectM-visualizer/frontend-uwp
- src/museum: https://github.com/projectM-visualizer/museum
- src/projectm-android: https://github.com/projectM-visualizer/examples-android
- src/projectM-emscripten: https://github.com/projectM-visualizer/examples-emscripten
- src/projectM-jack: https://github.com/projectM-visualizer/frontend-qt
- src/projectM-libvisual: https://github.com/projectM-visualizer/frontend-libvisual-plug-in
- src/projectM-libvisual-alsa: Deleted.
- src/projectM-moviegen: https://github.com/projectM-visualizer/tools-moviegen
- src/projectM-MusicPlugin: https://github.com/projectM-visualizer/frontend-music-plug-in
- src/projectM-pulseaudio: https://github.com/projectM-visualizer/frontend-qt
- src/projectM-qt: https://github.com/projectM-visualizer/frontend-qt
- src/projectM-sdl: src/sdl-test-ui
- src/projectM-test: tests
2022-02-18 18:01:03 +01:00
8c30f62bf0 Add GLES3 find script to CMake and enable GLES3 support.
The find script changes will be proposed upstream for patching the built-in CMake module. Until that's merged, we use the local copy if GLES3 is requested.

Enabling GLES3 on desktop Linux should work out-of-the box now provided the required libs and headers are there. For example, Mesa's GLES implementation will work.
2021-11-15 21:11:03 +01:00
521eff97a5 Add GitHub Action to build with CMake on Windows, Linux and macOS. 2021-06-10 18:05:20 +02:00
83a08f3a6c Add CMake build system files (only as "autotools" replacement for now) (#487)
* Initial set of CMake files with options and some targets.

* Added all targets to build libprojectM shared/static libraries.

* Updated currently unused (and seemingly unfinished) SDL-based JACK visualizer to use SDL2.

* Converted more targets to CMake and added install directives.

New targets:
- Presets
- Test application
- Pulseaudio/Qt visualizer
- JACK/Qt visualizer
- JACK/SDL2 visualizer

* Added libvisual plug-in target. Changed default install paths to relative.

* Use debug suffix for libraries by default, but make it configurable.

* Added target for projectMSDL application.

* Added CMake code for the ENABLE_THREADING switch, install desktop, icon, manpage and pkgconfig files.

Also added some dependency version output to the post-configuration summary and made Qt switch implicit based on Pulsaudio/JACK UI selection.

* Added CMake package config files and exported targets. Some restructuring of libprojectM targets.

Kept pkgconfig module name for CMake.

* Add -name parameter to RCC command in existing autotools Makefile.

Fixes symbol name mismatch with CMake auto-generated resources which always add the QRC file basename as resource name.

* Display an author warning that CMake files aren't production ready yet.

* Prefer system GLM library, with fallback to bundled version if not available.

Removed the option to use the system library in favor of automated detection.

* Link correct OpenGL libraries, the previous ones were Linux-specific, with GLVND not being required.

* Recreate config.h as generated by autoheader, even if most defines weren't used.

Will also force-include the file on all platforms.

* Add option to build native preset libraries, disabled by default.

* Only install "tests" presets if building the test suite.

* Fix linking LLVM libraries to libprojectM.

Wasn't inherited anymore due to changing MilkdropPresetFactory library type to OBJECT.

* Use INTERFACE IMPORTED libraries in find scripts, set minimum CMake version to 3.19.

* Added missing config.h template and renamed to config.h.cmake.in, was in the .gitignore list.

* Added Windows-specific CMake configuration and some related code changes.

These changes enable building for Windows with both Visual Studio and Ninja project generators. Installation and packaging for Windows is not yet supported. Source groups, filters and support for embedded debug symbols will be added later.

* Link required CoreFoundation framework on MacOS.

* Work around SDL2 include dir issue (upstream SDL bug #4004) by removing "/SDL2" from the path.

* Fix existing Windows build by moving bundled GLEW files into "GL" subdir.

* Place libprojectM-related targets in a "libprojectM" folder in IDEs supporting it, e.g. Visual Studio.

* Fix displaying whether system GLM is used or not in config summary.

* Disable threading support on Windows unless we don't rely solely on pthreads anymore.

* Add version check for SDL2 (>=2.0.5).

* Complete overhaul of build instructions, adding CMake build and use instructions.

* Added check for OpenMP support and fixed a compiler error in OMPTL.

Also moved compiler warning checks to features.cmake and added the DEBUG define for debug builds.

* Added a quick start guide for building on Debian and Ubuntu.

* Lower minimum required CMake version to 3.14.

Co-authored-by: Kai Blaschke <kai.blaschke@gdata.de>
2021-06-04 16:48:20 +03:00