浏览代码

Merge pull request #78271 from akien-mga/minimp3-add-cpp-for-implementation

minimp3: Add a .cpp file to simplify building the single-header implementation
Rémi Verschelde 2 年之前
父节点
当前提交
824820d73a
共有 4 个文件被更改,包括 26 次插入10 次删除
  1. 20 6
      modules/minimp3/SCsub
  2. 0 4
      modules/minimp3/audio_stream_mp3.cpp
  3. 1 0
      thirdparty/README.md
  4. 5 0
      thirdparty/minimp3/minimp3_ex.cpp

+ 20 - 6
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)

+ 0 - 4
modules/minimp3/audio_stream_mp3.cpp

@@ -28,10 +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"

+ 1 - 0
thirdparty/README.md

@@ -416,6 +416,7 @@ Files extracted from upstream repository:
 
 Some changes have been made in order to fix Windows on ARM build errors, and
 to solve some MSVC warnings. See the patches in the `patches` directory.
+`minimp3_ex.cpp` was created to simplify the use of the single header library.
 
 
 ## miniupnpc

+ 5 - 0
thirdparty/minimp3/minimp3_ex.cpp

@@ -0,0 +1,5 @@
+#define MINIMP3_IMPLEMENTATION
+#define MINIMP3_FLOAT_OUTPUT
+#define MINIMP3_ONLY_MP3
+#define MINIMP3_NO_STDIO
+#include "minimp3_ex.h"