SCsub 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #!/usr/bin/env python
  2. Import("env")
  3. Import("env_modules")
  4. env_basisu = env_modules.Clone()
  5. # Thirdparty source files
  6. thirdparty_obj = []
  7. # Not unbundled so far since not widespread as shared library
  8. thirdparty_dir = "#thirdparty/basis_universal/"
  9. tool_sources = [
  10. "basisu_astc_decomp.cpp",
  11. "basisu_backend.cpp",
  12. "basisu_basis_file.cpp",
  13. "basisu_comp.cpp",
  14. "basisu_enc.cpp",
  15. "basisu_etc.cpp",
  16. "basisu_frontend.cpp",
  17. "basisu_global_selector_palette_helpers.cpp",
  18. "basisu_gpu_texture.cpp",
  19. "basisu_pvrtc1_4.cpp",
  20. "basisu_resample_filters.cpp",
  21. "basisu_resampler.cpp",
  22. "basisu_ssim.cpp",
  23. "lodepng.cpp",
  24. ]
  25. tool_sources = [thirdparty_dir + file for file in tool_sources]
  26. transcoder_sources = [thirdparty_dir + "transcoder/basisu_transcoder.cpp"]
  27. # Treat Basis headers as system headers to avoid raising warnings. Not supported on MSVC.
  28. if not env.msvc:
  29. env_basisu.Append(
  30. CPPFLAGS=["-isystem", Dir(thirdparty_dir).path, "-isystem", Dir(thirdparty_dir + "transcoder").path]
  31. )
  32. else:
  33. env_basisu.Prepend(CPPPATH=[thirdparty_dir, thirdparty_dir + "transcoder"])
  34. if env["target"] == "debug":
  35. env_basisu.Append(CPPFLAGS=["-DBASISU_DEVEL_MESSAGES=1", "-DBASISD_ENABLE_DEBUG_FLAGS=1"])
  36. env_thirdparty = env_basisu.Clone()
  37. env_thirdparty.disable_warnings()
  38. if env["tools"]:
  39. env_thirdparty.add_source_files(thirdparty_obj, tool_sources)
  40. env_thirdparty.add_source_files(thirdparty_obj, transcoder_sources)
  41. env.modules_sources += thirdparty_obj
  42. # Godot source files
  43. module_obj = []
  44. env_basisu.add_source_files(module_obj, "*.cpp")
  45. env.modules_sources += module_obj
  46. # Needed to force rebuilding the module files when the thirdparty library is updated.
  47. env.Depends(module_obj, thirdparty_obj)