1, 前期准备
Scons是一个开放源码、以Python语言编码的自动化构建工具。可以将SCons看作是经典Make实用程序的改进的、跨平台的替代品,其集成功能类似于autoconf/automake和编译器缓存(如ccache)。 [1]
scons是一个Python写的自动化构建工具,从构建这个角度说,它跟GNU make是同一类的工具。它是一种改进,并跨平台的gnu make替代工具,其集成功能类似于autoconf/automake 。scons是一个更简便,更可靠,更高效的编译软件。
https://sourceforge.net/projects/scons/files/latest/download
C:\Users\Dell\AppData\Local\Programs\Python\Python39 安装位置
python setup.py install
执行命令 python setup.py install 。这将会编译SCons,安装scons脚本到python目录(C:\Python27\Scripts),同时会安装SCons编译引擎到python使用的库目录(C:\Python27\scons)。
查看
执行scons -v 测试是否安装成功。
scons platfrom=list
git clone https://github.com/godotengine/godot.git
git config --global http.sslVerify "false" 要多试几次呀
另外版本
git命令查看当前分支:git branch
git branch -a
列出本地分支和远程分支
git命令切换分支:git checkout 分支名
git checkout 3.3
git pull
附:git checkout -b branchname 创建并切换到新的分支.
这个命令是将git branch newbranch和git checkout newbranch合在一起的结果。
2, 编译代码
scons -c
清空编译
scons platform=windows
可以指定CPU线程数来加速构建
scons -j6 platform=windows
您可以通过使用 vsproj=yes 参数运行SCons来创建Visual Studio解决方案, 如下所示:
scons p=windows vsproj=yes
开始菜单打开Developer Command Prompt for VS 2017
进入Godot3根目录,运行
scons p=windows vsproj=yes
scons p=windows vsproj=yes bits=32
scons p=windows vs_proj=yes bits=32 target=release_debug
scons platform=javascript tools=yes threads_enabled=yes target=release_debug
附加
scons -j6 platform=windows vs_proj=yes target=release_debug
-j6表示利用CPU的6个核心,这项可根据实际情况选择
platform=windows编译的目标平台
vs_proj=yes是否创建VS项目
target=release_debug官方文档说这个参数用于打包生产环境的引擎,更小(50多兆)而且更快,如果不加这个参数,默认为target=debug生成的包体大小为100多爪,
3,编译结果
点击New Project按钮来创建新项目。这将弹出一个新窗口
输入项目名称 FirstGodotProject
点击Create Folder按钮来创建一个新的文件夹
点击Create & Edit按钮启动项目
创建第一个场景
创建角色
好了,我们有了主场景。接下来,我们继续创建角色场景,它将拥有所有需要的节点和对应的脚本。
echo Starting SCons && cmd /V /C set "plat=$(PlatformTarget)" ^& (if "$(PlatformTarget)"=="x64" (set "plat=x86_amd64")) ^& set "tools=True" ^& (if "$(Configuration)"=="release" (set "tools=no")) ^& call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" !plat! ^& scons --directory="$(ProjectDir.TrimEnd('\'))" platform=windows target=$(Configuration) progress=no tools=!tools! -j1
echo Starting SCons && cmd /V /C set "plat=$(PlatformTarget)" ^& (if "$(PlatformTarget)"=="x64" (set "plat=x86_amd64")) ^& set "tools=True" ^& (if "$(Configuration)"=="release" (set "tools=no")) ^& call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" !plat! ^& scons vsproj=yes --directory="$(ProjectDir.TrimEnd('\'))" platform=windows target=$(Configuration) progress=no tools=!tools! -j1
echo Starting SCons && cmd /V /C set "plat=$(PlatformTarget)" ^& (if "$(PlatformTarget)"=="x64" (set "plat=x86_amd64")) ^& set "tools=True" ^& (if "$(Configuration)"=="release" (set "tools=no")) ^& call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" !plat! ^& scons --clean --directory="$(ProjectDir.TrimEnd('\'))" platform=windows target=$(Configuration) progress=no tools=!tools! -j1
4,编译native库
scons p=windows regenerate_bindings=yes VERBOSE=1
scons platform=windows generate_bindings=yes -j2 bits=32 target=debug
要编译成release版本我直接修改 gdnative下的SConstruct 文件 注释一行,增加一行:
#opts.Add(EnumVariable('target', 'Compilation target', 'debug', ('debug', 'release')));
opts.Add(EnumVariable('target', 'Compilation target', 'release', ('debug', 'release')));
5,godot模板编译
官方下载 Godot_v3.3.3-stable_export_templates.tpz
a)创建Windows导出模板
Windows导出模板是通过编译不带编辑器的godot创建的,其标志如下:
编译:
C:\godot> scons platform=windows tools=no target=release_debug bits=32
C:\godot> scons platform=windows tools=no target=release bits=32
C:\godot> scons platform=windows tools=no target=release_debug bits=64
C:\godot> scons platform=windows tools=no target=release bits=64
如果计划替换标准导出模板,请将其复制到以下位置
路径: C:/Users/Dell/AppData\Roaming\Godot\templates\
windows_32_debug.exe
windows_32_release.exe
windows_64_debug.exe
windows_64_release.exe
测试:对于godot3.5Tool增加接口
增加Error _OS::shell_embed(String p_uri) 接口:
b)编译为 WebAssembly
在执行编译之前,需要选配置一下环境变量 emsdk的
或进入emsdk目录,执行emsdk_env.bat后,再进入godot目录,开始编译
scons platform=javascript tools=no target=release javascript_eval=no
scons platform=javascript tools=no target=release_debug javascript_eval=no
引擎将由 Emscripten 编译为 WebAssembly。完成后,生成的文件将放在 bin 子目录中。针对发布版本的名字是 godot.javascript.opt.zip,或针对调试版本的是 godot.javascript.opt.debug.zip。
改名:
webassembly_release.zip
webassembly_debug.zip
默认的导出模板不包括线程和 GDNative 支持
你可以使用选项 threads_enabled=yes 或 gdnative_enabled=yes 构建导出模板,以启用线程或 GDNative 支持:
scons platform=javascript tools=no threads_enabled=yes target=release
scons platform=javascript tools=no threads_enabled=yes target=release_debug
scons platform=javascript tools=no gdnative_enabled=yes target=release
scons platform=javascript tools=no gdnative_enabled=yes target=release_debug
压缩文件重命名为 webassembly_release_threads.zip 和 webassembly_release_gdnative.zip ,用于发布模板
webassembly_debug_threads.zip 和 webassembly_debug_gdnative.zip 为调试模板
还可以构建编辑器
scons platform=javascript tools=yes threads_enabled=yes target=release_debug
godot.javascript.opt.tools.threads.zip。你可以将 zip 内容上传到你的网络服务器上,然后用浏览器访问它来使用编辑器。
Emscripten 是一种基于LLVM的编译器,理论上能够将任何能够生成LLVM位码的代码编译成javascript的严格子集asm.js
git clone https://github.com/emscripten-core/emsdk.git
cd emsdk
.\emsdk.bat update
.\emsdk.bat install latest
.\emsdk.bat activate latest 设置当前 sdk
.\emsdk_env.bat 当前环境path
.\emcc.bat -v 测试
使用: emcc是 Emscripten 的编译命令
.\emcc.bat helloworld.cpp
编译后将生成a.out.js和a.out.wasm两个文件
node a.out.js 成功
c)安卓类
导出环境,下载相应
https://www.androiddevtools.cn/
SDK Platform-Tools:这是 adb, fastboot 等工具包
Build-Tools 这是Android开发所需的Build-Tools
SDK:这是Android开发所需的sdk
管理工具目录结构:
tools目录:包括测试、调试、第三方工具。模拟器、数据管理工具等。(必须,只需下载一个版本,一般选最新版本)
build-tools目录:编译工具目录,包含了转化为davlik虚拟机的编译工具 (必须,可以安装多个版本)
platform-tools目录:包含开发app的平台依赖的开发和调试工具。adb一类的 (必须,只需下载一个版本,一般选最新版本)
platforms 目录:包括android的平台。 (必须):对应平台的开发工具,需要在哪个版本的平台下开发就下载哪个。
sources目录:android sdk的源码目录
system-images目录:编译好的系统映像。模拟器可以直接加载。
通过命令行工具下载上面程序
sdkmanager --sdk_root=D:\androidSDK "platform-tools" "build-tools;30.0.3" "platforms;android-31" "cmdline-tools;latest" "cmake;3.10.2.4988404" "ndk;21.4.7075529"
首先用JDK产生keystore
首先进入jdk的目录,安装目录C:\Program Files\Java\jre-9.0.1\bin
keytool -genkey -alias test.keystore -keyalg RSA -validity 20000 -keystore test.keystore
用户:test.keystore
密 421004
在编辑中设置sdk的路径
D:\androidSDK
及keystore相关信息
用户:test.keystore
密 421004
然后导出
******************************
编译
6,编译另一个工具 blender
a) 源代码
cd C:\blender-git
git clone git://git.blender.org/blender.git
b)下载 Blender 库:
cd C:\blender-git\blender
make update
预编译库需要 Subversion。命令行SlikSVN就足够
svn checkout https://svn.blender.org/svnroot/bf-blender/trunk/lib/win64_vc15 lib/win64_vc15
git submodule update --init --recursive
git clone 指定分支:git clone -b 分支名称 项目地址
假设分支名称为test,则:
git clone -b test 项目地址
git clone -b release/28.0 https://github.com/obsproject/obs-studio.git
https://github.com/CoSMoSoftware/OBS-studio-webrtc/wiki
https://awesomeopensource.com/project/CoSMoSoftware/OBS-studio-webrtc
1,执行git reflog命令查看你的历史变更记录;
2、git reset --hard 2aee3f(拉代码之前的提交记录)
git reset 如果想恢复到之前某个提交的版本,且那个版本之后提交的版本我们都不要了,就可以用这种方法
git revert是用于“反做”某一个版本,以达到撤销该版本的修改的目的
如果我们想撤销之前的某一版本,但是又想保留该目标版本后面的版本,记录下这整个版本变动流程,就可以用这种方法