first implementation

This commit is contained in:
Andrei Yankovich 2023-12-02 11:01:57 +01:00
parent fcc1c451c3
commit 64e95d1de0
40 changed files with 416 additions and 174 deletions

4
.gitignore vendored

@ -69,7 +69,7 @@ _deps
# Configured files
build.gradle
AndroidManifest.xml
src/Example/Deploy/RENAME_ME.json
src/Library/src/public/RENAME_ME/global.h
src/service/deploy/SecretService.json
global.h
doxygen.conf
Distro

9
.gitmodules vendored

@ -1,3 +1,6 @@
[submodule "CMake"]
path = submodules/CMake
url = https://github.com/QuasarApp/CMake.git
[submodule "submodules/Heart"]
path = submodules/Heart
url = https://github.com/QuasarApp/Heart.git
[submodule "submodules/Patronum"]
path = submodules/Patronum
url = https://github.com/QuasarApp/Patronum.git

@ -6,7 +6,7 @@
#
cmake_minimum_required(VERSION 3.19)
project(RENAME_ME LANGUAGES CXX)
project(SecretService LANGUAGES CXX)
if(TARGET ${PROJECT_NAME})
message("The ${PROJECT_NAME} arledy included in main Project")
return()
@ -24,37 +24,44 @@ if (ANDROID OR IOS)
set(BUILD_SHARED_LIBS ON)
endif()
find_package(Qt6 COMPONENTS Core REQUIRED)
find_package(Qt6 COMPONENTS Core Network Sql Concurrent REQUIRED)
find_package(Qt6 COMPONENTS Test QUIET)
include(submodules/CMake/QuasarApp.cmake)
include(submodules/Heart/submodules/QuasarAppLib/CMake/QuasarApp.cmake)
updateGitVars()
set(RENAME_ME_VERSION "0.${GIT_COMMIT_COUNT}.${GIT_COMMIT_HASH}")
set(RENAME_ME_PACKAGE_ID "quasarapp.core.RENAME_ME")
set(SECRETSERVICE_VERSION "0.${GIT_COMMIT_COUNT}.${GIT_COMMIT_HASH}")
set(SECRETSERVICE_PACKAGE_ID "quasarapp.core.secretservice")
option(RENAME_ME_TESTS "This option disables or enables tests of the ${PROJECT_NAME} project" ON)
option(RENAME_ME_EXAMPLE "This option disables or enables example app of the ${PROJECT_NAME} project" ON)
option(SECRETSERVICE_TESTS "This option disables or enables tests of the ${PROJECT_NAME} project" ON)
option(SECRETSERVICE_EXAMPLE "This option disables or enables example app of the ${PROJECT_NAME} project" ON)
if (ANDROID OR IOS OR QA_WASM32)
set(RENAME_ME_TESTS OFF CACHE BOOL "This option force disbled for ANDROID IOS QA_WASM32 and Not Qt projects" FORCE)
set(SECRETSERVICE_TESTS OFF CACHE BOOL "This option force disbled for ANDROID IOS QA_WASM32 and Not Qt projects" FORCE)
endif()
make_directory(Distro)
initAll()
if (RENAME_ME_TESTS)
if (SECRETSERVICE_TESTS)
add_subdirectory(src/testcore)
endif()
add_subdirectory(src/RENAME_ME)
set(HEART_TESTS OFF)
add_subdirectory(submodules/Heart)
if (DEFINED RENAME_ME_EXAMPLE)
add_subdirectory(src/core)
set(PATRONUM_TESTS OFF)
add_subdirectory(submodules/Patronum)
add_subdirectory(src/service)
if (DEFINED SECRETSERVICE_EXAMPLE)
add_subdirectory(src/example)
endif()
if (RENAME_ME_TESTS)
if (SECRETSERVICE_TESTS)
add_subdirectory(tests)
else()
message("The ${PROJECT_NAME} tests is disabled.")

