diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2023-06-15 13:41:52 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2023-06-15 13:50:27 +0200 |
commit | 6fc09121378d78026f799a820ce689f2d30bb0c9 (patch) | |
tree | 000e06751da4f737498efd333ed22c344c46d60b /modules/minimp3 | |
parent | 773414606079fa745d1c37fce49324ab6a09e972 (diff) | |
download | redot-engine-6fc09121378d78026f799a820ce689f2d30bb0c9.tar.gz |
minimp3: Add a .cpp file to simplify building the single-header implementation
Single-header libraries like this require passing a bunch of defines _once_
before including the header, but not multiple times. This can make it tricky
in user code to know when to request the implementation, if the header needs
to be included in multiple files.
So properly compiling a .cpp file for the implementation solves this, and
also enables us to properly disable warnings on thirdparty implementation code.
Diffstat (limited to 'modules/minimp3')
-rw-r--r-- | modules/minimp3/SCsub | 26 | ||||
-rw-r--r-- | modules/minimp3/audio_stream_mp3.cpp | 5 |
2 files changed, 20 insertions, 11 deletions
diff --git a/modules/minimp3/SCsub b/modules/minimp3/SCsub index 20e3165f38..0f86ed5a88 100644 --- a/modules/minimp3/SCsub +++ b/modules/minimp3/SCsub @@ -5,13 +5,27 @@ Import("env_modules") env_minimp3 = env_modules.Clone() +# Thirdparty source files + +thirdparty_obj = [] + thirdparty_dir = "#thirdparty/minimp3/" +thirdparty_sources = [thirdparty_dir + "minimp3_ex.cpp"] + +env_minimp3.Prepend(CPPPATH=[thirdparty_dir]) + +env_thirdparty = env_minimp3.Clone() +env_thirdparty.disable_warnings() +env_thirdparty.add_source_files(thirdparty_obj, thirdparty_sources) +env.modules_sources += thirdparty_obj -# Treat minimp3 headers as system headers to avoid raising warnings. Not supported on MSVC. -if not env.msvc: - env_minimp3.Append(CPPFLAGS=["-isystem", Dir(thirdparty_dir).path]) -else: - env_minimp3.Prepend(CPPPATH=[thirdparty_dir]) # Godot source files -env_minimp3.add_source_files(env.modules_sources, "*.cpp") + +module_obj = [] + +env_minimp3.add_source_files(module_obj, "*.cpp") +env.modules_sources += module_obj + +# Needed to force rebuilding the module files when the thirdparty library is updated. +env.Depends(module_obj, thirdparty_obj) diff --git a/modules/minimp3/audio_stream_mp3.cpp b/modules/minimp3/audio_stream_mp3.cpp index 6af86a96dc..c63ec3cad0 100644 --- a/modules/minimp3/audio_stream_mp3.cpp +++ b/modules/minimp3/audio_stream_mp3.cpp @@ -28,11 +28,6 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /**************************************************************************/ -#define MINIMP3_ONLY_MP3 -#define MINIMP3_FLOAT_OUTPUT -#define MINIMP3_IMPLEMENTATION -#define MINIMP3_NO_STDIO - #include "audio_stream_mp3.h" #include "core/io/file_access.h" |