Compare commits

..

2 Commits

Author SHA1 Message Date
5fbb7ec01a windows boilerplate in the README 2025-07-20 14:15:59 -04:00
e1b6cdb96d update README 2025-07-18 18:53:56 -04:00
5 changed files with 163 additions and 120 deletions

View File

@ -1,6 +1,6 @@
bellatui bellatui
Copyright (c) 2026 Harvey Fong Copyright (c) 2025 Harvey Fong
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

247
README.md
View File

@ -33,134 +33,163 @@ stat
Server response: Saturn | Elapsed: 41s | Progress: 22.65% Server response: Saturn | Elapsed: 41s | Progress: 22.65%
``` ```
### Precompiled Binaries
[Windows](https://a4g4.c14.e2-1.dev/bellatui/bellatui-windows.zip)
[MacOS](https://a4g4.c14.e2-1.dev/bellatui/bellatui-mac.zip)
```
Apple Gatekeeper blocks non-notarized executables by default.
```
[Ubuntu Linux](https://a4g4.c14.e2-1.dev/bellatui/bellatui-linux.tar.gz)
```
apt install -y libsodium-dev
```
# Build # Build
``` ```
workdir/ workdir/
├── bella_engine_sdk/ ├── bella_engine_sdk/
├── libsodium/
├── libzmq/ ├── libzmq/
├── cppzmq/ ├── cppzmq/
├── efsw/ ├── efsw/
├── bellatui/ ├── belatui/
├── cmake/ (macos)
├── pkg-config/ (macos) ( additional Windows package manager dependency )
├── vcpkg/
( additional MacOS package manager dependency )
└── homebrew/
```
Download SDK for your OS and drag bella_engine_sdk into your workdir. On Windows rename unzipped folder by removing version ie bella_engine_sdk-24.6.0 -> bella_engine_sdk
- [bella_engine_sdk MacOS](https://downloads.bellarender.com/bella_engine_sdk-24.6.0.dmg)
- [bella_engine_sdk Linux](https://downloads.bellarender.com/bella_engine_sdk-24.6.0.tar.gz)
- [bella_engine_sdk Win](https://downloads.bellarender.com/bella_engine_sdk-24.6.0.zip)
## MacOS
Install Cmake to /Applications
```
curl -LO https://github.com/Kitware/CMake/releases/download/v3.31.6/cmake-3.31.6-macos-universal.dmg
open cmake-3.31.6-macos-universal.dmg
```
Install Xcode
``` ```
mkdir workdir
## MacOS x64 and arm64 cd workdir
mkdir homebrew
``` curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip-components 1 -C homebrew
# Install xcode eval "$(homebrew/bin/brew shellenv)"
xcode-select --install brew update --force --quiet
brew install libsodium
mkdir workdir && cd workdir brew install pkg-config
mkdir cmake libsodium pkg-config libzmq cppzmq efsw bellatui
# Build cmake
cd cmake
git clone https://github.com/Kitware/CMake.git .
./configure
make -j$(sysctl -n hw.ncpu)
# Build libsodium
cd ../libsodium
curl -LO https://download.libsodium.org/libsodium/releases/libsodium-1.0.20-stable.tar.gz
tar xvf libsodium-1.0.20-stable.tar.gz --strip-components=1
./configure
./configure --prefix=$(pwd)/install
make -j$(sysctl -n hw.ncpu)
install_name_tool -id @rpath/libsodium.26.dylib src/libsodium/.libs/libsodium.26.dylib
# Build pkg-config
cd ../pkg-config
curl -LO https://pkgconfig.freedesktop.org/releases/pkg-config-0.29.2.tar.gz
tar xvf pkg-config-0.29.2.tar.gz --strip-components=1
LDFLAGS="-framework CoreFoundation -framework Carbon" CFLAGS="-Wno-int-conversion" CXXFLAGS="-Wno-int-conversion" ./configure --with-internal-glib
make -j$(sysctl -n hw.ncpu)
# Build libzmq
cd ../libzmq && git clone https://github.com/zeromq/libzmq .
../cmake/bin/cmake -B ./build -DENABLE_DRAFTS=OFF -DWITH_TLS=OFF -DENABLE_CURVE=ON -DWITH_LIBSODIUM=ON -DSODIUM_INCLUDE_DIRS=../libsodium/src/libsodium/include -DSODIUM_LIBRARIES=../libsodium/src/libsodium/.libs/libsodium.dylib -DPKG_CONFIG_EXECUTABLE=../pkg-config/pkg-config
/Applications/CMake.app/Contents/bin/cmake --build ./build -j$(sysctl -n hw.ncpu)
# Build cppzmq
cd ../cppzmq && git clone https://github.com/zeromq/cppzmq .
../cmake/bin/cmake -B ./build -DZeroMQ_LIBRARY=../libzmq/build/lib/libzmq.dylib -DZeroMQ_INCLUDE_DIR=../libzmq/include
../cmake/bin/cmake --build ./build -j$(sysctl -n hw.ncpu)
# Build efsw
cd ../efsw && git clone https://github.com/SpartanJ/efsw.git .
../cmake/bin/cmake -B ./build
../cmake/bin/cmake --build ./build -j$(sysctl -n hw.ncpu)
# Get bella sdk
cd .. cd ..
curl -LO https://downloads.bellarender.com/bella_engine_sdk-25.3.0-macos.zip git clone https://github.com/zeromq/libzmq
tar -xvf bella_engine_sdk-25.3.0-macos.zip mkdir -p libzmq/build
cd libzmq/build
# Get oom /Applications/CMake.app/Contents/bin/cmake .. -DENABLE_CURVE=ON -DWITH_LIBSODIUM=../../homebrew/Cellar/libsodium/1.0.20/include/sodium -DSODIUM_INCLUDE_DIRS=~/homebrew/Cellar/libsodium/1.0.20/include -DSODIUM_LIBRARIES=~/homebrew/Cellar/libsodium/1.0.20/lib/libsodium.a
git clone https://git.indoodle.com/oomer/oom.git make -j4
cd ../..
git clone https://github.com/zeromq/cppzmq
git clone https://github.com/SpartanJ/efsw.git
mkdir -p efsw/build
cd efsw/build
/Applications/CMake.app/Contents/bin/cmake ..
make -j4
cd ../..
git clone https://github.com/oomer/bellatui.git
cd bellatui cd bellatui
git clone https://github.com/oomer/bellatui.git .
make all -j4 make all -j4
``` ```
## Ubuntu Linux x64 ## Linux
### bella_engine_sdk
``` ```
sudo apt install -y build-essential cmake mesa-vulkan-drivers libgl1 curl -O https://downloads.bellarender.com/bella_engine_sdk-24.6.0.tar.gz
mkdir workdir && cd workdir tar -xvf bella_engine_sdk-24.6.0.tar.gz
mkdir libsodium libzmq cppzmq efsw bellatui
# Build libsodium
cd libsodium
wget https://download.libsodium.org/libsodium/releases/libsodium-1.0.20-stable.tar.gz
tar xvf libsodium-1.0.20-stable.tar.gz --strip-components=1
./configure
make -j$(nproc)
# Build libzmq
cd ../libzmq && git clone https://github.com/zeromq/libzmq .
cmake -B ./build -DENABLE_DRAFTS=OFF -DWITH_TLS=OFF -DENABLE_CURVE=ON -DWITH_LIBSODIUM=../libsodium/src/libsodium/include/sodium -DSODIUM_INCLUDE_DIRS=../libsodium/src/libsodium/include -DSODIUM_LIBRARIES=../libsodium/src/libsodium/.libs/libsodium.so
cmake --build ./build -j$(nproc)
# Build cppzmq
cd ../cppzmq && git clone https://github.com/zeromq/cppzmq .
cmake -B ./build -DZeroMQ_LIBRARY=../libzmq/build/lib/libzmq.so -DZeroMQ_INCLUDE_DIR=../libzmq/include
cmake --build ./build -j$(nproc)
# Build efsw
cd ../efsw && git clone https://github.com/SpartanJ/efsw.git .
cmake -B ./build
cmake --build ./build -j$(nproc)
# Get bella sdk
cd ..
wget https://downloads.bellarender.com/bella_engine_sdk-25.3.0-linux.tar.gz
tar -xvf bella_engine_sdk-25.3.0-linux.tar.gz
# Get oom
cd ..
git clone https://git.indoodle.com/oomer/oom.git
# Build bellatui
cd ../bellatui
git clone https://github.com/oomer/bellatui.git .
make all -j$(nproc)
``` ```
[TODO] #### ubuntu dependencies
Fix in Makefile ```
cp ../libzmq/build/lib/libzmq.so.5 bin/Linux/release/ apt install -y build-essential
apt install -y libx11-dev
apt install -y libgl1-mesa-dev
apt install -y libtool
apt install -y libsodium-dev
apt install -y cmake
apt install pkg-config
```
# Windows #### redhat dependencies
https://aka.ms/vs/17/release/vs_BuildTools.exe ```
[ ] Desktop development with C++ dnf groupinstall -y "Development Tools"
dnf install -y libX11-devel
dnf install -y mesa-libGL-devel
dnf install -y libtool
dnf install -y libsodium-devel
dnf install -y cmake
dnf install -y pkg-config
```
Get bella_engine_sdk [todo] makefile needs this path for redhat
```
SODDIR = /usr/lib64/
```
### building libzmq cppzmq
```
mkdir workdir
cd workdir
git clone https://github.com/zeromq/libzmq
cd libzmq
mkdir build
cd build
//cmake .. -DENABLE_CURVE=ON -DWITH_LIBSODIUM=/usr/include/sodium
cmake .. -DENABLE_DRAFTS=OFF -DWITH_TLS=OFF -DENABLE_CURVE=ON -DWITH_LIBSODIUM=/usr/include/sodium
make -j4
cd ../..
git clone https://github.com/zeromq/cppzmq
cd cppzmq
mkdir build
cd build
cmake ..
cd ../..
git clone https://github.com/SpartanJ/efsw.git
mkdir -p efsw/build
cd efsw/build
cmake ..
make -j4
```
### compiling bellatui
```
cd ../..
git clone https://github.com/oomer/bellatui.git
cd bellatui
make all -j4
```
## Windows (win10)
- [optioanl] Install https://git-scm.com
- Download Visual Studio Community Edition 2022
- Run VisualStudioSetup.exe
- Workload = [x] Desktop developemnt with C++
- Individial components = [x] Git For Windows
#### x64 Developer console #### x64 Developer console
``` ```
cd %USERPROFILE%
mkdir workdir
cd workdir
curl -LO https://downloads.bellarender.com/bella_engine_sdk-25.3.0-win32.zip
tar -xf bella_engine_sdk-25.3.0-win32.zip
git clone https://github.com/microsoft/vcpkg.git git clone https://github.com/microsoft/vcpkg.git
cd vcpkg cd vcpkg
bootstrap-vcpkg.bat bootstrap-vcpkg.bat
@ -169,13 +198,13 @@ vcpkg.exe install cppzmq:x64-windows
vcpkg integrate install vcpkg integrate install
cd .. cd ..
git clone https://github.com/SpartanJ/efsw.git git clone https://github.com/SpartanJ/efsw.git
mkdir -p efsw/build mkdir -p efsw\build
cd efsw/build cd efsw/build
cmake .. cmake ..
msbuild efsw.sln /p:Configuration=Release /p:Platform=x64 msbuild efsw.sln /p:Configuration=Release /p:Platform=x64
cd ../.. cd ../..
git clone https://github.com/oomer/bellatui.git git clone https://git.indoodle.com/jason/bellatui.git
cd bellatui
msbuild bellatui.vcxproj /p:Configuration=release /p:Platform=x64 /p:PlatformToolset=v143 msbuild bellatui.vcxproj /p:Configuration=release /p:Platform=x64 /p:PlatformToolset=v143
``` ```

View File

@ -611,6 +611,7 @@ int DL_main(Args& args)
args.add("li", "licenseinfo", "", "prints license info"); args.add("li", "licenseinfo", "", "prints license info");
args.add("ef", "efsw", "", "mode efsw"); args.add("ef", "efsw", "", "mode efsw");
args.add("wd", "watchdir", "", "mode file warch"); args.add("wd", "watchdir", "", "mode file warch");
args.add("j", "jason", "", "print hello jason");
// Handle special command-line options // Handle special command-line options
if (args.versionReqested()) if (args.versionReqested())
@ -624,6 +625,13 @@ int DL_main(Args& args)
printf("%s", args.help("SDK Test", fs::exePath(), bellaSdkVersion().toString()).buf()); printf("%s", args.help("SDK Test", fs::exePath(), bellaSdkVersion().toString()).buf());
return 0; return 0;
} }
// print hello jason
if (args.have("--jason")) {
std::cout << "Hello Jason!" << std::endl;
return 0;
}
std::string path="."; std::string path=".";
if (args.have("--watchdir")) { if (args.have("--watchdir")) {

View File

@ -14,6 +14,7 @@
<VCProjectVersion>16.0</VCProjectVersion> <VCProjectVersion>16.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword> <Keyword>Win32Proj</Keyword>
<ProjectGuid>{7AEA0690-36B7-4596-9DEE-C3AB3C11D282}</ProjectGuid> <ProjectGuid>{7AEA0690-36B7-4596-9DEE-C3AB3C11D282}</ProjectGuid>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup> </PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='PseudoDebug|x64'" Label="Configuration"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='PseudoDebug|x64'" Label="Configuration">
@ -100,11 +101,19 @@
echo libzmq-mt-4_3_5.dll copied &amp; echo libzmq-mt-4_3_5.dll copied &amp;
copy "$(ProjectDir)..\vcpkg\installed\x64-windows\bin\libsodium.dll" "$(TargetDir)" &amp; copy "$(ProjectDir)..\vcpkg\installed\x64-windows\bin\libsodium.dll" "$(TargetDir)" &amp;
echo libsodium.dll copied &amp; echo libsodium.dll copied &amp;
copy "$(ProjectDir)..\bella_engine_sdk\lib\dl_usd_ms.dll" "$(TargetDir)" &amp;
echo dl_usd_ms.dll copied &amp;
echo Post-build event finished</Command> echo Post-build event finished</Command>
</PostBuildEvent> </PostBuildEvent>
<ClCompile>
<LanguageStandard Condition="'$(Configuration)|$(Platform)'=='PseudoDebug|x64'">stdcpp17</LanguageStandard>
</ClCompile>
<ClCompile>
<LanguageStandard Condition="'$(Configuration)|$(Platform)'=='Release|x64'">stdcpp17</LanguageStandard>
</ClCompile>
</ItemDefinitionGroup> </ItemDefinitionGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="..\bella_engine_sdk\src\bella_sdk\api.h" /> <ClInclude Include="..\bella_engine_sdk\src\bella_sdk\api.h" />
<ClInclude Include="..\bella_engine_sdk\src\bella_sdk\bella_engine.h" /> <ClInclude Include="..\bella_engine_sdk\src\bella_sdk\bella_engine.h" />
<ClInclude Include="..\bella_engine_sdk\src\bella_sdk\bella_nodeapi.h" /> <ClInclude Include="..\bella_engine_sdk\src\bella_sdk\bella_nodeapi.h" />
<ClInclude Include="..\bella_engine_sdk\src\bella_sdk\bella_scene.h" /> <ClInclude Include="..\bella_engine_sdk\src\bella_sdk\bella_scene.h" />
@ -158,4 +167,3 @@
<ImportGroup Label="ExtensionTargets"> <ImportGroup Label="ExtensionTargets">
</ImportGroup> </ImportGroup>
</Project> </Project>

View File

@ -55,7 +55,7 @@ else
ARCH_FLAGS = -m64 -D_FILE_OFFSET_BITS=64 ARCH_FLAGS = -m64 -D_FILE_OFFSET_BITS=64
# Linking flags # Linking flags
LINKER_FLAGS = $(ARCH_FLAGS) -fvisibility=hidden -O3 -Wl,-rpath,'$$ORIGIN' -Wl,-rpath,'$$ORIGIN/lib' LINKER_FLAGS = $(ARCH_FLAGS) -fvisibility=hidden -O3 -Wl,-rpath,'$$ORIGIN' -Wl,-rpath,'$$ORIGIN/lib' -weak_library $(LIBDIR)/libvulkan.dylib
# Platform-specific libraries # Platform-specific libraries
#PLIST_LIB = -lplist #PLIST_LIB = -lplist
@ -66,10 +66,9 @@ endif
INCLUDE_PATHS = -I$(BELLA_SDK_PATH)/src -I$(LIBEFSW_PATH)/include -I$(LIBEFSW_PATH)/src -I$(LIBZMQ_PATH)/include -I$(CPPZMQ_PATH) INCLUDE_PATHS = -I$(BELLA_SDK_PATH)/src -I$(LIBEFSW_PATH)/include -I$(LIBEFSW_PATH)/src -I$(LIBZMQ_PATH)/include -I$(CPPZMQ_PATH)
SDK_LIB_PATH = $(BELLA_SDK_PATH)/lib SDK_LIB_PATH = $(BELLA_SDK_PATH)/lib
SDK_LIB_FILE = lib$(BELLA_SDK_NAME).$(SDK_LIB_EXT) SDK_LIB_FILE = lib$(BELLA_SDK_NAME).$(SDK_LIB_EXT)
USD_SDK_LIB_FILE = libdl_usd_ms.$(SDK_LIB_EXT) EFSW_LIB_PATH = $(LIBEFSW_PATH)/build
EFSW_LIB_PATH = $(LIBEFSW_PATH)/build
#EFSW_LIB_FILE = lib$(EFSW_LIB_NAME) #EFSW_LIB_FILE = lib$(EFSW_LIB_NAME)
ZMQ_LIB_PATH = $(LIBZMQ_PATH)/build/lib ZMQ_LIB_PATH = $(LIBZMQ_PATH)/build/lib
# Library flags # Library flags
LIB_PATHS = -L$(SDK_LIB_PATH) -L$(EFSW_LIB_PATH) -L$(ZMQ_LIB_PATH) LIB_PATHS = -L$(SDK_LIB_PATH) -L$(EFSW_LIB_PATH) -L$(ZMQ_LIB_PATH)
LIBRARIES = -l$(BELLA_SDK_NAME) -lm -ldl -lefsw -lzmq LIBRARIES = -l$(BELLA_SDK_NAME) -lm -ldl -lefsw -lzmq
@ -101,7 +100,6 @@ $(OUTPUT_FILE): $(OBJECT_FILES)
$(CXX) -o $@ $(OBJECT_FILES) $(LINKER_FLAGS) $(LIB_PATHS) $(LIBRARIES) $(CXX) -o $@ $(OBJECT_FILES) $(LINKER_FLAGS) $(LIB_PATHS) $(LIBRARIES)
@echo "Copying libraries to $(BIN_DIR)..." @echo "Copying libraries to $(BIN_DIR)..."
@cp $(SDK_LIB_PATH)/$(SDK_LIB_FILE) $(BIN_DIR)/$(SDK_LIB_FILE) @cp $(SDK_LIB_PATH)/$(SDK_LIB_FILE) $(BIN_DIR)/$(SDK_LIB_FILE)
@cp $(SDK_LIB_PATH)/$(USD_SDK_LIB_FILE) $(BIN_DIR)/$(USD_SDK_LIB_FILE)
# @cp $(LZFSE_BUILD_DIR)/$(LZFSE_LIB_NAME) $(BIN_DIR)/$(LZFSE_LIB_NAME) # @cp $(LZFSE_BUILD_DIR)/$(LZFSE_LIB_NAME) $(BIN_DIR)/$(LZFSE_LIB_NAME)
# @cp $(PLIST_LIB_DIR)/$(PLIST_LIB_NAME) $(BIN_DIR)/$(PLIST_LIB_NAME) # @cp $(PLIST_LIB_DIR)/$(PLIST_LIB_NAME) $(BIN_DIR)/$(PLIST_LIB_NAME)
@cp $(EFSW_LIB_PATH)/$(EFSW_LIB_NAME) $(BIN_DIR)/$(EFSW_LIB_NAME) @cp $(EFSW_LIB_PATH)/$(EFSW_LIB_NAME) $(BIN_DIR)/$(EFSW_LIB_NAME)