@ -1,6 +1,6 @@
# CMakeProject
Template repository for cmake project
Fork me and replase RENAME_ME to Name of your new project.
Fork me and replase SecretService to Name of your new project.
1. Clone this repository
2. Run ./init.sh NewProjectName

@ -32,18 +32,18 @@ DOXYFILE_ENCODING = UTF-8
# title of most generated pages and in a few other places.
# The default value is: My Project.
PROJECT_NAME = RENAME_ME
PROJECT_NAME = SecretService
# The PROJECT_NUMBER tag can be used to enter a project or revision number. This
# could be handy for archiving the generated documentation or if some version
# control system is used.
PROJECT_NUMBER = @RENAME_ME_VERSION@
PROJECT_NUMBER = @SECRETSERVICE_VERSION@
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
# quick idea about the purpose of the project. Keep the description short.
PROJECT_BRIEF = RENAME_ME is base back end library for your c++ Qt projects.
PROJECT_BRIEF = SecretService is base back end library for your c++ Qt projects.
# With the PROJECT_LOGO tag one can specify a logo or an icon that is included
@ -1452,7 +1452,7 @@ GENERATE_ECLIPSEHELP = NO
# The default value is: org.doxygen.Project.
# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
ECLIPSE_DOC_ID = QuasarApp.RENAME_ME
ECLIPSE_DOC_ID = QuasarApp.SecretService
# If you want full control over the layout of the generated HTML pages it might
# be necessary to disable the index and replace it with your own. The

62
init.sh

