mirror of
https://github.com/QuasarApp/SecretService.git
synced 2025-05-05 09:49:38 +00:00
first implementation
This commit is contained in:
parent
fcc1c451c3
commit
64e95d1de0
4
.gitignore
vendored
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
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
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
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
|
||||
|
42
src/core/src/public/QASecret/keystorage.cpp
Normal file
42
src/core/src/public/QASecret/keystorage.cpp
Normal file
@ -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;
|
||||
}
|
||||
}
|
65
src/core/src/public/QASecret/keystorage.h
Normal file
65
src/core/src/public/QASecret/keystorage.h
Normal file
@ -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"
|
||||
|
||||
}
|
||||
|
27
src/example/deploy/SecretService.json
Normal file
27
src/example/deploy/SecretService.json
Normal file
@ -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
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}")
|
||||
|
||||
|
27
src/service/deploy/SecretService.json.in
Normal file
27
src/service/deploy/SecretService.json.in
Normal file
@ -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@"
|
||||
|
||||
}
|
||||
|
4
src/service/languages/de.ts
Normal file
4
src/service/languages/de.ts
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1">
|
||||
</TS>
|
4
src/service/languages/en.ts
Normal file
4
src/service/languages/en.ts
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1">
|
||||
</TS>
|
4
src/service/languages/es.ts
Normal file
4
src/service/languages/es.ts
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1">
|
||||
</TS>
|
4
src/service/languages/fr.ts
Normal file
4
src/service/languages/fr.ts
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1">
|
||||
</TS>
|
4
src/service/languages/ja.ts
Normal file
4
src/service/languages/ja.ts
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1">
|
||||
</TS>
|
4
src/service/languages/pl.ts
Normal file
4
src/service/languages/pl.ts
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1">
|
||||
</TS>
|
4
src/service/languages/ru.ts
Normal file
4
src/service/languages/ru.ts
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1">
|
||||
</TS>
|
4
src/service/languages/tr.ts
Normal file
4
src/service/languages/tr.ts
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1">
|
||||
</TS>
|
4
src/service/languages/uk.ts
Normal file
4
src/service/languages/uk.ts
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1">
|
||||
</TS>
|
4
src/service/languages/zh.ts
Normal file
4
src/service/languages/zh.ts
Normal file
@ -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
1
submodules/Heart
Submodule
@ -0,0 +1 @@
|
||||
Subproject commit f1443bec121175ce8428d96adc8b4eda7defeb02
|
1
submodules/Patronum
Submodule
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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user