mirror of
https://github.com/status-im/status-app.git
synced 2026-08-27 07:01:14 +00:00
chore: Drop DOtherSide
+ Move monitoring to statusq
This commit is contained in:
@@ -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
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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`.
|
||||
|
||||
@@ -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 \
|
||||
|
||||
@@ -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
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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}"
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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.}
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
Vendored
-1
Submodule vendor/DOtherSide deleted from 3dc2d46c7e
Reference in New Issue
Block a user