@ -1,62 +0,0 @@
#!/bin/sh
echo "Project name: $1"
if [ $# -ne 1 ]
then
echo "You call this script wtth wrong arguments."
echo "Example for start script:"
echo "./init.sh MyCmakeProject"
echo "Usage: $0 <replacement_string>"
exit 1
fi
replacement="$1"
rename_files_and_folders() {
local dir="$1"
local old_str="$2"
local new_str="$3"
for item in "$dir"/*; do
if [ -d "$item" ]; then
new_name=$(echo "$item" | sed "s/$old_str/$new_str/g")
if [ "$item" != "$new_name" ]; then
mv "$item" "$new_name"
echo "Renamed directory: $item -> $new_name"
fi
rename_files_and_folders "$new_name" "$old_str" "$new_str"
elif [ -f "$item" ]; then
sed -i "s/$old_str/$new_str/g" "$item"
new_name=$(echo "$item" | sed "s/$old_str/$new_str/g")
if [ "$item" != "$new_name" ]; then
mv "$item" "$new_name"
echo "Renamed file: $item -> $new_name"
fi
fi
done
}
uppercase_string=$(echo "$replacement" | tr '[:lower:]' '[:upper:]')
rename_files_and_folders "." "RENAME_ME_EXPORT" "${uppercase_string}_EXPORT"
rename_files_and_folders "." "RENAME_ME_VERSION" "${uppercase_string}_VERSION"
rename_files_and_folders "." "RENAME_ME_LIBRARY" "${uppercase_string}_LIBRARY"
rename_files_and_folders "." "RENAME_ME_EXAMPLE" "${uppercase_string}_EXAMPLE"
rename_files_and_folders "." "RENAME_ME_TESTS" "${uppercase_string}_TESTS"
rename_files_and_folders "." "RENAME_ME_PACKAGE_ID" "${uppercase_string}_PACKAGE_ID"
rename_files_and_folders "." "RENAME_ME" "$replacement"
echo "Replacement complete."
git config -f .gitmodules --get-regexp '^submodule\..*\.path$' |
while read path_key path
do
url_key=$(echo $path_key | sed 's/\.path/.url/')
url=$(git config -f .gitmodules --get "$url_key")
git submodule add $url $path
done

@ -1,9 +0,0 @@
<RCC>
<qresource prefix="/">
<file>src/RENAME_MEModule/qmldir</file>
<file>src/RENAME_MEModule/RENAME_ME.qml</file>
</qresource>
<qresource prefix="/RENAME_METr">
<file>languages/en.qm</file>
</qresource>
</RCC>

@ -1,3 +0,0 @@
module RENAME_MEModule
RENAME_ME 1.0 RENAME_ME.qml

@ -7,8 +7,8 @@
cmake_minimum_required(VERSION 3.19)
set(CURRENT_PROJECT "${PROJECT_NAME}")
add_definitions(-DRENAME_ME_LIBRARY)
set(CURRENT_PROJECT "${PROJECT_NAME}Core")
add_definitions(-DSECRETSERVICE_LIBRARY)
file(GLOB_RECURSE SOURCE_CPP
@ -25,12 +25,12 @@ set(PRIVATE_INCUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src/private")
add_library(${CURRENT_PROJECT} ${SOURCE_CPP} ${SOURCE_QRC})
if (RENAME_ME_TESTS)
if (SECRETSERVICE_TESTS)
target_link_libraries(${CURRENT_PROJECT} PUBLIC ${PROJECT_NAME}testcore)
else()
target_link_libraries(${CURRENT_PROJECT} PUBLIC Qt${QT_VERSION_MAJOR}::Core )
endif()
target_link_libraries(${CURRENT_PROJECT} PUBLIC Qt${QT_VERSION_MAJOR}::Core Heart)
target_include_directories(${CURRENT_PROJECT} PUBLIC ${PUBLIC_INCUDE_DIR})
target_include_directories(${CURRENT_PROJECT} PRIVATE ${PRIVATE_INCUDE_DIR})
@ -41,4 +41,4 @@ prepareQM(${CURRENT_PROJECT} ${CMAKE_CURRENT_SOURCE_DIR} "${LANGS}")
set(QML_IMPORT_PATH ${QML_IMPORT_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/src" CACHE STRING "" FORCE)
configure_file_in(${CURRENT_PROJECT} "${CMAKE_CURRENT_SOURCE_DIR}/src/public/RENAME_ME/global.h")
configure_file_in(${CURRENT_PROJECT} "${CMAKE_CURRENT_SOURCE_DIR}/src/public/QASecret/global.h")

6
src/core/secretcore.qrc Normal file

@ -0,0 +1,6 @@
<RCC>
<qresource prefix="/"/>
<qresource prefix="/SecretServiceTr">
<file>languages/en.qm</file>
</qresource>
</RCC>

@ -5,18 +5,23 @@
//# of this license document, but changing it is not allowed.
//#
#include "RENAME_ME.h"
#include "QASecret.h"
#include <QASecret/keystorage.h>
namespace RENAME_ME {
namespace QASecret {
bool init() {
initRENAME_MEResources();
initSecretServiceResources();
KeyStorage::initService();
return true;
}
QString version() {
return RENAME_ME_VERSION;
return SECRETSERVICE_VERSION;
}

@ -5,23 +5,23 @@
//# of this license document, but changing it is not allowed.
//#
#include "RENAME_ME/global.h"
#include "QASecret/global.h"
#include <QString>
inline void initRENAME_MEResources() { Q_INIT_RESOURCE(RENAME_ME); }
inline void initSecretServiceResources() { Q_INIT_RESOURCE(secretcore); }
namespace RENAME_ME {
namespace QASecret {
/**
* @brief init main initialize method of The RENAME_ME library
* @brief init main initialize method of The SecretService library
* @return true if library initialized successfull
*/
bool RENAME_ME_EXPORT init();
bool SECRETSERVICE_EXPORT init();
/**
* @brief version This method return string value of a library version
* @return string value of a library version
*/
QString RENAME_ME_EXPORT version();
QString SECRETSERVICE_EXPORT version();
};

@ -5,18 +5,18 @@
//# of this license document, but changing it is not allowed.
//#
#ifndef RENAME_ME_GLOBAL_H
#define RENAME_ME_GLOBAL_H
#ifndef SecretService_GLOBAL_H
#define SecretService_GLOBAL_H
#include <QtCore/qglobal.h>
#define RENAME_ME_VERSION "0.89.ae3db6a"
#define SECRETSERVICE_VERSION "0.1.fcc1c45"
#if defined(RENAME_ME_LIBRARY)
# define RENAME_ME_EXPORT Q_DECL_EXPORT
#if defined(SECRETSERVICE_LIBRARY)
# define SECRETSERVICE_EXPORT Q_DECL_EXPORT
#else
# define RENAME_ME_EXPORT Q_DECL_IMPORT
# define SECRETSERVICE_EXPORT Q_DECL_IMPORT
#endif
#endif //RENAME_ME_GLOBAL_H
#endif //SecretService_GLOBAL_H

@ -5,18 +5,18 @@
//# of this license document, but changing it is not allowed.
//#
#ifndef RENAME_ME_GLOBAL_H
#define RENAME_ME_GLOBAL_H
#ifndef SecretService_GLOBAL_H
#define SecretService_GLOBAL_H
#include <QtCore/qglobal.h>
#define RENAME_ME_VERSION "@RENAME_ME_VERSION@"
#define SECRETSERVICE_VERSION "@SECRETSERVICE_VERSION@"
#if defined(RENAME_ME_LIBRARY)
# define RENAME_ME_EXPORT Q_DECL_EXPORT
#if defined(SECRETSERVICE_LIBRARY)
# define SECRETSERVICE_EXPORT Q_DECL_EXPORT
#else
# define RENAME_ME_EXPORT Q_DECL_IMPORT
# define SECRETSERVICE_EXPORT Q_DECL_IMPORT
#endif
#endif //RENAME_ME_GLOBAL_H
#endif //SecretService_GLOBAL_H

@ -0,0 +1,42 @@
//#
//# Copyright (C) 2023-2023 QuasarApp.
//# Distributed under the GPLv3 software license, see the accompanying
//# Everyone is permitted to copy and distribute verbatim copies
//# of this license document, but changing it is not allowed.
//#
#include "keystorage.h"
#include <QCryptographicHash>
namespace QASecret {
KeyStorage::KeyStorage() {}
QByteArray KeyStorage::add(const QByteArray &value, const QString &alias) {
QByteArray&& key = QCryptographicHash::hash(value, QCryptographicHash::Sha256);
_storage[key] = value;
_aliases[alias] = value;
return key;
}
void KeyStorage::remove(const QByteArray &key) {
_storage.remove(key);
}
void KeyStorage::remove(const QString &alias) {
_aliases.remove(alias);
}
QByteArray KeyStorage::get(const QByteArray &key) {
auto&& result = _storage.value(key);
return result;
}
QByteArray KeyStorage::get(const QString &alias) {
auto&& result = _aliases.value(alias);
return result;
}
}

@ -0,0 +1,65 @@
//#
//# Copyright (C) 2023-2023 QuasarApp.
//# Distributed under the GPLv3 software license, see the accompanying
//# Everyone is permitted to copy and distribute verbatim copies
//# of this license document, but changing it is not allowed.
//#
#ifndef KEYSTORAGE_H
#define KEYSTORAGE_H
#include "qaservice.h"
#include <QHash>
namespace QASecret {
/**
* @brief The KeyStorage class the storage store seccrets values on the simple key - value table. Where value is secrete and key is a sha256(secret) hash.
*/
class KeyStorage: public QuasarAppUtils::Service<KeyStorage>
{
public:
KeyStorage();
/**
* @brief add adds to storage new value, and return access key.
* @param value This is value to save.
* @param alias This is simple alias for get key.
* @return access key of @a value.
*/
QByteArray add(const QByteArray& value, const QString& alias = {});
/**
* @brief remove This method remove secret from storage by key.
* @param key This is sha256 key of secret
*/
void remove(const QByteArray& key);
/**
* @brief remove This method remove seccret value by alias.
* @param alias
*/
void remove(const QString& alias);
/**
* @brief get return value by access key.
* @param key this is access key of value.
* @return secret value
*/
QByteArray get(const QByteArray& key);
/**
* @brief get return value by alias of key.
* @param key this is access key of value.
* @return secret value
*/
QByteArray get(const QString& alias);
private:
QHash<QByteArray, QByteArray> _storage;
QHash<QString, QByteArray> _aliases;
};
}
#endif // KEYSTORAGE_H

@ -30,7 +30,7 @@ updateGitVars()
qt_add_executable(${CURRENT_PROJECT} ${ALL_SOURCES})
target_link_libraries(${CURRENT_PROJECT} PUBLIC ${PROJECT_NAME})
target_link_libraries(${CURRENT_PROJECT} PUBLIC ${PROJECT_NAME}Core)
target_include_directories(${CURRENT_PROJECT} PUBLIC ${PUBLIC_INCUDE_DIR})
target_include_directories(${CURRENT_PROJECT} PRIVATE ${PRIVATE_INCUDE_DIR})
@ -45,7 +45,7 @@ if (ANDROID)
set(ANDROID_API_VERSION $ENV{ANDROID_API_VERSION})
set(OPENSSL_ROOT_PATH "$ENV{OPENSSL_ROOT_DIR}")
set(RENAME_ME_EXTRA_LIBS
set(SecretService_EXTRA_LIBS
${PROJECT_NAME}Library
# libName
)
@ -58,7 +58,7 @@ if (ANDROID)
"${SIGPATH}/quasarapp.keystore"
"${SIGPASS_QUASARAPP}"
"${TARGET_DIR}"
"${RENAME_ME_EXTRA_LIBS}")
"${SecretService_EXTRA_LIBS}")
else()
message("NO_SIGN_APP")
@ -66,7 +66,7 @@ if (ANDROID)
addDeployAPK(${CURRENT_PROJECT}
"${CMAKE_CURRENT_LIST_DIR}/android"
"${TARGET_DIR}"
"${RENAME_ME_EXTRA_LIBS}")
"${SecretService_EXTRA_LIBS}")
endif()
set(manifest_file "${CMAKE_CURRENT_SOURCE_DIR}/android/AndroidManifest.xml")
@ -92,17 +92,17 @@ elseif(IOS)
# set_xcode_property(${CURRENT_PROJECT} PRODUCT_BUNDLE_IDENTIFIER ${CHEATCARD_PACKAGE_ID} All)
set_target_properties(${CURRENT_PROJECT} PROPERTIES
MACOSX_BUNDLE_GUI_IDENTIFIER ${RENAME_ME_PACKAGE_ID}
MACOSX_BUNDLE_BUNDLE_VERSION ${RENAME_ME_VERSION}
MACOSX_BUNDLE_SHORT_VERSION_STRING ${RENAME_ME_VERSION}
MACOSX_BUNDLE_GUI_IDENTIFIER ${SECRETSERVICE_PACKAGE_ID}
MACOSX_BUNDLE_BUNDLE_VERSION ${SECRETSERVICE_VERSION}
MACOSX_BUNDLE_SHORT_VERSION_STRING ${SECRETSERVICE_VERSION}
)
else()
# Desctop deploying
message(GIT_COMMIT_COUNT = ${GIT_COMMIT_COUNT})
configure_file_in(${CURRENT_PROJECT} "${CMAKE_CURRENT_SOURCE_DIR}/deploy/RENAME_ME.json")
configure_file_in(${CURRENT_PROJECT} "${CMAKE_CURRENT_SOURCE_DIR}/deploy/SecretService.json")
addDeployFromCustomFile(${CURRENT_PROJECT} "${CMAKE_CURRENT_SOURCE_DIR}/deploy/RENAME_ME.json")
addDeployFromCustomFile(${CURRENT_PROJECT} "${CMAKE_CURRENT_SOURCE_DIR}/deploy/SecretService.json")
endif()

