summaryrefslogtreecommitdiff
path: root/modules/navigation/SCsub
diff options
context:
space:
mode:
Diffstat (limited to 'modules/navigation/SCsub')
-rw-r--r--modules/navigation/SCsub63
1 files changed, 63 insertions, 0 deletions
diff --git a/modules/navigation/SCsub b/modules/navigation/SCsub
new file mode 100644
index 0000000000..22b5509b32
--- /dev/null
+++ b/modules/navigation/SCsub
@@ -0,0 +1,63 @@
+#!/usr/bin/env python
+
+Import("env")
+Import("env_modules")
+
+env_navigation = env_modules.Clone()
+
+# Thirdparty source files
+
+thirdparty_obj = []
+
+# Recast Thirdparty source files
+if env["builtin_recast"]:
+ thirdparty_dir = "#thirdparty/recastnavigation/Recast/"
+ thirdparty_sources = [
+ "Source/Recast.cpp",
+ "Source/RecastAlloc.cpp",
+ "Source/RecastArea.cpp",
+ "Source/RecastAssert.cpp",
+ "Source/RecastContour.cpp",
+ "Source/RecastFilter.cpp",
+ "Source/RecastLayers.cpp",
+ "Source/RecastMesh.cpp",
+ "Source/RecastMeshDetail.cpp",
+ "Source/RecastRasterization.cpp",
+ "Source/RecastRegion.cpp",
+ ]
+ thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
+
+ env_navigation.Prepend(CPPPATH=[thirdparty_dir + "Include"])
+
+ env_thirdparty = env_navigation.Clone()
+ env_thirdparty.disable_warnings()
+ env_thirdparty.add_source_files(thirdparty_obj, thirdparty_sources)
+
+# RVO Thirdparty source files
+if env["builtin_rvo2"]:
+ thirdparty_dir = "#thirdparty/rvo2/"
+ thirdparty_sources = [
+ "Agent.cpp",
+ "KdTree.cpp",
+ ]
+ thirdparty_sources = [thirdparty_dir + file for file in thirdparty_sources]
+
+ env_navigation.Prepend(CPPPATH=[thirdparty_dir])
+
+ env_thirdparty = env_navigation.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_navigation.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)