diff --git a/BUILD.md b/BUILD.md
index e897656..392b9cf 100755
--- a/BUILD.md
+++ b/BUILD.md
@@ -41,13 +41,21 @@ editing a `.config` file.
# BUILDING
-The file `makeBullets.sh` is a script that encompasses these steps.
+This "official" build scripts are called from `.github/workflows/build-dotnet6.yml`
+which builds all the pieces using the Github action system.
+
+For Linux, the script `makeBullets.sh` has the following build steps captured
+in one script.
+
+To build by hand, several scripts that are used in `build.yml`
+are available. This builds the latest version of BulletSim with the latest
+version of the Bullet physics engine.
1) Fetch the latest version from GitHub: https://github.com/bulletphysics/bullet3.
```
cd trunk/unmanaged/BulletSim
- git clone --depth 1 https://github.com/bulletphysics/bullet3.git
+ git clone --depth 1 --single-branch https://github.com/bulletphysics/bullet3.git
```
2) Apply all the patches for bullet:
@@ -67,19 +75,16 @@ and patching the 2.86 version of Bullet.
a) Windows:
- Windows not done yet
-
- The Bullet distribution has an instance of PreMake (https://premake.github.io/)
- to build the Visual Studio project files.
- The script buildBulletVS.bat will call premake and generate the project files.
- As of August 2017, premake version 4 worked but would only generate for VS2010 (v100).
- I build the BulletSim libraries with VS2012 (v110) for downward compatibility.
- I let VS2012 upgrade the VS2010 project files for VS2012.
+ Install CMake for Windows.
+
+ `buildBulletCMake.ps1` builds the Bullet physics engine. Note that this
+ is a PowerShell script.
- Once the project files have been built, open
- "bullet-2/build3/vs2010/0_Bullet3Solution.sln" with VS2012
- and do a batch compile for a Release version for 'Win32' and 'x64'.
-
+ If one can not install `CMake` but has Visual Studio, `buildBulletVS.bat` will
+ build `bullet3/build3/vs2010/0Bullet3Solution.sln` which can be used by
+ any modern Visual Studio to build the Bullet physics engine.
+ Note that after this step, the Bullet physics engine binaries will be in
+ the `lib` directory and the include files must be copied into `include/`.
b) Linux and IOS:
@@ -94,21 +99,25 @@ and patching the 2.86 version of Bullet.
4) Build BulletSim
a) Windows:
- Windows not done yet
-
- Use VS2012 to open "BulletSim.sln". Build Release version for 'Win32'
- and 'x64'. The resulting DLLs will be in "Release/BulletSim.dll"
- and "x64/Release/BulletSim.dll". These files are copied to
- "bin/lib32/BulletSim.dll" and "bin/lib64/BulletSim.dll" in the
- OpenSimulator execution tree.
-
+
+ Generate version file information:
+
+```
+ bash buildVersionInfo.sh
+```
+
+ Build BulletSim:
+
+```
+ .\buildBulletSim.ps1
+```
b) Linux and IOS:
Run BulletSim compile and link script:
```
- ./makeBulletSim.sh
+ ./buildBulletSim.sh
```
This builds a file with a name like: `libBulletSim-3.25-20230111-x86_64.so`.
diff --git a/buildBulletVS.bat b/buildBulletVS.bat
index 8c42987..18f7973 100755
--- a/buildBulletVS.bat
+++ b/buildBulletVS.bat
@@ -2,3 +2,4 @@
cd bullet3/build3
.\premake4.exe --no-clsocket --no-demos --no-enet --no-gtest --no-test --noopengl3 --os=windows --targetdir=../lib vs2010
+
diff --git a/buildVersionInfo.sh b/buildVersionInfo.sh
new file mode 100755
index 0000000..161dd38
--- /dev/null
+++ b/buildVersionInfo.sh
@@ -0,0 +1,25 @@
+#! /bin/bash
+# Script for building "BulletSimVersionInfoFile" which contains application and git
+# version information.
+# Also sets this information into the environment
+# This file exists as an alternative to the building of the version info file in
+# .github/workflows/build.yml
+
+export BuildDate=$(date +%Y%m%d)
+
+export BulletSimVersion=$(cat VERSION)
+export BulletSimGitVersion=$(git rev-parse HEAD)
+export BulletSimGitVersionShort=$(git rev-parse --short HEAD)
+cd bullet3
+export BulletVersion=$(cat VERSION)
+export BulletGitVersion=$(git rev-parse HEAD)
+export BulletGitVersionShort=$(git rev-parse --short HEAD)
+
+cd ..
+echo "BuildDate=$BuildDate" > BulletSimVersionInfo
+echo "BulletSimVersion=$BulletSimVersion" >> BulletSimVersionInfo
+echo "BulletSimGitVersion=$BulletSimGitVersion" >> BulletSimVersionInfo
+echo "BulletSimGitVersionShort=$BulletSimGitVersionShort" >> BulletSimVersionInfo
+echo "BulletVersion=$BulletVersion" >> BulletSimVersionInfo
+echo "BulletGitVersion=$BulletGitVersion" >> BulletSimVersionInfo
+echo "BulletGitVersionShort=$BulletGitVersionShort" >> BulletSimVersionInfo
diff --git a/makeBullets.sh b/makeBullets.sh
index 40c9fcf..9f3d947 100755
--- a/makeBullets.sh
+++ b/makeBullets.sh
@@ -12,7 +12,7 @@
# This also applies the BulletSim patches to the Bullet sources.
# Set these values to 'yes' or 'no' to enable/disable fetching and building
-FETCHBULLETSOURCES=${FETCHBULLETSOURCES:-yes}
+FETCHBULLETSOURCES=${FETCHBULLETSOURCES:-no}
BUILDBULLET2=${BUILDBULLET2:-no} # usually don't need the old version
BUILDBULLET3=${BUILDBULLET3:-yes}
@@ -52,6 +52,29 @@ fi
cd "$BASE"
+echo "=== Setting environment variables"
+export BuildDate=$(date +%Y%m%d)
+export BulletSimVersion=$(cat VERSION)
+export BulletSimGitVersion=$(git rev-parse HEAD)
+export BulletSimGitVersionShort=$(git rev-parse --short HEAD)
+cd bullet3
+export BulletVersion=$(cat VERSION)
+export BulletGitVersion=$(git rev-parse HEAD)
+export BulletGitVersionShort=$(git rev-parse --short HEAD)
+
+echo "=== Creating version information file"
+cd "$BASE"
+rm BulletSimVersionInfo
+touch BulletSimVersionInfo
+echo "BuildDate=$BuildDate" > BulletSimVersionInfo
+echo "BulletSimVersion=$BulletSimVersion" >> BulletSimVersionInfo
+echo "BulletSimGitVersion=$BulletSimGitVersion" >> BulletSimVersionInfo
+echo "BulletSimGitVersionShort=$BulletSimGitVersionShort" >> BulletSimVersionInfo
+echo "BulletVersion=$BulletVersion" >> BulletSimVersionInfo
+echo "BulletGitVersion=$BulletGitVersion" >> BulletSimVersionInfo
+echo "BulletGitVersionShort=$BulletGitVersionShort" >> BulletSimVersionInfo
+cat BulletSimVersionInfo
+
echo "=== removing libBulletSim-*"
rm libBulletSim-*.so