From ad816f16dd6bc3a278435f9097518b22132b1af2 Mon Sep 17 00:00:00 2001 From: weil Date: Mon, 29 Jan 2024 10:50:58 +0100 Subject: [PATCH] Add visual studio project generation to scons --- SConstruct | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/SConstruct b/SConstruct index 7aec170..a2e75c5 100644 --- a/SConstruct +++ b/SConstruct @@ -1,24 +1,29 @@ #!/usr/bin/env python from glob import glob from pathlib import Path -from SCons.Script import MSVSProject +from SCons.Script import * +# Initialize environment and SCons script for godot-cpp env = SConscript("godot-cpp/SConstruct") +env.Tool('msvs') -# Sources +# Sources and include paths env.Append(CPPPATH=["src/"]) sources = Glob("src/*.cpp") +sources += Glob("src/platform/win32/*.cpp") -# Opus (Windows x64) -env.Append(CPPPATH=['#3rdparty/opus/include', '#3rdparty/speex/include']) -env.Append(LIBPATH=['#3rdparty/opus/lib', '#3rdparty/speex/lib']) -env.Append(LIBS=['opus', 'libspeex', 'libspeexdsp']) +# Append additional library paths and libraries for Opus, Speex, and vpx +env.Append(CPPPATH=['#3rdparty/opus/include', '#3rdparty/speex/include', '#3rdparty/libvpx/include']) +env.Append(LIBPATH=['#3rdparty/opus/lib', '#3rdparty/speex/lib', '#3rdparty/libvpx/lib/x64']) +env.Append(LIBS=['opus', 'libspeex', 'libspeexdsp', 'vpx']) +# Determine extension and addon path (extension_path,) = glob("export/addons/*/*.gdextension") addon_path = Path(extension_path).parent project_name = Path(extension_path).stem debug_or_release = "release" if env["target"] == "template_release" else "debug" +# Generate library based on platform if env["platform"] == "macos": library = env.SharedLibrary( "{0}/lib/lib{1}.{2}.{3}.framework/{1}.{2}.{3}".format( @@ -42,4 +47,19 @@ else: source=sources, ) -Default(library) +srcs = [] +for s in sources: + srcs.append(s.abspath) + + +msvs_project = env.MSVSProject( + target = project_name + env['MSVSPROJECTSUFFIX'], + srcs = srcs, + include_dirs = env['CPPPATH'], + lib_dirs = env['LIBPATH'], + libs = env['LIBS'], + variant = 'Debug|x64', +) + +# Make sure the default build includes the Visual Studio project +Default(library, msvs_project)