aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSaturneric <[email protected]>2022-01-10 16:36:43 +0000
committerSaturneric <[email protected]>2022-01-10 16:36:43 +0000
commit1d2a9bc99ddbfcd5aeece0b008a2383e84e1b03b (patch)
treeae0515bceef4bb19f0a57678c2b810c46b3ed05f
parentMerge branch 'develop-2.0.5' into dev/ci/2.0.5 (diff)
parent<refactor>(ci): update ci file. (diff)
downloadGpgFrontend-1d2a9bc99ddbfcd5aeece0b008a2383e84e1b03b.tar.gz
GpgFrontend-1d2a9bc99ddbfcd5aeece0b008a2383e84e1b03b.zip
Merge branch 'dev/ci/2.0.4' into dev/ci/2.0.5
Diffstat (limited to '')
-rw-r--r--.github/workflows/debug.yml16
-rw-r--r--.github/workflows/release-deb-package.yml (renamed from .github/workflows/release-linux-package.yml)60
-rw-r--r--.github/workflows/release.yml18
-rw-r--r--CMakeLists.txt132
-rw-r--r--src/CMakeLists.txt12
-rw-r--r--src/gpg/CMakeLists.txt6
-rw-r--r--src/gpg/GpgConstants.cpp64
-rw-r--r--third_party/CMakeLists.txt4
8 files changed, 191 insertions, 121 deletions
diff --git a/.github/workflows/debug.yml b/.github/workflows/debug.yml
index b88b607e..4871fc8b 100644
--- a/.github/workflows/debug.yml
+++ b/.github/workflows/debug.yml
@@ -2,19 +2,15 @@ name: Debug Build & Package
on:
push:
- branches: [ develop, develop_ui ]
+ branches: [ 'develop-**', 'dev/**' ]
paths-ignore:
- - '**/README.md'
- - '**/README_CN.md'
- - 'resource/ts/**'
+ - 'resource/locale/template/**'
- 'docs/**'
- '**.md'
pull_request:
- branches: [ develop ]
+ branches: [ 'develop-**', 'dev/**' ]
paths-ignore:
- - '**/README.md'
- - '**/README_CN.md'
- - 'resource/ts/**'
+ - 'resource/locale/template/**'
- 'docs/**'
- '**.md'
@@ -137,7 +133,7 @@ jobs:
- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
- run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DEXECUTABLE_OUTPUT_PATH=${{env.EXECUTABLE_OUTPUT_PATH}} -DBUILD_CONFIG="test_ui"
+ run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DGPGFRONTEND_BUILD_TYPE_TEST_UI=ON
if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-10.15'
- name: Build GpgFrontend
@@ -150,7 +146,7 @@ jobs:
run: |
cd $(echo "/${{github.workspace}}" | sed 's/\\/\//g' | sed 's/://')
mkdir build && cd build
- cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DEXECUTABLE_OUTPUT_PATH=${{env.EXECUTABLE_OUTPUT_PATH}} ..
+ cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DGPGFRONTEND_BUILD_TYPE_TEST_UI=ON ..
# Build your program with the given configuration
cmake --build . --config ${{env.BUILD_TYPE}} -- -j 2
if: matrix.os == 'windows-latest'
diff --git a/.github/workflows/release-linux-package.yml b/.github/workflows/release-deb-package.yml
index 6919f6ce..ba4b7819 100644
--- a/.github/workflows/release-linux-package.yml
+++ b/.github/workflows/release-deb-package.yml
@@ -2,19 +2,17 @@ name: Build Linux Packages
on:
push:
- branches: [ main, develop-**, dev/** ]
+ branches: [ main, 'develop-**', 'dev/**' ]
paths-ignore:
- - '**/README.md'
- - '**/README_CN.md'
- - 'resource/ts/**'
+ - 'resource/locale/template/**'
- 'docs/**'
+ - '**.md'
pull_request:
- branches: [ develop ]
+ branches: [ 'develop-**', 'dev/**' ]
paths-ignore:
- - '**/README.md'
- - '**/README_CN.md'
- - 'resource/ts/**'
+ - 'resource/locale/template/**'
- 'docs/**'
+ - '**.md'
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
@@ -25,7 +23,7 @@ jobs:
build:
strategy:
matrix:
- os: [ 'ubuntu-18.04' ]
+ os: [ 'ubuntu-20.04' ]
runs-on: ${{ matrix.os }}
steps:
@@ -37,35 +35,16 @@ jobs:
id: vars
run: echo "::set-output name=sha_short::$(git rev-parse --short HEAD)"
- - name: Install Dependence (Linux)
+ - name: Install Dependence (Ubuntu 20.04)
run: |
sudo apt-get update
- sudo apt-get -y install build-essential binutils git autoconf automake gettext texinfo
- sudo apt-get -y install gcc-8 g++-8 libconfig++-dev libboost-all-dev
+ sudo apt-get -y install build-essential binutils git autoconf automake gettext texinfo qt5-default
+ sudo apt-get -y install gcc g++ libconfig++-dev libboost-all-dev
sudo apt-get -y install gpgsm libxcb-xinerama0 libxcb-icccm4-dev libcups2-dev libdrm-dev libegl1-mesa-dev
- sudo apt-get -y install libgcrypt11-dev libnss3-dev libpci-dev libpulse-dev libudev-dev libxtst-dev gyp ninja-build
+ sudo apt-get -y install libgcrypt20-dev libnss3-dev libpci-dev libpulse-dev libudev-dev libxtst-dev gyp ninja-build
sudo apt-get -y install libglu1-mesa-dev libfontconfig1-dev libx11-xcb-dev libicu-dev libxcb-image0
sudo apt-get -y install libglu1-mesa-dev libfontconfig1-dev libx11-xcb-dev libicu-dev libxcb-*
- sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 8
- sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 8
- sudo update-alternatives --set gcc "/usr/bin/gcc-8"
- sudo update-alternatives --set g++ "/usr/bin/g++-8"
- if: matrix.os == 'ubuntu-18.04'
-
- - name: Cache Qt
- id: cache-qt
- uses: actions/cache@v1
- with:
- path: ../Qt
- key: ${{ runner.os }}-QtCache-5.12.8
- if: matrix.os == 'ubuntu-18.04'
-
- - name: Install Qt
- uses: jurplel/install-qt-action@v2
- with:
- cached: ${{ steps.cache-qt.outputs.cache-hit }}
- version: '5.12.8'
- if: matrix.os == 'ubuntu-18.04'
+ if: matrix.os == 'ubuntu-20.04'
- name: Build gpg-error
run: |
@@ -74,7 +53,6 @@ jobs:
./configure --enable-maintainer-mode --enable-static=yes && make -j2
sudo make install
cd ${{github.workspace}}
- if: matrix.os == 'ubuntu-18.04'
- name: Build assuan
run: |
@@ -83,7 +61,6 @@ jobs:
./configure --enable-maintainer-mode --enable-static=yes && make -j2
sudo make install
cd ${{github.workspace}}
- if: matrix.os == 'ubuntu-18.04'
- name: Build vmime
run: |
@@ -103,21 +80,18 @@ jobs:
./configure --enable-maintainer-mode --enable-static=yes --enable-languages=cpp && make -j2
sudo make install
cd ${{github.workspace}}
- if: matrix.os == 'ubuntu-18.04'
- name: Build & Package GpgFrontend (Linux DEB Package)
# Build your program with the given configuration
run: |
- cmake -B ${{github.workspace}}/build-deb -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DEXECUTABLE_OUTPUT_PATH=${{env.EXECUTABLE_OUTPUT_PATH}} -DAPP_PACKAGE_DEB=ON -DLINUX_INSTALL_SOFTWARE=ON
- cmake --build ${{github.workspace}}/build-deb --config {{$env.BUILD_TYPE}} -- -j 2
- cd ${{github.workspace}}/build-deb
+ cmake -B ${{github.workspace}}/build-deb-${{matrix.os}} -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DCMAKE_BUILD_TYPE="Release" -DGENERATE_LINUX_INSTALL_SOFTWARE=ON
+ cmake --build ${{github.workspace}}/build-deb-${{matrix.os}} --config {{$env.BUILD_TYPE}} -- -j 2
+ cd ${{github.workspace}}/build-deb-${{matrix.os}}
make package
cd ${{github.workspace}}
- if: matrix.os == 'ubuntu-18.04'
- name: Upload Artifact(Linux DEB)
uses: actions/upload-artifact@master
with:
- name: gpgfrontend-${{matrix.os}}-${{env.BUILD_TYPE}}-${{steps.vars.outputs.sha_short}}-deb
- path: ${{github.workspace}}/build-deb/gpgfrontend*.deb*
- if: matrix.os == 'ubuntu-18.04'
+ name: gpgfrontend-${{matrix.os}}-${{env.BUILD_TYPE}}-${{steps.vars.outputs.sha_short}}-deb-${{matrix.os}}
+ path: ${{github.workspace}}/build-deb-${{matrix.os}}/gpgfrontend*.deb*
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 7bb8120b..63ccfbe3 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -2,19 +2,17 @@ name: Build & Package
on:
push:
- branches: [ main, develop ]
+ branches: [ main, 'develop-**', 'dev/**' ]
paths-ignore:
- - '**/README.md'
- - '**/README_CN.md'
- - 'resource/ts/**'
+ - 'resource/locale/template/**'
- 'docs/**'
+ - '**.md'
pull_request:
- branches: [ develop ]
+ branches: [ 'develop-**', 'dev/**' ]
paths-ignore:
- - '**/README.md'
- - '**/README_CN.md'
- - 'resource/ts/**'
+ - 'resource/locale/template/**'
- 'docs/**'
+ - '**.md'
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
@@ -142,7 +140,7 @@ jobs:
- name: Configure CMake
# Configure CMake in a 'build' subdirectory. `CMAKE_BUILD_TYPE` is only required if you are using a single-configuration generator such as make.
# See https://cmake.org/cmake/help/latest/variable/CMAKE_BUILD_TYPE.html?highlight=cmake_build_type
- run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DEXECUTABLE_OUTPUT_PATH=${{env.EXECUTABLE_OUTPUT_PATH}}
+ run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DGPGFRONTEND_BUILD_TYPE_STABLE=ON
if: matrix.os == 'ubuntu-18.04' || matrix.os == 'macos-10.15'
- name: Build GpgFrontend
@@ -187,7 +185,7 @@ jobs:
run: |
cd $(echo "/${{github.workspace}}" | sed 's/\\/\//g' | sed 's/://')
mkdir build && cd build
- cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DEXECUTABLE_OUTPUT_PATH=${{env.EXECUTABLE_OUTPUT_PATH}} ..
+ cmake -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}} -DGPGFRONTEND_BUILD_TYPE_STABLE=ON ..
# Build your program with the given configuration
cmake --build . --config ${{env.BUILD_TYPE}} -- -j 2
if: matrix.os == 'windows-latest'
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4a96a11d..38df1d65 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -4,6 +4,84 @@ project(GpgFrontend VERSION 2.0.4 LANGUAGES CXX)
message(STATUS "GpgFrontend Build Configuration Started CMAKE Version ${CMAKE_VERSION}")
+# options
+option(GPGFRONTEND_BUILD_TYPE_TEST_CORE
+ "Only compile the core and generate the unit test program" OFF)
+option(GPGFRONTEND_BUILD_TYPE_TEST_CORE_AND_COVERAGE
+ "Compile only the core and generate unit test programs that can evaluate test coverage" OFF)
+option(GPGFRONTEND_BUILD_TYPE_TEST_UI
+ "Only generate a graphical interface with basic functions" OFF)
+option(GPGFRONTEND_BUILD_TYPE_TEST_ALL
+ "Generate a graphical interface with all functions" OFF)
+option(GPGFRONTEND_BUILD_TYPE_STABLE
+ "Generate release version" ON)
+option(GENERATE_LINUX_INSTALL_SOFTWARE "Generate an installable version" OFF)
+option(GENERATE_APP_PACKAGE_DEB "Generate DEB package" OFF)
+option(CONFIGURE_FOR_XCODE_BUILD "Generate a version that can be successfully compiled and packaged in Xcode" OFF)
+
+# analyse options
+if (GPGFRONTEND_BUILD_TYPE_TEST_CORE)
+ set(CMAKE_BUILD_TYPE "Debug")
+ set(GPGFRONTEND_BUILD_CONFIG "test_core")
+endif ()
+
+if (GPGFRONTEND_BUILD_TYPE_TEST_CORE_AND_COVERAGE)
+ set(CMAKE_BUILD_TYPE "Debug")
+ set(GPGFRONTEND_BUILD_CONFIG "test_core_coverage")
+endif ()
+
+if (GPGFRONTEND_BUILD_TYPE_TEST_UI)
+ set(CMAKE_BUILD_TYPE "Debug")
+ set(GPGFRONTEND_BUILD_CONFIG "test_ui")
+endif ()
+
+if (GPGFRONTEND_BUILD_TYPE_TEST_ALL)
+ set(CMAKE_BUILD_TYPE "Debug")
+ set(GPGFRONTEND_BUILD_CONFIG "test_all")
+endif ()
+
+if (GPGFRONTEND_BUILD_TYPE_STABLE)
+
+ set(GPGFRONTEND_BUILD_TYPE_TEST_CORE 0)
+ set(GPGFRONTEND_BUILD_TYPE_TEST_CORE_AND_COVERAGE 0)
+ set(GPGFRONTEND_BUILD_TYPE_TEST_UI 0)
+ set(GPGFRONTEND_BUILD_TYPE_TEST_ALL 0)
+ unset(GPGFRONTEND_BUILD_CONFIG)
+
+ set(STABLE_APPLICATION_BUILD 1)
+endif ()
+
+if (GENERATE_LINUX_INSTALL_SOFTWARE)
+
+ set(GPGFRONTEND_BUILD_TYPE_TEST_CORE 0)
+ set(GPGFRONTEND_BUILD_TYPE_TEST_CORE_AND_COVERAGE 0)
+ set(GPGFRONTEND_BUILD_TYPE_TEST_UI 0)
+ set(GPGFRONTEND_BUILD_TYPE_TEST_ALL 0)
+ unset(GPGFRONTEND_BUILD_CONFIG)
+
+ set(LINUX_INSTALL_SOFTWARE 1)
+ set(GENERATE_APP_PACKAGE_DEB 1)
+endif ()
+
+if (GENERATE_LINUX_INSTALL_SOFTWARE AND GENERATE_APP_PACKAGE_DEB)
+ set(APP_PACKAGE_DEB 1)
+endif ()
+
+if (CONFIGURE_FOR_XCODE_BUILD)
+ set(GENERATE_LINUX_INSTALL_SOFTWARE 0)
+ set(GENERATE_APP_PACKAGE_DEB 0)
+ set(LINUX_INSTALL_SOFTWARE 0)
+ set(APP_PACKAGE_DEB 0)
+
+ set(GPGFRONTEND_BUILD_TYPE_TEST_CORE 0)
+ set(GPGFRONTEND_BUILD_TYPE_TEST_CORE_AND_COVERAGE 0)
+ set(GPGFRONTEND_BUILD_TYPE_TEST_UI 0)
+ set(GPGFRONTEND_BUILD_TYPE_TEST_ALL 0)
+
+ unset(GPGFRONTEND_BUILD_CONFIG)
+ set(STABLE_APPLICATION_BUILD 1)
+endif ()
+
# C++
#Detect Compiler
if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
@@ -34,23 +112,20 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
# Check Env Variables Before Configuring
-if (CMAKE_BUILD_TYPE)
- message(STATUS "PreCheck CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE}")
-else ()
+if (NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Release")
- message(STATUS "Set CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE}")
endif ()
# Specify different compilation modes
if (GPGFRONTEND_BUILD_CONFIG)
# Test Build
if (${GPGFRONTEND_BUILD_CONFIG} STREQUAL "test_core")
- message(STATUS "Switch TEST_CORE_BUILD")
+ message(STATUS "Switch Build Configure TEST_CORE_BUILD")
set(TEST_CORE_BUILD 1)
set(AppName GpgFrontendCoreTest)
# Test Build With Coverage Test
elseif (${GPGFRONTEND_BUILD_CONFIG} STREQUAL "test_core_coverage")
- message(STATUS "Switch TEST_COVERAGE_BUILD")
+ message(STATUS "Switch Build Configure TEST_COVERAGE_BUILD")
set(TEST_CORE_BUILD 1)
if (USING_COMPILER_CLANG OR USING_COMPILER_GCC)
set(TEST_COVERAGE_BUILD 1)
@@ -62,35 +137,26 @@ if (GPGFRONTEND_BUILD_CONFIG)
set(AppName GpgFrontendTest)
# Test Build with minimum UI
elseif (${GPGFRONTEND_BUILD_CONFIG} STREQUAL "test_ui")
- message(STATUS "Switch TEST_MINIMUM_UI_BUILD")
+ message(STATUS "Switch Build Configure TEST_MINIMUM_UI_BUILD")
set(MINIMUM_APPLICATION_BUILD 1)
set(AppName GpgFrontend)
elseif (${GPGFRONTEND_BUILD_CONFIG} STREQUAL "test_all")
- message(STATUS "Switch FULL_APPLICATION_BUILD")
+ message(STATUS "Switch Build Configure FULL_APPLICATION_BUILD")
set(FULL_APPLICATION_BUILD 1)
set(AppName GpgFrontend)
endif ()
else ()
- message(STATUS "Switch Default STABLE_APPLICATION_BUILD")
+ message(STATUS "Switch Build Configure STABLE_APPLICATION_BUILD")
set(STABLE_APPLICATION_BUILD 1)
set(AppName GpgFrontend)
endif ()
-if (EXECUTABLE_OUTPUT_PATH)
- message(STATUS "PreCheck EXECUTABLE_OUTPUT_PATH ${EXECUTABLE_OUTPUT_PATH}")
-else ()
- set(EXECUTABLE_OUTPUT_PATH "./")
- message(STATUS "Set EXECUTABLE_OUTPUT_PATH ${EXECUTABLE_OUTPUT_PATH}")
-endif ()
-
# Output Env Variables
-message(STATUS "Define EXECUTABLE_OUTPUT_PATH ${EXECUTABLE_OUTPUT_PATH}")
message(STATUS "Define CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE}")
if (${CMAKE_BUILD_TYPE} STREQUAL "Release")
set(BUILD_FLAG 0)
ADD_DEFINITIONS(-DRELEASE)
- message(STATUS "Build Type RELEASE")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2")
# Release Version force to build using option STABLE_APPLICATION_BUILD
set(FULL_APPLICATION_BUILD 0)
@@ -98,7 +164,6 @@ if (${CMAKE_BUILD_TYPE} STREQUAL "Release")
else ()
set(BUILD_FLAG 1)
ADD_DEFINITIONS(-DDEBUG)
- message(STATUS "Build Type DEBUG")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -g")
# Generate branch coverage information using gcc
if (TEST_COVERAGE_BUILD)
@@ -140,12 +205,12 @@ set(BUILD_VERSION ${PROJECT_VERSION}_${CMAKE_SYSTEM}_${CMAKE_SYSTEM_PROCESSOR}_$
set(GIT_VERSION ${GIT_BRANCH_NAME}_${GIT_COMMIT_HASH})
string(TIMESTAMP BUILD_TIMESTAMP "%Y-%m-%d %H:%M:%S")
-message(STATUS "Build Timestamp ${BUILD_TIMESTAMP}")
-message(STATUS "Build Version ${BUILD_VERSION}")
-message(STATUS "Git Version ${GIT_VERSION}")
+message(STATUS "GpgFrontend Build Timestamp ${BUILD_TIMESTAMP}")
+message(STATUS "GpgFrontend Build Version ${BUILD_VERSION}")
+message(STATUS "GpgFrontend Git Repo Version ${GIT_VERSION}")
IF (MINGW)
- message(STATUS "Configuration For OS Platform Microsoft Windows")
+ message(STATUS "GpgFrontend Configuration For OS Platform Microsoft Windows")
message(STATUS "Build Environment MINGW")
set(OS_PLATFORM 0)
@@ -164,7 +229,7 @@ IF (MINGW)
endif ()
if (APPLE)
- message(STATUS "Configuration For OS Platform MacOS")
+ message(STATUS "GpgFrontend Configuration For OS Platform MacOS")
set(OS_PLATFORM 1)
ADD_DEFINITIONS(-DMACOS)
@@ -196,7 +261,7 @@ endif ()
if (LINUX)
- message(STATUS "Configuration For OS Platform LINUX")
+ message(STATUS "GpgFrontend Configuration For OS Platform LINUX")
set(OS_PLATFORM 2)
ADD_DEFINITIONS(-DLINUX)
@@ -222,18 +287,12 @@ if (LINUX)
endif ()
-message(STATUS "OS_PLATFORM ${OS_PLATFORM}")
-
if (GPG_STANDALONE_MODE)
add_compile_definitions(GPG_STANDALONE_MODE)
endif ()
-# Basic Envirnoment Configure
-set(BASIC_ENV_CONFIG 1)
-set(QT_MOC_CONFIG 1)
-set(EASY_LOGGING_PP 1)
-
if (LINUX_INSTALL_SOFTWARE)
+ message(STATUS "Configure Linux Install ON")
include(GNUInstallDirs)
set(INSTALL_GPGFRONTEND_APP 1)
set(APP_INSTALL_FLAG LINUX_INSTALL)
@@ -244,6 +303,10 @@ else ()
add_compile_definitions(BUNDLE_BUILD)
endif ()
+# Basic Environment Configure
+set(BASIC_ENV_CONFIG 1)
+set(QT_MOC_CONFIG 1)
+set(EASY_LOGGING_PP 1)
if (FULL_APPLICATION_BUILD)
message(STATUS "Build Full Application")
@@ -291,9 +354,9 @@ find_package(Boost COMPONENTS date_time filesystem REQUIRED)
if (QT5_ENV_SUPPORT)
# Support Qt version Both 5.12.x and 5.15.x
if (LINUX_INSTALL_SOFTWARE)
- find_package(Qt5 5.12 COMPONENTS Core Test Widgets PrintSupport Network REQUIRED)
- else ()
find_package(Qt5 COMPONENTS Core Test Widgets PrintSupport Network REQUIRED)
+ else ()
+ find_package(Qt5 5.15 COMPONENTS Core Test Widgets PrintSupport Network REQUIRED)
endif ()
# find_package(Qt5 5.15.2 EXACT COMPONENTS Core Test Widgets PrintSupport Network LinguistTools REQUIRED)
# Qt configuration
@@ -303,7 +366,6 @@ if (QT5_ENV_SUPPORT)
set(CMAKE_AUTORCC_OPTIONS "--compress;9")
set(CMAKE_AUTOUIC_SEARCH_PATHS ${CMAKE_AUTOUIC_SEARCH_PATHS} ${CMAKE_SOURCE_DIR}/ui)
- message(STATUS "CMAKE_AUTOUIC_SEARCH_PATHS ${CMAKE_AUTOUIC_SEARCH_PATHS}")
endif ()
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index be587533..512b7cbd 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -38,7 +38,6 @@ if (APPLICATION_BUILD)
# Set Binary Output Path
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE})
endif ()
- message(STATUS "CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
endif ()
@@ -56,7 +55,6 @@ if (APPLICATION_BUILD)
else ()
set(RESOURCE_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
endif ()
- message(STATUS "RESOURCE_OUTPUT_DIRECTORY ${RESOURCE_OUTPUT_DIRECTORY}")
endif ()
# Get ALL SOURCE FILES
@@ -71,7 +69,6 @@ if (MULTI_LANG_SUPPORT)
FIND_PROGRAM(GETTEXT_XGETTEXT_EXECUTABLE xgettext)
set(LOCALE_OUTPUT_PATH ${RESOURCE_OUTPUT_DIRECTORY}/locales)
- message(STATUS "LOCALE_OUTPUT_PATH ${LOCALE_OUTPUT_PATH}")
if (NOT GETTEXT_MSGFMT_EXECUTABLE OR NOT GETTEXT_XGETTEXT_EXECUTABLE)
message(ERROR "msgfmt or xgettext not found. Translations will *not* be installed")
@@ -86,12 +83,11 @@ if (MULTI_LANG_SUPPORT)
file(GLOB ALL_PO_FILES ${CMAKE_SOURCE_DIR}/resource/locale/po/*.po)
SET(GMO_FILES)
- message(STATUS "ALL_PO_FILES ${ALL_PO_FILES}")
foreach (_poFile ${ALL_PO_FILES})
GET_FILENAME_COMPONENT(_poFileName ${_poFile} NAME)
string(REGEX REPLACE "\\.[^.]*$" "" _langName ${_poFileName})
- message(STATUS "_poFileName ${_langName}")
+ message(STATUS "GNU gettext po file ${_langName}")
make_directory(${RESOURCE_OUTPUT_DIRECTORY}/locales)
make_directory(${RESOURCE_OUTPUT_DIRECTORY}/locales/${_langName}/LC_MESSAGES)
add_custom_command(
@@ -250,7 +246,6 @@ if (APPLICATION_BUILD)
set(GPGFRONTEND_LIBS ${GPGFRONTEND_AFTER_UI_LIBS} gpgfrontend_ui gpgfrontend_core ${GPGFRONTEND_BEFORE_UI_LIBS} easy_logging_pp)
set(QT_DEPENDENCY_LIBS Qt5::Network Qt5::PrintSupport Qt5::Widgets Qt5::Test Qt5::Core)
- message(STATUS "Boost Libraries ${Boost_LIBRARIES}")
IF (MINGW)
message(STATUS "Link Application Static Library For MINGW")
@@ -305,11 +300,11 @@ if (LINUX_INSTALL_SOFTWARE)
DESTINATION /usr/share/icons/hicolor/)
endif ()
if (MULTI_LANG_SUPPORT)
- message(STATUS "Local Output Path ${LOCALE_OUTPUT_PATH}")
install(DIRECTORY ${LOCALE_OUTPUT_PATH}/
DESTINATION ${CMAKE_INSTALL_FULL_LOCALEDIR})
endif ()
if (APP_PACKAGE_DEB)
+ message(STATUS "Configure Deb Package")
SET(CPACK_GENERATOR "DEB")
set(CPACK_INSTALL_PREFIX "/usr/local/")
set(CPACK_PACKAGE_NAME "gpgfrontend")
@@ -326,3 +321,6 @@ if (LINUX_INSTALL_SOFTWARE)
endif ()
endif ()
+message(STATUS "Resource Files: ${RESOURCE_OUTPUT_DIRECTORY}")
+message(STATUS "Locale Files: ${LOCALE_OUTPUT_PATH}")
+message(STATUS "Runtime Files: ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}")
diff --git a/src/gpg/CMakeLists.txt b/src/gpg/CMakeLists.txt
index 604191f3..f0c4c72e 100644
--- a/src/gpg/CMakeLists.txt
+++ b/src/gpg/CMakeLists.txt
@@ -10,14 +10,12 @@ set(UTILS_DIR ${CMAKE_SOURCE_DIR}/utils)
set(GPGME_LIB_DIR ${UTILS_DIR}/gpgme/lib)
if (EASY_LOGGING_PP)
- message(STATUS "Link EASY_LOGGING_PP")
- set(THIRD_PARTY_LIBS easy_logging_pp config++)
+ set(THIRD_PARTY_LIBS ${THIRD_PARTY_LIBS} easy_logging_pp)
endif ()
+set(THIRD_PARTY_LIBS ${THIRD_PARTY_LIBS} config++)
set(BOOST_LIBS Boost::date_time Boost::filesystem)
-message(STATUS "Third Party Libraries " ${THIRD_PARTY_LIBS})
-
if (MINGW)
message(STATUS "Link GPG Static Library For MINGW")
target_link_libraries(gpgfrontend_core ${THIRD_PARTY_LIBS}
diff --git a/src/gpg/GpgConstants.cpp b/src/gpg/GpgConstants.cpp
index 100bf8f8..2c9403da 100644
--- a/src/gpg/GpgConstants.cpp
+++ b/src/gpg/GpgConstants.cpp
@@ -49,6 +49,9 @@ const char* GpgFrontend::GpgConstants::PGP_PRIVATE_KEY_BEGIN =
const char* GpgFrontend::GpgConstants::GPG_FRONTEND_SHORT_CRYPTO_HEAD =
"GpgF_Scpt://";
+///
+/// \param err gpg_error_t
+/// \return
gpgme_error_t GpgFrontend::check_gpg_error(gpgme_error_t err) {
if (gpg_err_code(err) != GPG_ERR_NO_ERROR) {
LOG(ERROR) << "[" << _("Error") << " " << gpg_err_code(err) << "] "
@@ -58,6 +61,10 @@ gpgme_error_t GpgFrontend::check_gpg_error(gpgme_error_t err) {
return err;
}
+///
+/// \param err
+/// \param predict
+/// \return
gpg_err_code_t GpgFrontend::check_gpg_error_2_err_code(gpgme_error_t err,
gpgme_error_t predict) {
auto err_code = gpg_err_code(err);
@@ -69,7 +76,10 @@ gpg_err_code_t GpgFrontend::check_gpg_error_2_err_code(gpgme_error_t err,
return err_code;
}
-// error-handling
+///
+/// \param err
+/// \param comment
+/// \return
gpgme_error_t GpgFrontend::check_gpg_error(gpgme_error_t err,
const std::string& comment) {
if (gpg_err_code(err) != GPG_ERR_NO_ERROR) {
@@ -80,6 +90,9 @@ gpgme_error_t GpgFrontend::check_gpg_error(gpgme_error_t err,
return err;
}
+///
+/// \param fingerprint
+/// \return
std::string GpgFrontend::beautify_fingerprint(
GpgFrontend::BypeArrayConstRef fingerprint) {
auto len = fingerprint.size();
@@ -93,14 +106,16 @@ std::string GpgFrontend::beautify_fingerprint(
return out.str();
}
-// trim from start (in place)
+///
+/// \param s
static inline void ltrim(std::string& s) {
s.erase(s.begin(), std::find_if(s.begin(), s.end(), [](unsigned char ch) {
return !std::isspace(ch);
}));
}
-// trim from end (in place)
+///
+/// \param s
static inline void rtrim(std::string& s) {
s.erase(std::find_if(s.rbegin(), s.rend(),
[](unsigned char ch) { return !std::isspace(ch); })
@@ -108,13 +123,18 @@ static inline void rtrim(std::string& s) {
s.end());
}
-// trim from both ends (in place)
+///
+/// \param s
+/// \return
static inline std::string trim(std::string& s) {
ltrim(s);
rtrim(s);
return s;
}
+///
+/// \param utf8_path
+/// \return
std::string GpgFrontend::read_all_data_in_file(const std::string& utf8_path) {
using namespace boost::filesystem;
class path file_info(utf8_path.c_str());
@@ -133,6 +153,10 @@ std::string GpgFrontend::read_all_data_in_file(const std::string& utf8_path) {
return in_buffer;
}
+///
+/// \param utf8_path
+/// \param out_buffer
+/// \return
bool GpgFrontend::write_buffer_to_file(const std::string& utf8_path,
const std::string& out_buffer) {
using namespace boost::filesystem;
@@ -149,6 +173,9 @@ bool GpgFrontend::write_buffer_to_file(const std::string& utf8_path,
return true;
}
+///
+/// \param path
+/// \return
std::string GpgFrontend::get_file_extension(const std::string& path) {
// Create a path object from given string
boost::filesystem::path path_obj(path);
@@ -162,6 +189,9 @@ std::string GpgFrontend::get_file_extension(const std::string& path) {
return {};
}
+///
+/// \param path
+/// \return
std::string GpgFrontend::get_only_file_name_with_path(const std::string& path) {
// Create a path object from given string
boost::filesystem::path path_obj(path);
@@ -174,12 +204,9 @@ std::string GpgFrontend::get_only_file_name_with_path(const std::string& path) {
return {};
}
-/*
- * isSigned returns:
- * - 0, if text isn't signed at all
- * - 1, if text is partially signed
- * - 2, if text is completly signed
- */
+///
+/// \param text
+/// \return
int GpgFrontend::text_is_signed(GpgFrontend::BypeArrayRef text) {
using boost::algorithm::ends_with;
using boost::algorithm::starts_with;
@@ -195,36 +222,53 @@ int GpgFrontend::text_is_signed(GpgFrontend::BypeArrayRef text) {
return 0;
}
+///
+/// \param result
+/// \return
GpgFrontend::GpgEncrResult GpgFrontend::_new_result(
gpgme_encrypt_result_t&& result) {
gpgme_result_ref(result);
return {result, _result_ref_deletor()};
}
+///
+/// \param result
+/// \return
GpgFrontend::GpgDecrResult GpgFrontend::_new_result(
gpgme_decrypt_result_t&& result) {
gpgme_result_ref(result);
return {result, _result_ref_deletor()};
}
+///
+/// \param result
+/// \return
GpgFrontend::GpgSignResult GpgFrontend::_new_result(
gpgme_sign_result_t&& result) {
gpgme_result_ref(result);
return {result, _result_ref_deletor()};
}
+///
+/// \param result
+/// \return
GpgFrontend::GpgVerifyResult GpgFrontend::_new_result(
gpgme_verify_result_t&& result) {
gpgme_result_ref(result);
return {result, _result_ref_deletor()};
}
+///
+/// \param result
+/// \return
GpgFrontend::GpgGenKeyResult GpgFrontend::_new_result(
gpgme_genkey_result_t&& result) {
gpgme_result_ref(result);
return {result, _result_ref_deletor()};
}
+///
+/// \param _result
void GpgFrontend::_result_ref_deletor::operator()(void* _result) {
DLOG(INFO) << _("Called") << _result;
if (_result != nullptr) gpgme_result_unref(_result);
diff --git a/third_party/CMakeLists.txt b/third_party/CMakeLists.txt
index 01e8c2ca..874fe37f 100644
--- a/third_party/CMakeLists.txt
+++ b/third_party/CMakeLists.txt
@@ -1,10 +1,10 @@
if (EASY_LOGGING_PP)
- message(STATUS "Build easyloggingpp")
+ message(STATUS "Build dependency easyloggingpp")
add_subdirectory(easyloggingpp)
endif ()
if (APP_IMAGE_UPDATE)
- message(STATUS "Build AppImageUpdate")
+ message(STATUS "Build dependency AppImageUpdate")
set(USE_SYSTEM_BOOST 1)
set(USE_SYSTEM_XZ 1)
set(USE_SYSTEM_SQUASHFUSE 1)