chore: Drop DOtherSide

+ Move monitoring to statusq
This commit is contained in:
Alex Jbanca
2026-07-07 10:44:53 +03:00
committed by Alex Jbanca
parent 59cc311c64
commit d3b8917a04
19 changed files with 70 additions and 180 deletions
-4
View File
@@ -102,10 +102,6 @@
[submodule "vendor/nim-taskpools"]
path = vendor/nim-taskpools
url = https://github.com/status-im/nim-taskpools.git
[submodule "vendor/DOtherSide"]
path = vendor/DOtherSide
url = https://github.com/status-im/dotherside.git
[submodule "mobile/vendors/openssl"]
path = mobile/vendors/openssl
url = https://github.com/openssl/openssl
+1 -1
View File
@@ -327,7 +327,7 @@ The following environment variables can be used to customize the build:
- NIM_SDS_SOURCE_DIR (path) - Point the build system to a local nim-sds folder. Defaults to `$(GIT_ROOT)/../nim-sds`
- PRODUCTION_PARAMETERS (string) - Configure the production arguments for nim compilation. Defaults to `-d:production`
- QMAKE (path to executable) - Point the build system to a different qt installation. Defaults to env configuration
- QML_DEBUG (true,false) - Enable qml debugger and profiler. Needs DOtherSide recompilation. Defaults to `false`
- QML_DEBUG (true,false) - Enable qml debugger and profiler. Defaults to `false`
- QML_DEBUG_PORT (number) - Configure the qml debugger port. Defaults to `49152`
- QT_ARCH (string) - Configure the Qt architecture for macOS cross-compilation. Can be used to compile Intel builds on ARM64 OS. Defaults to `$(shell uname -m)`
- REBUILD_NIM (true,false) - Force nim recompilation
+12 -88
View File
@@ -55,7 +55,6 @@ GIT_ROOT ?= $(shell git rev-parse --show-toplevel 2>/dev/null || echo .)
mobile-build \
mobile-clean \
mobile-profile \
mobile-profile-mode-check \
flatpak \
flatpak-install \
flatpak-run \
@@ -202,14 +201,14 @@ QML_DEBUG_PORT ?= 49152
ifneq ($(QML_DEBUG), false)
COMMON_CMAKE_BUILD_TYPE=Debug
DOTHERSIDE_CMAKE_CONFIG_PARAMS := -DQML_DEBUG_PORT=$(QML_DEBUG_PORT)
else
COMMON_CMAKE_BUILD_TYPE=Release
endif
MONITORING ?= false
ifneq ($(MONITORING), false)
DOTHERSIDE_CMAKE_CONFIG_PARAMS += -DMONITORING:BOOL=ON -DMONITORING_QML_ENTRY_POINT:STRING="/../monitoring/Main.qml"
STATUSQ_CMAKE_CONFIG_PARAMS += -DMONITORING:BOOL=ON -DMONITORING_QML_ENTRY_POINT:STRING="/../monitoring/Main.qml"
NIM_PARAMS += -d:monitoring
endif
# where Qt is installed, depends on the `QMAKE` path
@@ -218,8 +217,6 @@ QT_INSTALL_PREFIX := $(shell $(QMAKE) -query QT_INSTALL_PREFIX 2>/dev/null)
QT_VERSION := $(shell $(QMAKE) -query QT_VERSION 2>/dev/null)
# referenced in android/qt6/build.gradle
export QT_ANDROID_DIR := $(QT_INSTALL_PREFIX)/src/android/java
# separate DOS build dir, per Qt version
DOTHERSIDE_BUILD_PATH := vendor/DOtherSide/build/Qt$(QT_VERSION)
# separate StatusQ/storybook/... build dirs, per Qt version
COMMON_CMAKE_CONFIG_PARAMS := -DCMAKE_PREFIX_PATH=$(QT_INSTALL_PREFIX)
@@ -250,8 +247,6 @@ ifneq ($(mkspecs),win32)
else
NIM_PARAMS += --passL:"-L$(QT_LIBDIR)"
endif
DOTHERSIDE_LIBFILE := $(DOTHERSIDE_BUILD_PATH)/lib/libDOtherSideStatic.a
NIM_PARAMS += --passL:"$(DOTHERSIDE_LIBFILE)"
QT_SEAQT_EXTRA_LIBS = $(shell PKG_CONFIG_PATH="$(QT_PCFILEDIR)" PKG_CONFIG_PREFIX_OVERRIDE="Qt*=$(QT_PC_PREFIX)" $(QT_PC_PKGCONFIG) --libs Qt"$(QT_MAJOR_VERSION)"Core Qt"$(QT_MAJOR_VERSION)"Qml Qt"$(QT_MAJOR_VERSION)"Gui Qt"$(QT_MAJOR_VERSION)"Quick Qt"$(QT_MAJOR_VERSION)"QuickControls2 Qt"$(QT_MAJOR_VERSION)"Widgets Qt"$(QT_MAJOR_VERSION)"Svg Qt"$(QT_MAJOR_VERSION)"Multimedia Qt"$(QT_MAJOR_VERSION)"WebView Qt"$(QT_MAJOR_VERSION)"WebChannel)
else
WIN_SYS_LIBS := --passL:"-luser32"
@@ -303,7 +298,7 @@ INCLUDE_DEBUG_SYMBOLS ?= false
ifeq ($(INCLUDE_DEBUG_SYMBOLS),true)
# We need `-d:debug` to get Nim's default stack traces
NIM_PARAMS += -d:debug
# Enable debugging symbols in DOtherSide, in case we need GDB backtraces
# Enable debugging symbols, in case we need GDB backtraces
CFLAGS += -g
CXXFLAGS += -g
RCC_PARAMS = --no-compress
@@ -359,6 +354,7 @@ $(STATUSQ_CMAKE_CACHE): | check-qt-dir
-DSTATUSQ_BUILD_SANITY_CHECKER=OFF \
-DSTATUSQ_BUILD_TESTS=OFF \
$(COMMON_CMAKE_CONFIG_PARAMS) \
$(STATUSQ_CMAKE_CONFIG_PARAMS) \
-B $(STATUSQ_BUILD_PATH) \
-S $(STATUSQ_SOURCE_PATH) \
-Wno-dev \
@@ -486,59 +482,6 @@ storybook-clean:
echo -e "\033[92mCleaning:\033[39m Storybook"
rm -rf $(STORYBOOK_BUILD_PATH)
##
## DOtherSide
##
ifneq ($(mkspecs),win32)
DOTHERSIDE_CMAKE_CONFIG_PARAMS += -DENABLE_DYNAMIC_LIBS=OFF -DENABLE_STATIC_LIBS=ON
# NIM_PARAMS +=
else
DOTHERSIDE_LIBFILE := $(DOTHERSIDE_BUILD_PATH)/lib/$(COMMON_CMAKE_BUILD_TYPE)/DOtherSide.dll
DOTHERSIDE_CMAKE_CONFIG_PARAMS += -DENABLE_DYNAMIC_LIBS=ON -DENABLE_STATIC_LIBS=OFF
ifeq ($(mkspecs),win32)
# The MSVC linker (lld-link) links against the import library, not the .dll
# itself (passing the .dll gives "bad file type"). cmake emits DOtherSide.lib
# next to the .dll; DOTHERSIDE_LIBFILE stays the .dll for packaging/runtime.
NIM_PARAMS += -L:$(DOTHERSIDE_BUILD_PATH)/lib/$(COMMON_CMAKE_BUILD_TYPE)/DOtherSide.lib
else
NIM_PARAMS += -L:$(DOTHERSIDE_LIBFILE)
endif
endif
DOTHERSIDE_SOURCE_PATH := vendor/DOtherSide
DOTHERSIDE_CMAKE_CACHE := $(DOTHERSIDE_BUILD_PATH)/CMakeCache.txt
DOTHERSIDE_LIBDIR := $(shell pwd)/$(shell dirname "$(DOTHERSIDE_LIBFILE)")
export DOTHERSIDE_LIBDIR
$(DOTHERSIDE_CMAKE_CACHE): | deps
echo -e "\033[92mConfiguring:\033[39m DOtherSide"
cmake \
-DCMAKE_BUILD_TYPE=$(COMMON_CMAKE_BUILD_TYPE) \
-DENABLE_DOCS=OFF \
-DENABLE_TESTS=OFF \
$(COMMON_CMAKE_CONFIG_PARAMS) \
$(DOTHERSIDE_CMAKE_CONFIG_PARAMS) \
-B $(DOTHERSIDE_BUILD_PATH) \
-S $(DOTHERSIDE_SOURCE_PATH) \
-Wno-dev \
$(HANDLE_OUTPUT)
dotherside-configure: | $(DOTHERSIDE_CMAKE_CACHE)
dotherside-build: | dotherside-configure
echo -e "\033[92mBuilding:\033[39m DOtherSide"
cmake \
--build $(DOTHERSIDE_BUILD_PATH) \
--config $(COMMON_CMAKE_BUILD_TYPE) \
$(HANDLE_OUTPUT)
dotherside-clean:
echo -e "\033[92mCleaning:\033[39m DOtherSide"
rm -rf $(DOTHERSIDE_BUILD_PATH)
dotherside: | dotherside-build
##
## status-go
##
@@ -787,7 +730,7 @@ $(NIM_STATUS_CLIENT): NIM_PARAMS += $(RESOURCES_LAYOUT)
ifneq ($(mkspecs),win32)
$(NIM_STATUS_CLIENT): NIM_PARAMS += --passL:"$(QT_SEAQT_EXTRA_LIBS)"
endif
$(NIM_STATUS_CLIENT): $(NIM_SOURCES) | statusq dotherside check-qt-dir $(STATUSGO) $(NIMSDS_LIBFILE) $(STATUSKEYCARD_QT_LIB) $(QRCODEGEN) rcc deps
$(NIM_STATUS_CLIENT): $(NIM_SOURCES) | statusq check-qt-dir $(STATUSGO) $(NIMSDS_LIBFILE) $(STATUSKEYCARD_QT_LIB) $(QRCODEGEN) rcc deps
echo -e $(BUILD_MSG) "$@"
$(ENV_SCRIPT) nim c $(NIM_PARAMS) \
--mm:orc \
@@ -814,7 +757,7 @@ ifeq ($(mkspecs),macx)
bin/nim_status_client
endif
nim_status_client: force-rebuild-status-go statusq dotherside $(NIM_STATUS_CLIENT)
nim_status_client: force-rebuild-status-go statusq $(NIM_STATUS_CLIENT)
ifdef IN_NIX_SHELL
APPIMAGE_TOOL := appimagetool
@@ -994,7 +937,7 @@ $(STATUS_CLIENT_EXE): compile_windows_resources nim_status_client nim_windows_la
cp bin/nim_windows_launcher.exe $(OUTPUT)/Status.exe
rcedit $(OUTPUT)/bin/Status.exe --set-icon $(OUTPUT)/resources/status.ico
rcedit $(OUTPUT)/Status.exe --set-icon $(OUTPUT)/resources/status.ico
cp $(DOTHERSIDE_LIBFILE) $(STATUSGO) $(STATUSKEYCARD_QT_LIB) $(NIMSDS_LIBFILE) $(STATUSQ_LIB_PATH)/* $(STATUSQ_BUILD_PATH)/bin/$(COMMON_CMAKE_BUILD_TYPE)/* $(OUTPUT)/bin/
cp $(STATUSGO) $(STATUSKEYCARD_QT_LIB) $(NIMSDS_LIBFILE) $(STATUSQ_LIB_PATH)/* $(STATUSQ_BUILD_PATH)/bin/$(COMMON_CMAKE_BUILD_TYPE)/* $(OUTPUT)/bin/
cp "$(shell which libstdc++-6.dll)" $(OUTPUT)/bin/
cp "$(shell which libgcc_s_seh-1.dll)" $(OUTPUT)/bin/
cp "$(shell which libwinpthread-1.dll)" $(OUTPUT)/bin/
@@ -1002,7 +945,7 @@ $(STATUS_CLIENT_EXE): compile_windows_resources nim_status_client nim_windows_la
cp "$(shell which libssl-3-x64.dll)" $(OUTPUT)/bin/
echo -e $(BUILD_MSG) "deployable folder"
VCINSTALLDIR="$(VCINSTALLDIR)" windeployqt --compiler-runtime --qmldir ui --release \
tmp/windows/dist/Status/bin/DOtherSide.dll
tmp/windows/dist/Status/bin/Status.exe
mv tmp/windows/dist/Status/bin/vc_redist.x64.exe tmp/windows/dist/Status/vendor/
cp status.iss $(OUTPUT)/status.iss
cp $(QT_INSTALL_PREFIX)/plugins/tls/qopensslbackend.dll $(OUTPUT)/bin/plugins/tls/
@@ -1048,7 +991,7 @@ zip-windows: check-pkg-target-windows $(STATUS_CLIENT_7Z)
clean-destdir:
rm -rf bin/*
clean: | clean-common clean-destdir statusq-clean status-go-clean status-keycard-qt-clean dotherside-clean storybook-clean clean-translations
clean: | clean-common clean-destdir statusq-clean status-go-clean status-keycard-qt-clean storybook-clean clean-translations
rm -rf bottles/* pkg/* tmp/*
+ $(MAKE) -C vendor/QR-Code-generator/c/ --no-print-directory clean
@@ -1090,7 +1033,6 @@ run-windows: STATUS_RC_FILE = status-dev.rc
run-windows: compile_windows_resources nim_status_client
echo -e "\033[92mCopying DLLs to bin/\033[39m"
cp -f -R $(STATUSQ_BUILD_PATH)/bin/$(COMMON_CMAKE_BUILD_TYPE)/* ./bin/
cp -f $(DOTHERSIDE_LIBFILE) ./bin/
cp -f $(STATUSGO_LIBDIR)/libstatus.dll ./bin/
cp -f $(STATUSKEYCARD_QT_LIB) ./bin/
cp -f $(NIMSDS_LIBDIR)/libsds.dll ./bin/
@@ -1113,7 +1055,7 @@ nim-test-run/test/nim/url_scheme_event_test.nim: | statusq
ifneq ($(mkspecs),win32)
nim-test-run/%: NIM_PARAMS += --passL:"$(QT_SEAQT_EXTRA_LIBS)"
endif
nim-test-run/%: | qt-pkgconfig dotherside $(STATUSGO) $(QRCODEGEN)
nim-test-run/%: | qt-pkgconfig $(STATUSGO) $(QRCODEGEN)
LD_LIBRARY_PATH="$(QT_LIBDIR)":"$(NIMSDS_LIBDIR)":"$(STATUSGO_LIBDIR)":"$(EXTRA_LIBS_PATH)":"$(LD_LIBRARY_PATH)" $(ENV_SCRIPT) \
nim c $(NIM_PARAMS) $(NIM_EXTRA_PARAMS) --mm:refc --passL:"-L$(STATUSGO_LIBDIR)" --passL:"-lstatus" --passL:"$(QRCODEGEN)" -r $(subst nim-test-run/,,$@)
@@ -1126,29 +1068,11 @@ endef
export PATH := $(call qmkq,QT_INSTALL_BINS):$(call qmkq,QT_HOST_BINS):$(call qmkq,QT_HOST_LIBEXECS):$(PATH)
export QTDIR := $(call qmkq,QT_INSTALL_PREFIX)
# Mobile profile-mode tracking: QML_DEBUG_PORT is baked into libDOtherSide.so
# at compile time, so toggling profile mode requires a DOtherSide rebuild.
# A sentinel file records the last build's mode and forces clean-dotherside
# whenever it disagrees with the desired mode.
MOBILE_PROFILE_SENTINEL := mobile/build/.profile-mode
mobile-run: MOBILE_PROFILE_DESIRED := 0
mobile-profile: MOBILE_PROFILE_DESIRED := 1
mobile-profile-mode-check:
@mkdir -p $(dir $(MOBILE_PROFILE_SENTINEL))
@current=$$(cat $(MOBILE_PROFILE_SENTINEL) 2>/dev/null || echo 0); \
if [ "$$current" != "$(MOBILE_PROFILE_DESIRED)" ]; then \
echo -e "\033[92mProfile mode change\033[39m ($$current -> $(MOBILE_PROFILE_DESIRED)): cleaning DOtherSide"; \
$(MAKE) -C mobile clean-dotherside; \
fi
@echo $(MOBILE_PROFILE_DESIRED) > $(MOBILE_PROFILE_SENTINEL)
mobile-run: qt-pkgconfig deps-common mobile-profile-mode-check
mobile-run: qt-pkgconfig deps-common
echo -e "\033[92mRunning:\033[39m mobile app"
$(MAKE) -C mobile run DEBUG=1 GRADLE_TARGETS=assembleDebug
mobile-profile: qt-pkgconfig deps-common mobile-profile-mode-check
mobile-profile: qt-pkgconfig deps-common
ifeq ($(mkspecs),ios)
@echo "TODO: iOS profiling is not implemented yet"; exit 1
else
+1 -1
View File
@@ -4,7 +4,7 @@
cp -R . ~/status-desktop
cd ~/status-desktop
git clean -dfx && rm -rf vendor/* && git checkout vendor/DOtherSide && make -j4 V=1 update
git clean -dfx && rm -rf vendor/* && make -j4 V=1 update
make V=1 pkg
# Make AppImage build accessible to the docker host
+3 -3
View File
@@ -15,8 +15,8 @@ We do not use servers. [status-go](https://github.com/status-im/status-go) is wh
```mermaid
flowchart LR
qml["Frontend (QML)"] --> statusq(["StatusQ"])
qml --> dotherside{{"DOtherside"}}
dotherside --> nimqml{{"NimQML"}}
qml --> seaqt{{"nimqml-seaqt"}}
seaqt --> nimqml{{"NimQML"}}
nimqml --> nim["Middleware (Nim)"]
nim --> statusgo{{"Backend (status-go)"}}
nim --> nimstatusgo{{"nim-status-go"}}
@@ -33,7 +33,7 @@ flowchart LR
end
click qml "https://github.com/status-im/status-app/tree/master/ui" "Link to the UI folder containing the QML code"
click statusq "https://github.com/status-im/status-app/tree/master/ui/StatusQ" "Link to the StatusQ folder"
click dotherside "https://github.com/status-im/dotherside" "Link to the DOtherSide repo"
click seaqt "https://github.com/status-im/nimqml-seaqt" "Link to the nimqml-seaqt repo"
click nimqml "https://github.com/status-im/nimqml" "Link to the NimQML repo"
click nim "https://github.com/status-im/status-app/tree/master/src" "Link to the Nim code"
click statusgo "https://github.com/status-im/status-go" "Link to the Status-Go repo"
+2 -3
View File
@@ -11,7 +11,7 @@ iOS profiling and Android Studio "Go to source" are not implemented yet.
| Layer | Change |
| ---------- | ------------------------------------------------------------------- |
| DOtherSide | Engine binds + blocks on `QML_DEBUG_PORT` (default `49152`). |
| Qt engine | Engine binds + blocks on `QML_DEBUG_PORT` (default `49152`). |
| Nim | `-d:release -d:nimTypeNames` (so Android Studio resolves Nim frames). |
| adb | `adb forward tcp:$PORT tcp:$PORT` set up automatically. |
| Gradle | `profile` build type: `debuggable=false`, `profileable=true`. |
@@ -35,5 +35,4 @@ Override the port with `QML_DEBUG_PORT=NNNN make mobile-profile`.
You can run both profilers concurrently — attach Android Studio first
while the app is still blocked, then release with the QML side.
To switch back to a normal run, just `make mobile-run`. The Makefile
auto-rebuilds DOtherSide when the mode flips.
To switch back to a normal run, just `make mobile-run`.
+1 -1
View File
@@ -29,7 +29,7 @@ PACKAGE_TYPE?=apk
# Verbosity level (0-3)
V?=0
$(TARGET): $(STATUS_DESKTOP_NIM_FILES) $(STATUS_DESKTOP_UI_FILES) $(STATUS_Q_FILES) $(STATUS_Q_UI_FILES) $(STATUS_GO_FILES) $(DOTHERSIDE_FILES) $(OPENSSL_FILES) $(QRCODEGEN_FILES) $(WRAPPER_APP_FILES)
$(TARGET): $(STATUS_DESKTOP_NIM_FILES) $(STATUS_DESKTOP_UI_FILES) $(STATUS_Q_FILES) $(STATUS_Q_UI_FILES) $(STATUS_GO_FILES) $(OPENSSL_FILES) $(QRCODEGEN_FILES) $(WRAPPER_APP_FILES)
@echo "Building $(TARGET) for architecture $(ARCH) using Docker image $(DOCKER_IMAGE)"
@mkdir -p $(BIN_PATH)
@docker run --rm \
-1
View File
@@ -165,7 +165,6 @@ The build system uses several environment variables to control the build process
### Key Components
- Status Go
- StatusQ
- DOtherSide
- OpenSSL
- QRCodeGen
- Nim Status Client
+3 -15
View File
@@ -24,7 +24,6 @@ iosdevice: default
# dependencies
statusq: clean-statusq $(STATUS_Q_LIB)
dotherside: clean-dotherside $(DOTHERSIDE_LIB)
openssl: clean-openssl $(OPENSSL_LIB)
qrcodegen: clean-qrcodegen $(QRCODEGEN_LIB)
status-keycard-qt: clean-status-keycard-qt $(STATUS_KEYCARD_QT_LIB)
@@ -86,11 +85,6 @@ $(STATUS_Q_LIB): $(STATUS_Q_FILES) $(STATUS_Q_SCRIPT) $(STATUS_Q_UI_FILES)
@STATUSQ=$(STATUSQ) QT_MAJOR=$(QT_MAJOR) LIB_SUFFIX=$(LIB_SUFFIX) LIB_EXT=$(LIB_EXT) $(STATUS_Q_SCRIPT) $(HANDLE_OUTPUT)
@echo "StatusQ built $(STATUS_Q_LIB)"
$(DOTHERSIDE_LIB): $(DOTHERSIDE_FILES) $(DOTHERSIDE_SCRIPT)
@echo "Building DOtherSide"
@DOTHERSIDE=$(DOTHERSIDE) QT_MAJOR=$(QT_MAJOR) LIB_SUFFIX=$(LIB_SUFFIX) LIB_EXT=$(LIB_EXT) QML_DEBUG_PORT=$(QML_DEBUG_PORT) $(DOTHERSIDE_SCRIPT) $(HANDLE_OUTPUT)
@echo "DOtherSide built $(DOTHERSIDE_LIB)"
$(OPENSSL_LIB): $(OPENSSL_FILES)
@echo "Building OpenSSL"
@LIB_PATH=$(LIB_PATH) LIB_EXT=$(LIB_EXT) OPENSSL=$(OPENSSL) BUILD_DIR=$(BUILD_PATH) $(OPENSSL_SCRIPT) $(HANDLE_OUTPUT)
@@ -115,7 +109,7 @@ ifeq ($(OS),android)
$(NIM_STATUS_CLIENT_LIB): $(STATUS_GO_STUB_LIB) $(STATUS_GO_SERVICE_LIB)
endif
$(NIM_STATUS_CLIENT_LIB): $(STATUS_DESKTOP_NIM_FILES) $(NIM_STATUS_CLIENT_SCRIPT) $(STATUS_DESKTOP_RCC) $(DOTHERSIDE_LIB) $(OPENSSL_LIB) $(STATUS_Q_LIB) $(QRCODEGEN_LIB)
$(NIM_STATUS_CLIENT_LIB): $(STATUS_DESKTOP_NIM_FILES) $(NIM_STATUS_CLIENT_SCRIPT) $(STATUS_DESKTOP_RCC) $(OPENSSL_LIB) $(STATUS_Q_LIB) $(QRCODEGEN_LIB)
@echo "Building Status Desktop Lib"
@STATUS_DESKTOP=$(STATUS_DESKTOP) \
LIB_SUFFIX=$(LIB_SUFFIX) \
@@ -133,7 +127,7 @@ $(NIM_STATUS_CLIENT_LIB): $(STATUS_DESKTOP_NIM_FILES) $(NIM_STATUS_CLIENT_SCRIPT
@echo "Status Desktop Lib built $(NIM_STATUS_CLIENT_LIB)"
# non-phony targets
$(TARGET): $(APP_SCRIPT) $(STATUS_GO_LIB) $(STATUS_Q_LIB) $(DOTHERSIDE_LIB) $(OPENSSL_LIB) $(QRCODEGEN_LIB) $(STATUS_KEYCARD_QT_LIB) $(NIM_STATUS_CLIENT_LIB) $(STATUS_DESKTOP_RCC) $(WRAPPER_APP_FILES)
$(TARGET): $(APP_SCRIPT) $(STATUS_GO_LIB) $(STATUS_Q_LIB) $(OPENSSL_LIB) $(QRCODEGEN_LIB) $(STATUS_KEYCARD_QT_LIB) $(NIM_STATUS_CLIENT_LIB) $(STATUS_DESKTOP_RCC) $(WRAPPER_APP_FILES)
@echo "Building app"
ifeq ($(OS),android)
@STATUS_DESKTOP=$(STATUS_DESKTOP) \
@@ -222,7 +216,7 @@ endif
all: $(TARGET)
.PHONY: clean
clean: clean-statusq clean-dotherside clean-openssl clean-qrcodegen clean-status-keycard-qt clean-nim-status-client clean-status-desktop-rcc
clean: clean-statusq clean-openssl clean-qrcodegen clean-status-keycard-qt clean-nim-status-client clean-status-desktop-rcc
@echo "Cleaning"
@rm -rf $(ROOT_DIR)/bin $(ROOT_DIR)/build $(ROOT_DIR)/lib
@@ -237,12 +231,6 @@ clean-statusq:
@rm -rf $(STATUSQ)/build
@make -C $(STATUS_DESKTOP) statusq-clean
.PHONY: clean-dotherside
clean-dotherside:
@rm -f $(DOTHERSIDE_LIB)
@rm -rf $(DOTHERSIDE)/build
@make -C $(STATUS_DESKTOP) dotherside-clean
.PHONY: clean-openssl
clean-openssl:
@rm -f $(OPENSSL_LIB)
-6
View File
@@ -30,7 +30,6 @@ WRAPPER_APP?=$(ROOT_DIR)/wrapperApp
STATUS_DESKTOP?=$(ROOT_DIR)/vendors/status-desktop
STATUSQ?=$(STATUS_DESKTOP)/ui/StatusQ
STATUS_GO?=$(STATUS_DESKTOP)/vendor/status-go
DOTHERSIDE?=$(STATUS_DESKTOP)/vendor/DOtherSide
OPENSSL?=$(ROOT_DIR)/vendors/openssl
QRCODEGEN?=$(STATUS_DESKTOP)/vendor/QR-Code-generator/c
STATUS_KEYCARD_QT?=$(STATUS_DESKTOP)/vendor/status-keycard-qt
@@ -62,7 +61,6 @@ STATUS_DESKTOP_UI_FILES := $(shell find $(STATUS_DESKTOP)/ui -type f \( -iname '
STATUS_Q_FILES := $(shell find $(STATUSQ) -type f \( -iname '*.cpp' -o -iname '*.h' \) -not -iname '*.qrc' -not -iname '*.qml')
STATUS_Q_UI_FILES := $(shell find $(STATUSQ) -type f \( -iname '*.qml' -o -iname '*.qrc' \))
STATUS_GO_FILES := $(shell find $(STATUS_GO) -type f \( -iname '*.go' \))
DOTHERSIDE_FILES := $(shell find $(DOTHERSIDE) -type f \( -iname '*.cpp' -o -iname '*.h' \))
OPENSSL_FILES := $(shell find $(OPENSSL) -type f \( -iname '*.c' -o -iname '*.h' \))
QRCODEGEN_FILES := $(shell find $(QRCODEGEN) -type f \( -iname '*.c' -o -iname '*.h' \))
STATUS_KEYCARD_QT_FILES := $(shell find $(STATUS_KEYCARD_QT) -type f \( -iname '*.cpp' -o -iname '*.h' \) 2>/dev/null || echo "")
@@ -73,7 +71,6 @@ STATUS_GO_SERVICE_GEN := $(STATUS_DESKTOP)/vendor/status-go/build/bin/statusgo_s
# script files
STATUS_Q_SCRIPT := $(SCRIPTS_PATH)/buildStatusQ.sh
STATUS_GO_SCRIPT := $(SCRIPTS_PATH)/buildStatusGo.sh
DOTHERSIDE_SCRIPT := $(SCRIPTS_PATH)/buildDOtherSide.sh
OPENSSL_SCRIPT := $(SCRIPTS_PATH)/buildOpenSSL.sh
QRCODEGEN_SCRIPT := $(SCRIPTS_PATH)/buildQRCodeGen.sh
STATUS_KEYCARD_QT_SCRIPT := $(SCRIPTS_PATH)/buildStatusKeycardQt.sh
@@ -92,8 +89,5 @@ STATUS_DESKTOP_RCC := $(STATUS_DESKTOP)/ui/resources.qrc
STATUS_GO_STUB_LIB := $(LIB_PATH)/libstatus_stub$(LIB_EXT)
STATUS_GO_SERVICE_LIB := $(LIB_PATH)/libstatus_service$(LIB_EXT)
ifeq ($(OS), ios)
DOTHERSIDE_LIB := $(LIB_PATH)/libDOtherSideStatic$(LIB_SUFFIX)$(LIB_EXT)
LIB_ZXING := $(LIB_PATH)/libZXing$(LIB_SUFFIX)$(LIB_EXT)
else
DOTHERSIDE_LIB := $(LIB_PATH)/libDOtherSide$(LIB_SUFFIX)$(LIB_EXT)
endif
-50
View File
@@ -1,50 +0,0 @@
#!/usr/bin/env bash
set -ef pipefail
DOTHERSIDE=${DOTHERSIDE:-"../vendors/status-desktop/vendor/DOtherSide"}
LIB_DIR=${LIB_DIR}
LIB_SUFFIX=${LIB_SUFFIX:-""}
LIB_EXT=${LIB_EXT:-".a"}
BASEDIR=$(dirname "$0")
# Load common config variables
source "$BASEDIR/commonCmakeConfig.sh"
BUILD_DIR="${DOTHERSIDE}/build/${OS}"
if [[ "${LIB_EXT}" == ".so" ]]; then
ENABLE_DYNAMIC_LIBS=ON
ENABLE_STATIC_LIBS=OFF
DOTHERSIDE_LIB_NAME="libDOtherSide${LIB_SUFFIX}${LIB_EXT}"
fi
if [[ "${LIB_EXT}" == ".a" ]]; then
ENABLE_DYNAMIC_LIBS=OFF
ENABLE_STATIC_LIBS=ON
DOTHERSIDE_LIB_NAME="libDOtherSideStatic${LIB_SUFFIX}${LIB_EXT}"
fi
echo "Building DOtherSide for ${ARCH} using compiler: ${CC}"
printf 'COMMON_CMAKE_CONFIG: %s\n' "${COMMON_CMAKE_CONFIG[@]}"
EXTRA_CMAKE_ARGS=()
if [[ -n "${QML_DEBUG_PORT}" ]]; then
EXTRA_CMAKE_ARGS+=("-DQML_DEBUG_PORT=${QML_DEBUG_PORT}")
fi
cmake -S "${DOTHERSIDE}" -B "${BUILD_DIR}" \
"${COMMON_CMAKE_CONFIG[@]}" \
"${EXTRA_CMAKE_ARGS[@]}" \
-DENABLE_DOCS:BOOL=OFF \
-DENABLE_DYNAMIC_LIBS:BOOL="${ENABLE_DYNAMIC_LIBS}" \
-DENABLE_STATIC_LIBS:BOOL="${ENABLE_STATIC_LIBS}" \
-DENABLE_TESTS:BOOL=OFF
make -C "${BUILD_DIR}" -j "$(nproc)"
DOTHERSIDE_LIB=$(find "${BUILD_DIR}" -name "${DOTHERSIDE_LIB_NAME}")
mkdir -p "${LIB_DIR}"
cp "${DOTHERSIDE_LIB}" "${LIB_DIR}/${DOTHERSIDE_LIB_NAME}"
+1 -1
View File
@@ -33,7 +33,7 @@ if [[ "$OS" == "ios" ]]; then
PLATFORM_SPECIFIC=(--app:staticlib -d:ios --os:ios)
else
PLATFORM_SPECIFIC=(--app:lib --os:android -d:android -d:androidNDK -d:chronicles_sinks=textlines[logcat],textlines[file,nocolors] \
--passL="-L$LIB_DIR" --passL="-lstatus_stub" --passL="-lStatusQ$LIB_SUFFIX" --passL="-lDOtherSide$LIB_SUFFIX" --passL="-lqrcodegen" --passL="-lssl_3" --passL="-lcrypto_3" --passL="-lstatus-keycard-qt" -d:taskpool)
--passL="-L$LIB_DIR" --passL="-lstatus_stub" --passL="-lStatusQ$LIB_SUFFIX" --passL="-lqrcodegen" --passL="-lssl_3" --passL="-lcrypto_3" --passL="-lstatus-keycard-qt" -d:taskpool)
fi
if [ -n "$USE_QML_SERVER" ]; then
+1 -2
View File
@@ -49,7 +49,6 @@ android {
$$PWD/../lib/$$LIB_PREFIX/libssl_3.so \
$$PWD/../lib/$$LIB_PREFIX/libcrypto_3.so \
$$PWD/../lib/$$LIB_PREFIX/libnim_status_client.so \
$$PWD/../lib/$$LIB_PREFIX/libDOtherSide$$(LIB_SUFFIX)$$(LIB_EXT) \
$$PWD/../lib/$$LIB_PREFIX/libstatus_stub.so \
$$PWD/../lib/$$LIB_PREFIX/libStatusQ$$(LIB_SUFFIX)$$(LIB_EXT) \
$$PWD/../lib/$$LIB_PREFIX/libMobileWebView$$(LIB_SUFFIX)$$(LIB_EXT)
@@ -104,7 +103,7 @@ ios {
-framework UserNotifications
# Base libraries (always included)
LIBS += -L$$PWD/../lib/$$LIB_PREFIX -lnim_status_client -lDOtherSideStatic -lstatusq -lMobileWebView -lstatus -lsds -lssl_3 -lcrypto_3 -lSCodes -lZXing -lresolv -lqrcodegen
LIBS += -L$$PWD/../lib/$$LIB_PREFIX -lnim_status_client -lstatusq -lMobileWebView -lstatus -lsds -lssl_3 -lcrypto_3 -lSCodes -lZXing -lresolv -lqrcodegen
contains(DEFINES, FLAG_KEYCARD_ENABLED) {
# Use entitlements with NFC support (requires paid Apple Developer account)
+8
View File
@@ -264,6 +264,10 @@ proc mainProc() =
singletonInstance.engine.addImportPath("qrc:/./imports")
singletonInstance.engine.addImportPath("qrc:/./app");
when defined(monitoring):
onRootContextPropertySet = proc(name: string) {.nimcall.} =
statusq_monitorAddContextProperty(name.cstring)
statusq_setupNetworkAccessManagerFactory(singletonInstance.engine.vptr, (TMPDIR & "netcache").cstring)
singletonInstance.engine.setRootContextProperty("uiScaleFilePath", newQVariant(uiScaleFilePath))
singletonInstance.engine.setRootContextProperty("singleInstance", newQVariant(singleInstance))
@@ -281,6 +285,10 @@ proc mainProc() =
statusq_registerQmlTypes()
when defined(monitoring):
statusq_registerMonitoringType()
statusq_initializeMonitoring(singletonInstance.engine.vptr)
app.installEventFilter(urlSchemeEvent)
defer:
+5
View File
@@ -20,3 +20,8 @@ proc statusq_urlscheme_set_instance*(obj: pointer) {.cdecl, importc.}
proc statusq_urlscheme_install_event_filter*(obj: pointer) {.cdecl, importc.}
proc statusq_urlscheme_emit_deeplink*(obj: pointer, url: cstring) {.cdecl, importc.}
proc statusq_urlscheme_delete*(obj: pointer) {.cdecl, importc.}
when defined(monitoring):
proc statusq_registerMonitoringType*() {.cdecl, importc.}
proc statusq_initializeMonitoring*(engine: pointer) {.cdecl, importc.}
proc statusq_monitorAddContextProperty*(name: cstring) {.cdecl, importc.}
+10
View File
@@ -422,6 +422,16 @@ endif()
target_include_directories(StatusQ PUBLIC include)
option(MONITORING "Build the QML monitoring/introspection tools" OFF)
set(MONITORING_QML_ENTRY_POINT "" CACHE STRING "QML file that starts the monitoring tool UI")
if(MONITORING)
include(${CMAKE_CURRENT_SOURCE_DIR}/../MonitoringSources.cmake)
target_sources(StatusQ PRIVATE ${MONITORING_SOURCES} ${MONITORING_HEADERS})
target_include_directories(StatusQ PRIVATE ${MONITORING_INCLUDE_PATH})
target_compile_definitions(StatusQ PRIVATE MONITORING
MONITORING_QML_ENTRY_POINT="${MONITORING_QML_ENTRY_POINT}")
endif()
install(TARGETS StatusQ
RUNTIME DESTINATION StatusQ
LIBRARY DESTINATION StatusQ
+22
View File
@@ -11,6 +11,11 @@
#include <StatusQ/typesregistration.h>
#include <StatusQ/osnotification.h>
#include <StatusQ/urlschemeevent.h>
#ifdef MONITORING
#include <QProcessEnvironment>
#include <QtQml>
#include "StatusDesktop/Monitoring/Monitor.h"
#endif
#include <MobileUI>
#ifdef STATUSQ_HAS_QTWEBENGINE
@@ -129,4 +134,21 @@ Q_DECL_EXPORT void statusq_urlscheme_delete(void* obj) {
static_cast<QObject*>(obj)->deleteLater();
}
#ifdef MONITORING
Q_DECL_EXPORT void statusq_registerMonitoringType() {
qmlRegisterSingletonType<Monitor>("Monitoring", 1, 0, "Monitor", &Monitor::qmlInstance);
}
Q_DECL_EXPORT void statusq_initializeMonitoring(void* engine) {
auto disabled = QStringLiteral("0");
if (QProcessEnvironment::systemEnvironment().value(
QStringLiteral("DISABLE_MONITORING_WINDOW"), disabled) == disabled)
Monitor::instance().initialize(static_cast<QQmlApplicationEngine*>(engine));
}
Q_DECL_EXPORT void statusq_monitorAddContextProperty(const char* name) {
Monitor::instance().addContextPropertyName(QString::fromUtf8(name));
}
#endif
} // extern "C"
-3
View File
@@ -18,9 +18,6 @@ OTHER_FILES += $$files("$$PWD/*.js", true)
OTHER_FILES += $$files("$$PWD/../src/*.nim", true)
OTHER_FILES += $$files("$$PWD/../monitoring/*.qml", true)
OTHER_FILES += $$files("$$PWD/../vendor/DOtherSide/lib/*.cpp", true)
OTHER_FILES += $$files("$$PWD/../vendor/DOtherSide/lib/*.h", true)
OTHER_FILES += $$files("$$PWD/../vendor/SortFilterProxyModel/*.cpp", true)
OTHER_FILES += $$files("$$PWD/../vendor/SortFilterProxyModel/*.h", true)
Submodule vendor/DOtherSide deleted from 3dc2d46c7e