mirror of
https://github.com/cypherstack/stack_wallet.git
synced 2025-02-02 03:06:29 +00:00
Merge pull request #24 from cypherstack/linuxstandalone
Linuxstandalone
This commit is contained in:
commit
69148735ba
6 changed files with 94 additions and 11 deletions
|
@ -70,16 +70,18 @@ void main() async {
|
|||
}
|
||||
// FlutterNativeSplash.preserve(widgetsBinding: widgetsBinding);
|
||||
await Hive.initFlutter(appDirectory.path);
|
||||
final isar = await Isar.open(
|
||||
[LogSchema],
|
||||
directory: appDirectory.path,
|
||||
inspector: false,
|
||||
);
|
||||
await Logging.instance.init(isar);
|
||||
await DebugService.instance.init(isar);
|
||||
if (!(Logging.isArmLinux || Logging.isTestEnv)) {
|
||||
final isar = await Isar.open(
|
||||
[LogSchema],
|
||||
directory: appDirectory.path,
|
||||
inspector: false,
|
||||
);
|
||||
await Logging.instance.init(isar);
|
||||
await DebugService.instance.init(isar);
|
||||
|
||||
// clear out all info logs on startup. No need to await and block
|
||||
unawaited(DebugService.instance.purgeInfoLogs());
|
||||
// clear out all info logs on startup. No need to await and block
|
||||
unawaited(DebugService.instance.purgeInfoLogs());
|
||||
}
|
||||
|
||||
// Registering Transaction Model Adapters
|
||||
Hive.registerAdapter(TransactionDataAdapter());
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import 'dart:async';
|
||||
import 'dart:core' as core;
|
||||
import 'dart:core';
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:flutter/foundation.dart';
|
||||
|
@ -11,6 +12,8 @@ import 'package:stackwallet/utilities/enums/log_level_enum.dart';
|
|||
export 'enums/log_level_enum.dart';
|
||||
|
||||
class Logging {
|
||||
static const isArmLinux =
|
||||
bool.fromEnvironment("IS_ARM");
|
||||
static final isTestEnv = Platform.environment["FLUTTER_TEST"] == "true";
|
||||
Logging._();
|
||||
static final Logging _instance = Logging._();
|
||||
|
@ -25,7 +28,7 @@ class Logging {
|
|||
}
|
||||
|
||||
Future<void> initInIsolate() async {
|
||||
if (isTestEnv) {
|
||||
if (isTestEnv || isArmLinux) {
|
||||
// do this for now until we mock Isar properly for testing
|
||||
isar = null;
|
||||
return;
|
||||
|
@ -42,7 +45,7 @@ class Logging {
|
|||
core.bool printToConsole = true,
|
||||
core.bool printFullLength = false,
|
||||
}) {
|
||||
if (isTestEnv) {
|
||||
if (isTestEnv || isArmLinux) {
|
||||
Logger.print(object, normalLength: !printFullLength);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -50,6 +50,20 @@ endfunction()
|
|||
set(FLUTTER_MANAGED_DIR "${CMAKE_CURRENT_SOURCE_DIR}/flutter")
|
||||
add_subdirectory(${FLUTTER_MANAGED_DIR})
|
||||
|
||||
# build libjsoncpp and libsecret for flutter_secure_storage
|
||||
set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:${CMAKE_CURRENT_SOURCE_DIR}/../scripts/linux/build/jsoncpp/build/pkg-config")
|
||||
set(ENV{PKG_CONFIG_PATH} "$ENV{PKG_CONFIG_PATH}:${CMAKE_CURRENT_SOURCE_DIR}/../scripts/linux/pc")
|
||||
|
||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../scripts/linux/build/jsoncpp/include)
|
||||
|
||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../scripts/linux/build/libsecret)
|
||||
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../scripts/linux/build/libsecret/_build)
|
||||
|
||||
add_library(jsoncpp SHARED IMPORTED)
|
||||
set_target_properties(jsoncpp PROPERTIES IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/../scripts/linux/build/jsoncpp/build/src/lib_json/libjsoncpp.so")
|
||||
add_library(secret-1 SHARED IMPORTED)
|
||||
set_target_properties(secret-1 PROPERTIES IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/../scripts/linux/build/libsecret/_build/libsecret/libsecret-1.so")
|
||||
|
||||
# System-level dependencies.
|
||||
find_package(PkgConfig REQUIRED)
|
||||
pkg_check_modules(GTK REQUIRED IMPORTED_TARGET gtk+-3.0)
|
||||
|
@ -71,8 +85,12 @@ add_executable(${BINARY_NAME}
|
|||
apply_standard_settings(${BINARY_NAME})
|
||||
|
||||
# Add dependency libraries. Add any application-specific dependencies here.
|
||||
target_link_libraries(${BINARY_NAME} PRIVATE -static-libgcc -static-libstdc++)
|
||||
target_link_libraries(${BINARY_NAME} PRIVATE flutter)
|
||||
target_link_libraries(${BINARY_NAME} PRIVATE PkgConfig::GTK)
|
||||
target_link_libraries(${BINARY_NAME} PRIVATE jsoncpp)
|
||||
target_link_libraries(${BINARY_NAME} PRIVATE secret-1)
|
||||
|
||||
|
||||
# Run the Flutter tool portions of the build. This must not be removed.
|
||||
add_dependencies(${BINARY_NAME} flutter_assemble)
|
||||
|
@ -125,6 +143,20 @@ install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_libepiccash
|
|||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_liblelantus/scripts/linux/build/libmobileliblelantus.so" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
|
||||
COMPONENT Runtime)
|
||||
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../scripts/linux/build/jsoncpp/build/src/lib_json/libjsoncpp.so.1.7.4" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
|
||||
COMPONENT Runtime)
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../scripts/linux/build/jsoncpp/build/src/lib_json/libjsoncpp.so.1" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
|
||||
COMPONENT Runtime)
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../scripts/linux/build/jsoncpp/build/src/lib_json/libjsoncpp.so" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
|
||||
COMPONENT Runtime)
|
||||
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../scripts/linux/build/libsecret/_build/libsecret/libsecret-1.so.0.0.0" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
|
||||
COMPONENT Runtime)
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../scripts/linux/build/libsecret/_build/libsecret/libsecret-1.so.0" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
|
||||
COMPONENT Runtime)
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../scripts/linux/build/libsecret/_build/libsecret/libsecret-1.so" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
|
||||
COMPONENT Runtime)
|
||||
|
||||
foreach(bundled_library ${PLUGIN_BUNDLED_LIBRARIES})
|
||||
install(FILES "${bundled_library}"
|
||||
DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
|
||||
|
|
|
@ -1,5 +1,11 @@
|
|||
#!/bin/bash
|
||||
|
||||
# for arm
|
||||
# flutter-elinux clean
|
||||
# flutter-elinux pub get
|
||||
# flutter-elinux build linux --dart-define="IS_ARM=true"
|
||||
mkdir build
|
||||
./build_secure_storage_deps.sh &
|
||||
(cd ../../crypto_plugins/flutter_liblelantus/scripts/linux && ./build_all.sh ) &
|
||||
(cd ../../crypto_plugins/flutter_libepiccash/scripts/linux && ./build_all.sh ) &
|
||||
(cd ../../crypto_plugins/flutter_libmonero/scripts/linux && ./build_monero_all.sh && ./build_sharedfile.sh ) &
|
||||
|
|
25
scripts/linux/build_secure_storage_deps.sh
Executable file
25
scripts/linux/build_secure_storage_deps.sh
Executable file
|
@ -0,0 +1,25 @@
|
|||
#!/bin/bash
|
||||
LINUX_DIRECTORY=$(pwd)
|
||||
mkdir build
|
||||
|
||||
# Build JsonCPP
|
||||
cd build
|
||||
git clone https://github.com/open-source-parsers/jsoncpp.git
|
||||
cd jsoncpp
|
||||
git checkout 1.7.4
|
||||
mkdir build
|
||||
cd build
|
||||
cmake -DCMAKE_BUILD_TYPE=release -DBUILD_STATIC_LIBS=ON -DBUILD_SHARED_LIBS=ON -DARCHIVE_INSTALL_DIR=. -G "Unix Makefiles" ..
|
||||
make -j$(nproc)
|
||||
|
||||
cd $LINUX_DIRECTORY
|
||||
# Build libSecret
|
||||
# sudo apt install meson libgirepository1.0-dev valac xsltproc gi-docgen docbook-xsl
|
||||
# sudo apt install python3-pip
|
||||
#pip3 install --user meson --upgrade
|
||||
# pip3 install --user gi-docgen
|
||||
cd build
|
||||
git clone https://gitlab.gnome.org/GNOME/libsecret.git
|
||||
cd libsecret
|
||||
meson _build
|
||||
ninja -C _build
|
15
scripts/linux/pc/libsecret-1.pc
Normal file
15
scripts/linux/pc/libsecret-1.pc
Normal file
|
@ -0,0 +1,15 @@
|
|||
prefix=/usr/local
|
||||
libdir=${prefix}/lib/x86_64-linux-gnu
|
||||
includedir=${prefix}/include
|
||||
|
||||
exec_prefix=${prefix}
|
||||
datarootdir=${prefix}/share
|
||||
datadir=${datarootdir}
|
||||
sysconfdir=${prefix}/etc
|
||||
|
||||
Name: libsecret-1
|
||||
Description: GObject bindings for Secret Service API
|
||||
Version: 0.20.5
|
||||
Requires: glib-2.0 >= 2.44, gio-2.0 >= 2.44, gio-unix-2.0 >= 2.44
|
||||
Requires.private: libgcrypt >= 1.2.2
|
||||
Libs: -L${libdir} -lsecret-1
|
Loading…
Reference in a new issue