@ -1,5 +1,5 @@
<?xml version="1.0"?>
<manifest package="@RENAME_ME_PACKAGE_ID@" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="@RENAME_ME_VERSION@" android:versionCode="@GIT_COMMIT_COUNT@" android:installLocation="auto">
<manifest package="@SECRETSERVICE_PACKAGE_ID@" xmlns:android="http://schemas.android.com/apk/res/android" android:versionName="@SECRETSERVICE_VERSION@" android:versionCode="@GIT_COMMIT_COUNT@" android:installLocation="auto">
<!-- The following comment will be replaced upon deployment with default permissions based on the dependencies of the application.
Remove the comment if you do not require these default permissions. -->
<!-- %%INSERT_PERMISSIONS -->

@ -1,27 +0,0 @@
{
"bin": [
"src/example/RENAME_ME_example",
"src/example/RENAME_ME_example.exe"
],
"clear": true,
"binPrefix": "/media/D/builds/build-CMakeProject-Desktop_Qt_6_5_2_GCC_64bit-Debug",
"libDir": [
"/media/D/builds/CMakeProject",
"/home/andrei/Qt/6.5.2/gcc_64",
"/media/D/builds/build-CMakeProject-Desktop_Qt_6_5_2_GCC_64bit-Debug"
],
"recursiveDepth": "10",
"deploySystem": false,
"qmlDir": "../",
"deb": true,
"qif": true,
"zip": true,
"ignoreEnv": [
"/media/D/builds/CMakeProject/Distro"
],
"extraLib": "crypto",
"targetDir": "/media/D/builds/CMakeProject/Distro",
"deployVersion": "0.89.ae3db6a"
}

