6fc0912137
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.
31 lines
717 B
Python
31 lines
717 B
Python
#!/usr/bin/env python
|
|
|
|
Import("env")
|
|
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
|
|
|
|
|
|
# Godot source files
|
|
|
|
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)
|