forked from oomer/bellatui
Compare commits
3 Commits
experiment
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 4420912b17 | |||
| 7e611f3bbc | |||
| 9cd06121e2 |
2
LICENSE
2
LICENSE
@ -1,6 +1,6 @@
|
||||
bellatui
|
||||
|
||||
Copyright (c) 2025 Harvey Fong
|
||||
Copyright (c) 2026 Harvey Fong
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
@ -55,7 +55,7 @@ else
|
||||
ARCH_FLAGS = -m64 -D_FILE_OFFSET_BITS=64
|
||||
|
||||
# Linking flags
|
||||
LINKER_FLAGS = $(ARCH_FLAGS) -fvisibility=hidden -O3 -Wl,-rpath,'$$ORIGIN' -Wl,-rpath,'$$ORIGIN/lib' -weak_library $(LIBDIR)/libvulkan.dylib
|
||||
LINKER_FLAGS = $(ARCH_FLAGS) -fvisibility=hidden -O3 -Wl,-rpath,'$$ORIGIN' -Wl,-rpath,'$$ORIGIN/lib'
|
||||
|
||||
# Platform-specific libraries
|
||||
#PLIST_LIB = -lplist
|
||||
@ -66,6 +66,7 @@ endif
|
||||
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_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_FILE = lib$(EFSW_LIB_NAME)
|
||||
ZMQ_LIB_PATH = $(LIBZMQ_PATH)/build/lib
|
||||
@ -100,6 +101,7 @@ $(OUTPUT_FILE): $(OBJECT_FILES)
|
||||
$(CXX) -o $@ $(OBJECT_FILES) $(LINKER_FLAGS) $(LIB_PATHS) $(LIBRARIES)
|
||||
@echo "Copying libraries to $(BIN_DIR)..."
|
||||
@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 $(PLIST_LIB_DIR)/$(PLIST_LIB_NAME) $(BIN_DIR)/$(PLIST_LIB_NAME)
|
||||
@cp $(EFSW_LIB_PATH)/$(EFSW_LIB_NAME) $(BIN_DIR)/$(EFSW_LIB_NAME)
|
||||
247
README.md
247
README.md
@ -33,163 +33,134 @@ stat
|
||||
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
|
||||
```
|
||||
workdir/
|
||||
├── bella_engine_sdk/
|
||||
├── libsodium/
|
||||
├── libzmq/
|
||||
├── cppzmq/
|
||||
├── efsw/
|
||||
├── belatui/
|
||||
|
||||
( 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
|
||||
├── bellatui/
|
||||
├── cmake/ (macos)
|
||||
├── pkg-config/ (macos)
|
||||
|
||||
```
|
||||
mkdir workdir
|
||||
cd workdir
|
||||
mkdir homebrew
|
||||
curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip-components 1 -C homebrew
|
||||
eval "$(homebrew/bin/brew shellenv)"
|
||||
brew update --force --quiet
|
||||
brew install libsodium
|
||||
brew install pkg-config
|
||||
|
||||
## MacOS x64 and arm64
|
||||
|
||||
```
|
||||
# Install xcode
|
||||
xcode-select --install
|
||||
|
||||
mkdir workdir && cd workdir
|
||||
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 ..
|
||||
git clone https://github.com/zeromq/libzmq
|
||||
mkdir -p libzmq/build
|
||||
cd libzmq/build
|
||||
/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
|
||||
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
|
||||
curl -LO https://downloads.bellarender.com/bella_engine_sdk-25.3.0-macos.zip
|
||||
tar -xvf bella_engine_sdk-25.3.0-macos.zip
|
||||
|
||||
# Get oom
|
||||
git clone https://git.indoodle.com/oomer/oom.git
|
||||
|
||||
cd bellatui
|
||||
git clone https://github.com/oomer/bellatui.git .
|
||||
make all -j4
|
||||
```
|
||||
|
||||
## Linux
|
||||
|
||||
### bella_engine_sdk
|
||||
## Ubuntu Linux x64
|
||||
```
|
||||
curl -O https://downloads.bellarender.com/bella_engine_sdk-24.6.0.tar.gz
|
||||
tar -xvf bella_engine_sdk-24.6.0.tar.gz
|
||||
sudo apt install -y build-essential cmake mesa-vulkan-drivers libgl1
|
||||
mkdir workdir && cd workdir
|
||||
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)
|
||||
```
|
||||
|
||||
#### ubuntu dependencies
|
||||
```
|
||||
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
|
||||
```
|
||||
[TODO]
|
||||
Fix in Makefile
|
||||
cp ../libzmq/build/lib/libzmq.so.5 bin/Linux/release/
|
||||
|
||||
#### redhat dependencies
|
||||
```
|
||||
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
|
||||
```
|
||||
# Windows
|
||||
https://aka.ms/vs/17/release/vs_BuildTools.exe
|
||||
[ ] Desktop development with C++
|
||||
|
||||
[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
|
||||
Get bella_engine_sdk
|
||||
|
||||
#### 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
|
||||
cd vcpkg
|
||||
bootstrap-vcpkg.bat
|
||||
@ -198,13 +169,13 @@ vcpkg.exe install cppzmq:x64-windows
|
||||
vcpkg integrate install
|
||||
cd ..
|
||||
git clone https://github.com/SpartanJ/efsw.git
|
||||
mkdir -p efsw\build
|
||||
mkdir -p efsw/build
|
||||
cd efsw/build
|
||||
cmake ..
|
||||
msbuild efsw.sln /p:Configuration=Release /p:Platform=x64
|
||||
cd ../..
|
||||
git clone https://git.indoodle.com/jason/bellatui.git
|
||||
cd bellatui
|
||||
git clone https://github.com/oomer/bellatui.git
|
||||
|
||||
msbuild bellatui.vcxproj /p:Configuration=release /p:Platform=x64 /p:PlatformToolset=v143
|
||||
```
|
||||
|
||||
|
||||
@ -611,7 +611,6 @@ int DL_main(Args& args)
|
||||
args.add("li", "licenseinfo", "", "prints license info");
|
||||
args.add("ef", "efsw", "", "mode efsw");
|
||||
args.add("wd", "watchdir", "", "mode file warch");
|
||||
args.add("j", "jason", "", "print hello jason");
|
||||
|
||||
// Handle special command-line options
|
||||
if (args.versionReqested())
|
||||
@ -625,13 +624,6 @@ int DL_main(Args& args)
|
||||
printf("%s", args.help("SDK Test", fs::exePath(), bellaSdkVersion().toString()).buf());
|
||||
return 0;
|
||||
}
|
||||
|
||||
// print hello jason
|
||||
if (args.have("--jason")) {
|
||||
std::cout << "Hello Jason!" << std::endl;
|
||||
return 0;
|
||||
}
|
||||
|
||||
std::string path=".";
|
||||
|
||||
if (args.have("--watchdir")) {
|
||||
|
||||
@ -14,7 +14,6 @@
|
||||
<VCProjectVersion>16.0</VCProjectVersion>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
<ProjectGuid>{7AEA0690-36B7-4596-9DEE-C3AB3C11D282}</ProjectGuid>
|
||||
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
|
||||
</PropertyGroup>
|
||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='PseudoDebug|x64'" Label="Configuration">
|
||||
@ -101,16 +100,8 @@
|
||||
echo libzmq-mt-4_3_5.dll copied &
|
||||
copy "$(ProjectDir)..\vcpkg\installed\x64-windows\bin\libsodium.dll" "$(TargetDir)" &
|
||||
echo libsodium.dll copied &
|
||||
copy "$(ProjectDir)..\bella_engine_sdk\lib\dl_usd_ms.dll" "$(TargetDir)" &
|
||||
echo dl_usd_ms.dll copied &
|
||||
echo Post-build event finished</Command>
|
||||
</PostBuildEvent>
|
||||
<ClCompile>
|
||||
<LanguageStandard Condition="'$(Configuration)|$(Platform)'=='PseudoDebug|x64'">stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
<ClCompile>
|
||||
<LanguageStandard Condition="'$(Configuration)|$(Platform)'=='Release|x64'">stdcpp17</LanguageStandard>
|
||||
</ClCompile>
|
||||
</ItemDefinitionGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\bella_engine_sdk\src\bella_sdk\api.h" />
|
||||
@ -167,3 +158,4 @@
|
||||
<ImportGroup Label="ExtensionTargets">
|
||||
</ImportGroup>
|
||||
</Project>
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user