@ -0,0 +1,27 @@
{
"bin": [
"src/service/SecretService",
"src/service/SecretService.exe"
],
"clear": true,
"binPrefix": "/media/D/builds/build-SecretService-Desktop_Qt_6_6_1_GCC_64bit-Debug",
"libDir": [
"/media/D/builds/SecretService",
"/home/andrei/Qt/6.6.1/gcc_64",
"/media/D/builds/build-SecretService-Desktop_Qt_6_6_1_GCC_64bit-Debug"
],
"recursiveDepth": "10",
"deploySystem": false,
"qmlDir": "../",
"deb": true,
"qif": true,
"zip": true,
"ignoreEnv": [
"/media/D/builds/SecretService/Distro"
],
"extraLib": "crypto",
"targetDir": "/media/D/builds/SecretService/Distro",
"deployVersion": "0.1.fcc1c45"
}

@ -1,7 +1,7 @@
{
"bin": [
"src/example/RENAME_ME_example",
"src/example/RENAME_ME_example.exe"
"src/service/SecretService",
"src/service/SecretService.exe"
],
"clear": true,
"binPrefix": "@CMAKE_BINARY_DIR@",
@ -21,7 +21,7 @@
],
"extraLib": "crypto",
"targetDir": "@CMAKE_SOURCE_DIR@/Distro",
"deployVersion": "@RENAME_ME_VERSION@"
"deployVersion": "@SECRETSERVICE_VERSION@"
}

