diff --git a/SConscript b/SConscript
index d2a0c8e..027f3a3 100644
--- a/SConscript
+++ b/SConscript
@@ -119,6 +119,14 @@ def _inject_dependency(dependency, kwargs: dict, add_sources: bool = True) -> No
_inject_list(kwargs, dependency.cook_result, 'LIBS')
for depdep in dependency.depdeps:
_inject_dependency(depdep, kwargs)
+ elif isinstance(dependency, _Target):
+ _inject_list(kwargs, dependency.kwargs, 'CPPPATH')
+ _inject_list(kwargs, dependency.kwargs, 'CPPDEFINES')
+ _inject_list(kwargs, dependency.kwargs, 'LIBPATH')
+ _inject_list(kwargs, dependency.kwargs, 'LIBS')
+ _inject_list(kwargs, {'LIBS': [dependency]}, 'LIBS')
+ for depdep in dependency.dependencies:
+ _inject_dependency(depdep, kwargs)
def _rglob(env: Environment, root_path: str, pattern: str, **kwargs):
result_nodes = []
@@ -335,10 +343,11 @@ def _wrap_builder(builder, target_type: TargetType):
if version_spec == {}:
dep_target = _find_target(env, name)
if dep_target is not None and dep_target.target_type == TargetType.LIBRARY:
- if 'LIBS' in kwargs:
- kwargs['LIBS'].append(dep_target)
- else:
- kwargs['LIBS'] = [dep_target]
+ #if 'LIBS' in kwargs:
+ # kwargs['LIBS'].append(dep_target)
+ #else:
+ # kwargs['LIBS'] = [dep_target]
+ target_dependencies.append(dep_target)
continue
target_dependencies.append(_add_dependency(env, name, _parse_version_spec(version_spec)))
@@ -747,6 +756,7 @@ env.Append(CPPDEFINES = [])
env.Append(LINKFLAGS = [])
# init SPP environment variables
+env['SPP_DIR'] = _spp_dir.abspath
env['SPP_TARGETS'] = []
env['SPP_DEFAULT_TARGETS'] = []
env['SPP_TARGET_DEPENDENCIES'] = []
diff --git a/addons/gitbranch.py b/addons/gitbranch.py
index 7808807..a30ed74 100644
--- a/addons/gitbranch.py
+++ b/addons/gitbranch.py
@@ -35,7 +35,9 @@ def _git_branch(env: Environment, repo_name: str, remote_url: str, git_ref: str
else:
print(f'Not updating git repository {worktree_dir} as it is not on a branch.')
return {
- 'checkout_root': worktree_dir
+ 'checkout_root': worktree_dir,
+ 'repo': repo,
+ 'origin': origin
}
def _git_tags(env: Environment, repo_name: str, remote_url: str, force_fetch: bool = False) -> 'list[str]':
diff --git a/recipes/SDL/recipe.py b/recipes/SDL/recipe.py
index fc4b731..f351c1a 100644
--- a/recipes/SDL/recipe.py
+++ b/recipes/SDL/recipe.py
@@ -1,4 +1,5 @@
+import os
import platform
import re
from SCons.Script import *
@@ -7,6 +8,13 @@ from SCons.Script import *
def _git_cook(env: Environment, repo: dict) -> dict:
checkout_root = repo['checkout_root']
+ if os.path.exists(os.path.join(repo['checkout_root'], 'cmake', 'GetGitRevisionDescription.cmake')):
+ try:
+ repo['repo'].git.apply('--unsafe-paths', '--directory', repo['checkout_root'], os.path.join(env['SPP_DIR'], 'recipes', 'SDL', 'fix_sdl3_from_worktree.patch'))
+ except:
+ # either already applied or not applicable anymore
+ pass
+
build_result = env.CMakeProject(project_root=checkout_root, generate_args = ['-DSDL_STATIC=ON', '-DSDL_SHARED=OFF'])
libs = []
if platform.system() == 'Windows':
diff --git a/util/clion_project_template/tools/External Tools.xml.jinja b/util/clion_project_template/tools/External Tools.xml.jinja
index 710db31..faf4cd5 100644
--- a/util/clion_project_template/tools/External Tools.xml.jinja
+++ b/util/clion_project_template/tools/External Tools.xml.jinja
@@ -5,7 +5,7 @@
-
+
@@ -18,11 +18,4 @@
{% endfor %}
{% endfor %}
-
-
-
-
-
-
-