build script now uses cmake, also:

- fixed linking qt6keychain and SortFilterProxyModel
- added translations
This commit is contained in:
vladimir.kuznetsov 2022-11-15 23:31:55 +03:00
parent 663861dc09
commit 2564430046
4 changed files with 22 additions and 17 deletions

View file

@ -4,4 +4,7 @@ set(PROJECT AmneziaVPN)
project(${PROJECT})
add_subdirectory(client)
add_subdirectory(service)
if(NOT IOS AND NOT ANDROID)
add_subdirectory(service)
endif()

View file

@ -59,7 +59,8 @@ set(PUBLIC_HEADERS ${PUBLIC_HEADERS}
${CMAKE_CURRENT_LIST_DIR}/sshconnection.h
)
set(HEADERS ${HEADERS} ${PUBLIC_HEADERS}
set(HEADERS ${HEADERS}
${PUBLIC_HEADERS}
${CMAKE_CURRENT_LIST_DIR}/sshsendfacility_p.h
${CMAKE_CURRENT_LIST_DIR}/sshremoteprocess_p.h
${CMAKE_CURRENT_LIST_DIR}/sshpacketparser_p.h

View file

@ -30,14 +30,17 @@ include(${CMAKE_CURRENT_LIST_DIR}/3rd/QtSsh/src/botan/botan.cmake)
if(NOT IOS AND NOT ANDROID)
include(${CMAKE_CURRENT_LIST_DIR}/3rd/SingleApplication/singleapplication.cmake)
endif()
add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/3rd/SortFilterProxyModel)
set(LIBS ${LIBS} qt6keychain)
set(LIBS ${LIBS} SortFilterProxyModel)
include(${CMAKE_CURRENT_LIST_DIR}/3rd/qrcodegen/qrcodegen.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/3rd/QSimpleCrypto/QSimpleCrypto.cmake)
set(BUILD_WITH_QT6 ON)
set(BUILD_SHARED_LIBS OFF)
add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/3rd/qtkeychain)
set(LIBS ${LIBS} qt6keychain)
# TODO it seems like i'm doing it wrong
include_directories(
@ -115,8 +118,6 @@ set(SOURCES ${SOURCES}
qt6_add_resources(QRC ${QRC} ${CMAKE_CURRENT_LIST_DIR}/resources.qrc)
#todo add translations
if(WIN32)
add_compile_definitions(MVPN_WINDOWS)
@ -318,6 +319,9 @@ endif()
qt_add_executable(${PROJECT} ${SOURCES} ${HEADERS} ${RESOURCES} ${QRC})
qt_add_translations(${PROJECT} TS_FILES
${CMAKE_CURRENT_LIST_DIR}/translations/amneziavpn_ru.ts)
if(ANDROID)
add_custom_command(
TARGET ${PROJECT} POST_BUILD

View file

@ -25,8 +25,7 @@ set RELEASE_DIR=%WORK_DIR:"=%
set OUT_APP_DIR=%RELEASE_DIR:"=%\client\release
set DEPLOY_DATA_DIR=%SCRIPT_DIR:"=%\data\windows\x%BUILD_ARCH:"=%
set INSTALLER_DATA_DIR=%RELEASE_DIR:"=%\installer\packages\%APP_DOMAIN:"=%\data
set PRO_FILE_PATH=%PROJECT_DIR:"=%\%APP_NAME:"=%.pro
set QMAKE_STASH_FILE=%PROJECT_DIR:"=%\.qmake_stash
@REM set QMAKE_STASH_FILE=%PROJECT_DIR:"=%\.qmake_stash
set TARGET_FILENAME=%PROJECT_DIR:"=%\%APP_NAME:"=%_x%BUILD_ARCH:"=%.exe
echo "Environment:"
@ -37,7 +36,6 @@ echo "RELEASE_DIR: %RELEASE_DIR%"
echo "OUT_APP_DIR: %OUT_APP_DIR%"
echo "DEPLOY_DATA_DIR: %DEPLOY_DATA_DIR%"
echo "INSTALLER_DATA_DIR: %INSTALLER_DATA_DIR%"
echo "PRO_FILE_PATH: %PRO_FILE_PATH%"
echo "QMAKE_STASH_FILE: %QMAKE_STASH_FILE%"
echo "TARGET_FILENAME: %TARGET_FILENAME%"
@ -49,22 +47,21 @@ powershell Import-PfxCertificate -FilePath %SCRIPT_DIR:"=%\PrivacyTechWindowsCer
echo "Cleanup..."
Rmdir /Q /S %RELEASE_DIR%
Del %QMAKE_STASH_FILE%
@REM Del %QMAKE_STASH_FILE%
Del %TARGET_FILENAME%
"%QT_BIN_DIR:"=%\qmake" -v
call "%QT_BIN_DIR:"=%\qt-cmake" --version
"%QT_BIN_DIR:"=%\windeployqt" -v
nmake /?
cmake --version @REM use cmake from qt tools dir
cd %PROJECT_DIR%
"%QT_BIN_DIR:"=%\qmake" -spec win32-msvc -o "%WORK_DIR:"=%\Makefile"
call "%QT_BIN_DIR:"=%\qt-cmake" . -B %WORK_DIR%
cd %WORK_DIR%
set CL=/MP
nmake /A /NOLOGO
cmake --build . --config release
if %errorlevel% neq 0 exit /b %errorlevel%
nmake clean
cmake --build . --target clean
rem if not exist "%OUT_APP_DIR:"=%\%APP_FILENAME:"=%" break
echo "Deploying..."
@ -92,7 +89,7 @@ dir %OUT_APP_DIR%
cd %OUT_APP_DIR%
echo "Compressing data..."
"%QIF_BIN_DIR:"=%\archivegen" -c 9 %INSTALLER_DATA_DIR:"=%\%APP_NAME:"=%.7z ./
"%QIF_BIN_DIR:"=%\archivegen" -c 9 %INSTALLER_DATA_DIR:"=%\%APP_NAME:"=%.7z .
cd "%RELEASE_DIR:"=%\installer"
echo "Creating installer..."
@ -104,4 +101,4 @@ cd %PROJECT_DIR%
signtool sign /v /sm /s My /n "Privacy Technologies OU" /fd sha256 /tr http://timestamp.comodoca.com/?td=sha256 /td sha256 "%TARGET_FILENAME%"
echo "Finished, see %TARGET_FILENAME%"
exit 0
REM exit 0