122
src/service/CMakeLists.txt Normal file

@ -0,0 +1,122 @@
#
# Copyright (C) 2021-2023 QuasarApp.
# Distributed under the GPLv3 software license, see the accompanying
# Everyone is permitted to copy and distribute verbatim copies
# of this license document, but changing it is not allowed.
#
cmake_minimum_required(VERSION 3.19)
get_filename_component(CURRENT_PROJECT_DIR ${CMAKE_CURRENT_SOURCE_DIR} NAME)
set(CURRENT_PROJECT "${PROJECT_NAME}_${CURRENT_PROJECT_DIR}")
option(SIGN_APP "This option enable od disabled sign apk and aab files" ON)
file(GLOB_RECURSE SOURCE_CPP
"*.cpp" "*.h"
)
file(GLOB_RECURSE SOURCE_QRC
"*.qrc"
)
set(ALL_SOURCES ${SOURCE_CPP} ${SOURCE_QRC})
set(PUBLIC_INCUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}")
set(PRIVATE_INCUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/private")
updateGitVars()
qt_add_executable(${CURRENT_PROJECT} ${ALL_SOURCES})
target_link_libraries(${CURRENT_PROJECT} PUBLIC ${PROJECT_NAME}Core Patronum)
target_include_directories(${CURRENT_PROJECT} PUBLIC ${PUBLIC_INCUDE_DIR})
target_include_directories(${CURRENT_PROJECT} PRIVATE ${PRIVATE_INCUDE_DIR})
SET(TARGET_DIR "${CMAKE_SOURCE_DIR}/Distro")
file(MAKE_DIRECTORY ${TARGET_DIR})
if (ANDROID)
set(ANDROID_PACKAGE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/android CACHE INTERNAL "")
set(ENV{ANDROID_API_VERSION} 31)
set(ANDROID_API_VERSION $ENV{ANDROID_API_VERSION})
set(OPENSSL_ROOT_PATH "$ENV{OPENSSL_ROOT_DIR}")
set(SecretService_EXTRA_LIBS
${PROJECT_NAME}Library
# libName
)
if (SIGN_APP)
message("SIGN_APP")
addDeploySignedAPK(${CURRENT_PROJECT}
"${CMAKE_CURRENT_LIST_DIR}/android"
"QuasarAppProject"
"${SIGPATH}/quasarapp.keystore"
"${SIGPASS_QUASARAPP}"
"${TARGET_DIR}"
"${SecretService_EXTRA_LIBS}")
else()
message("NO_SIGN_APP")
addDeployAPK(${CURRENT_PROJECT}
"${CMAKE_CURRENT_LIST_DIR}/android"
"${TARGET_DIR}"
"${SecretService_EXTRA_LIBS}")
endif()
set(manifest_file "${CMAKE_CURRENT_SOURCE_DIR}/android/AndroidManifest.xml")
configure_file("${manifest_file}.in" ${manifest_file} @ONLY)
set(gradle_file "${CMAKE_CURRENT_SOURCE_DIR}/android/build.gradle")
configure_file("${gradle_file}.in" ${gradle_file} @ONLY)
file(GLOB java_files
"android/src/com/quasarapp/androidtools/*.java"
"android/*.xml"
"android/*.gradle"
"android/gradlew"
"android/gradle.*"
)
add_custom_target(${name}Android
SOURCES ${java_files}
)
elseif(IOS)
# set_xcode_property(${CURRENT_PROJECT} PRODUCT_BUNDLE_IDENTIFIER ${CHEATCARD_PACKAGE_ID} All)
set_target_properties(${CURRENT_PROJECT} PROPERTIES
MACOSX_BUNDLE_GUI_IDENTIFIER ${SECRETSERVICE_PACKAGE_ID}
MACOSX_BUNDLE_BUNDLE_VERSION ${SECRETSERVICE_VERSION}
MACOSX_BUNDLE_SHORT_VERSION_STRING ${SECRETSERVICE_VERSION}
)
else()
# Desctop deploying
message(GIT_COMMIT_COUNT = ${GIT_COMMIT_COUNT})
configure_file_in(${CURRENT_PROJECT} "${CMAKE_CURRENT_SOURCE_DIR}/deploy/SecretService.json")
addDeployFromCustomFile(${CURRENT_PROJECT} "${CMAKE_CURRENT_SOURCE_DIR}/deploy/SecretService.json")
endif()
set(LANGS ${CMAKE_CURRENT_SOURCE_DIR}/languages/en.ts
${CMAKE_CURRENT_SOURCE_DIR}/languages/ru.ts
${CMAKE_CURRENT_SOURCE_DIR}/languages/uk.ts
${CMAKE_CURRENT_SOURCE_DIR}/languages/ja.ts
${CMAKE_CURRENT_SOURCE_DIR}/languages/tr.ts
${CMAKE_CURRENT_SOURCE_DIR}/languages/zh.ts
${CMAKE_CURRENT_SOURCE_DIR}/languages/de.ts
${CMAKE_CURRENT_SOURCE_DIR}/languages/fr.ts
${CMAKE_CURRENT_SOURCE_DIR}/languages/es.ts
${CMAKE_CURRENT_SOURCE_DIR}/languages/pl.ts)
prepareQM(${CURRENT_PROJECT} ${CMAKE_CURRENT_SOURCE_DIR}/../ "${LANGS}")

@ -0,0 +1,27 @@
{
"bin": [
"src/example/SecretService_example",
"src/example/SecretService_example.exe"
],
"clear": true,
"binPrefix": "@CMAKE_BINARY_DIR@",
"libDir": [
"@CMAKE_SOURCE_DIR@",
"@CMAKE_PREFIX_PATH@",
"@CMAKE_BINARY_DIR@"
],
"recursiveDepth": "10",
"deploySystem": false,
"qmlDir": "../",
"deb": true,
"qif": true,
"zip": true,
"ignoreEnv": [
"@CMAKE_SOURCE_DIR@/Distro"
],
"extraLib": "crypto",
"targetDir": "@CMAKE_SOURCE_DIR@/Distro",
"deployVersion": "@SECRETSERVICE_VERSION@"
}

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1">
</TS>

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1">
</TS>

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1">
</TS>

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1">
</TS>

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1">
</TS>

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1">
</TS>

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1">
</TS>

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1">
</TS>

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1">
</TS>

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1">
</TS>

@ -1,12 +1,10 @@
//#
//# Copyright (C) 2021-2023 QuasarApp.
//# Distributed under the lgplv3 software license, see the accompanying
//# Distributed under the GPLv3 software license, see the accompanying
//# Everyone is permitted to copy and distribute verbatim copies
//# of this license document, but changing it is not allowed.
//#
import QtQuick 2.15
Item {
int main(int argc, char *argv[]) {
return 0;
}

@ -1 +0,0 @@
Subproject commit 9188d4124c1a9f5e01887ba5f969879f7c48922a

1
submodules/Heart Submodule

@ -0,0 +1 @@
Subproject commit f1443bec121175ce8428d96adc8b4eda7defeb02

1
submodules/Patronum Submodule

@ -0,0 +1 @@
Subproject commit 98f905485d5e8f19e06306d39aa6887e969969c7

@ -20,7 +20,7 @@ set(PUBLIC_INCUDE_DIR ${PUBLIC_INCUDE_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/units")
add_executable(${CURRENT_PROJECT} ${SOURCE_CPP})
target_link_libraries(${CURRENT_PROJECT} PRIVATE Qt${QT_VERSION_MAJOR}::Test ${PROJECT_NAME})
target_link_libraries(${CURRENT_PROJECT} PRIVATE Qt${QT_VERSION_MAJOR}::Test ${PROJECT_NAME}Core)
target_include_directories(${CURRENT_PROJECT} PUBLIC ${PUBLIC_INCUDE_DIR})

@ -57,7 +57,7 @@ tstMain::tstMain() {
char * argv[] = {nullptr};
_app = new QCoreApplication(argc, argv);
QCoreApplication::setApplicationName("testRENAME_ME");
QCoreApplication::setApplicationName("testSecretService");
QCoreApplication::setOrganizationName("QuasarApp");
auto path = QStandardPaths::writableLocation(QStandardPaths::AppDataLocation);