#!/usr/bin/env python env = SConscript("../SConstruct") # For the reference: # - CCFLAGS are compilation flags shared between C and C++ # - CFLAGS are for C-specific compilation flags # - CXXFLAGS are for C++-specific compilation flags # - CPPFLAGS are for pre-processor flags # - CPPDEFINES are for pre-processor defines # - LINKFLAGS are for linking flags # tweak this if you want to use different folders, or more folders, to store your source code in. env.Append(CPPPATH=["src/"]) sources = Glob("src/*.cpp") if env["target"] in ["editor", "template_debug"]: doc_data = env.GodotCPPDocData("src/gen/doc_data.gen.cpp", source=Glob("doc_classes/*.xml")) sources.append(doc_data) library_targets = env.SharedLibrary( "project/bin/libgdexample{}{}".format(env["suffix"], env["SHLIBSUFFIX"]), source=sources, ) if env["platform"] == "macos" or env["platform"] == "ios": # The app store requires signed .framework bundles for dependencies. # We do not sign the test framework bundles, but for consistency # (and testing) we will always generate the .framework anyway. framework_tool = Tool("apple_framework", toolpath=["../tools"]) framework_name = f"gdexample.{env['platform']}.{env['target']}" library_targets = framework_tool.generate( f"project/bin/{framework_name}.framework", env=env, source=library_targets, plist_entries=dict( CFBundleIdentifier=f"org.godotengine.{framework_name}", ) ) # Keep the final build intact for as long as possible. env.Precious(library_targets) env.NoCache(library_targets) Default(library_targets)