diff --git a/CMakeLists.txt b/CMakeLists.txt index bc2a2a097..99538c0d0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -241,15 +241,15 @@ include_directories(${EXE} PRIVATE ${RAPIDJSON_INCLUDE_DIRS}) find_package(yaml-cpp CONFIG REQUIRED) target_link_libraries(${EXE} PRIVATE yaml-cpp) - #Find gRPC - find_package(gRPC CONFIG REQUIRED) - target_link_libraries(${EXE} PRIVATE gRPC::gpr gRPC::grpc gRPC::grpc++) - # Find Protobuf include(FindProtobuf) include_directories(${Protobuf_INCLUDE_DIRS}) target_link_libraries(${EXE} PRIVATE ${Protobuf_LIBRARIES}) + #Find gRPC + find_package(gRPC CONFIG REQUIRED) + target_link_libraries(${EXE} PRIVATE gRPC::gpr gRPC::grpc gRPC::grpc++) + # Find OpenSSL find_package(OpenSSL REQUIRED) target_link_libraries(${EXE} PRIVATE OpenSSL::SSL OpenSSL::Crypto) @@ -344,6 +344,7 @@ if (WIN32) install(CODE " include(BundleUtilities) + set(GET_PREREQUISITES_VERBOSE TRUE) fixup_bundle(\"${RGM_APP}\" \"${LIBS}\" \"${SEARCH_PATHS}\") fixup_bundle(\"${EMAKE_APP}\" \"${LIBS}\" \"${SEARCH_PATHS}\") execute_process(COMMAND windeployqt.exe ${WINDEPLOY_ARGS} ${RGM_APP}) diff --git a/azure-jobs.yml b/azure-jobs.yml index 271efabd9..d997cb20d 100644 --- a/azure-jobs.yml +++ b/azure-jobs.yml @@ -115,8 +115,99 @@ jobs: assets: | $(Agent.BuildDirectory)/RadialGM-MinGW-$(MINGW_ARCH).exe -- job: MSVC_64 - displayName: 'MSVC x86_64' +- job: MSVC_64_2019 + displayName: 'MSVC 2019 x86_64' + ? ${{ if and(eq(parameters.repo, 'self'), eq(variables['Build.SourceBranch'], 'refs/heads/master')) }} + : dependsOn: CreateReleaseCandidate + pool: + vmImage: 'windows-2019' + timeoutInMinutes: 360 + + steps: + - checkout: ${{ parameters.repo }} + submodules: true + path: RadialGM + persistCredentials: true + + - ${{ if ne(parameters.repo, 'self') }}: + - script: | + cd $(Agent.BuildDirectory)/RadialGM/Submodules/enigma-dev + git remote remove origin + git remote add origin https://github.com/enigma-dev/enigma-dev.git + git remote -v + git fetch origin --force --tags --prune --progress ${{ parameters.enigmaref }}:enigmaref + git checkout --progress --force enigmaref + displayName: Checkout ENIGMA Reference + + - task: Cache@2 + displayName: 'Cache VCPKG Artifacts' + inputs: + key: $(Agent.BuildDirectory)/RadialGM/msvc-x64-deps.txt | "$(vcpkgGitRef)" | "$(Agent.OS)" + path: '$(Build.BinariesDirectory)/vcpkg' + + - task: run-vcpkg@0 + displayName: 'Run VCPKG' + inputs: + vcpkgArguments: '@$(Agent.BuildDirectory)/RadialGM/msvc-x64-deps.txt' + vcpkgGitCommitId: $(vcpkgGitRef) + vcpkgGitURL: https://github.com/microsoft/vcpkg.git + + - script: | + set PATH=%PATH%;$(Build.BinariesDirectory)\vcpkg\installed\x64-windows\tools\qt5\bin\ + set VCINSTALLDIR=%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Enterprise\VC + call "%VCINSTALLDIR%\Auxiliary\Build\vcvars64.bat" + cd $(Build.SourcesDirectory)/RadialGM + mkdir Release + cd Release + cmake -G "Visual Studio 16 2019" -A x64 -DCMAKE_INSTALL_PREFIX:PATH=../cmake-package/Release -DCMAKE_BUILD_TYPE=MinSizeRel -DVCPKG_ROOT=$(Build.BinariesDirectory)\vcpkg -DVCPKG_TARGET_TRIPLET=x64-windows -DPROTOBUF_IMPORT_DIRS=$(Build.BinariesDirectory)\vcpkg\installed\x64-windows\include -DCMAKE_TOOLCHAIN_FILE=$(Build.BinariesDirectory)\vcpkg\scripts\buildsystems\vcpkg.cmake $(Agent.BuildDirectory)\RadialGM + cmake --build . --config MinSizeRel + cmake --install . --config MinSizeRel + displayName: 'Release Build' + + - script: | + set PATH=%PATH%;$(Build.BinariesDirectory)\vcpkg\installed\x64-windows\debug\bin;$(Build.BinariesDirectory)\vcpkg\installed\x64-windows\bin;$(Build.BinariesDirectory)\vcpkg\installed\x64-windows\tools\qt5\debug\bin\ + set VCINSTALLDIR=%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Enterprise\VC + call "%VCINSTALLDIR%\Auxiliary\Build\vcvars64.bat" + cd $(Build.SourcesDirectory)/RadialGM + mkdir Debug + cd Debug + cmake -G "Visual Studio 16 2019" -A x64 -DCMAKE_INSTALL_PREFIX:PATH=../cmake-package/Debug -DCMAKE_BUILD_TYPE=Debug -DVCPKG_ROOT=$(Build.BinariesDirectory)\vcpkg -DVCPKG_TARGET_TRIPLET=x64-windows -DPROTOBUF_IMPORT_DIRS=$(Build.BinariesDirectory)\vcpkg\installed\x64-windows\include -DCMAKE_TOOLCHAIN_FILE=$(Build.BinariesDirectory)\vcpkg\scripts\buildsystems\vcpkg.cmake $(Agent.BuildDirectory)\RadialGM + cmake --build . --config Debug + cmake --install . --config Debug + displayName: 'Debug Build' + + - script: | + cd $(Agent.BuildDirectory)/RadialGM + mkdir package + cd package + cmake -G "Visual Studio 16 2019" -A x64 ../cmake-package + cmake --build . --config Release --target PACKAGE + mv ENIGMA-Installer*.exe $(Agent.BuildDirectory)/RadialGM-MSVC-x86_64.exe + displayName: 'Package' + + - task: PublishBuildArtifacts@1 + displayName: 'Push Build Artifacts' + inputs: + pathtoPublish: '$(Agent.BuildDirectory)/RadialGM-MSVC-x86_64.exe' + artifactName: RadialGM-MSVC-x86_64 + + - ? ${{ if and(eq(parameters.repo, 'self'), eq(variables['Build.SourceBranch'], 'refs/heads/master')) }} + : - task: GithubRelease@0 + displayName: 'Add MSVC to GitHub Release' + inputs: + gitHubConnection: github.com_EnigmaBot + repositoryName: enigma-dev/RadialGM + action: edit + tagSource: manual + tag: '$(releasetag)' + isDraft: true + isPreRelease: true + assetUploadMode: replace + assets: | + $(Agent.BuildDirectory)/RadialGM-MSVC-x86_64.exe + +- job: MSVC_64_2022 + displayName: 'MSVC 2022 x86_64' ${{ if and(eq(parameters.repo, 'self'), eq(variables['Build.SourceBranch'], 'refs/heads/master')) }}: dependsOn: CreateReleaseCandidate pool: @@ -154,24 +245,24 @@ jobs: - script: | set PATH=%PATH%;$(Build.BinariesDirectory)\vcpkg\installed\x64-windows\tools\qt5\bin\ - set VCINSTALLDIR=%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Enterprise\VC + set VCINSTALLDIR=%ProgramFiles(x86)%\Microsoft Visual Studio\2022\Enterprise\VC call "%VCINSTALLDIR%\Auxiliary\Build\vcvars64.bat" cd $(Build.SourcesDirectory)/RadialGM mkdir Release cd Release - cmake -G "Visual Studio 16 2019" -A x64 -DCMAKE_INSTALL_PREFIX:PATH=../cmake-package/Release -DCMAKE_BUILD_TYPE=MinSizeRel -DVCPKG_ROOT=$(Build.BinariesDirectory)\vcpkg -DVCPKG_TARGET_TRIPLET=x64-windows -DPROTOBUF_IMPORT_DIRS=$(Build.BinariesDirectory)\vcpkg\installed\x64-windows\include -DCMAKE_TOOLCHAIN_FILE=$(Build.BinariesDirectory)\vcpkg\scripts\buildsystems\vcpkg.cmake $(Agent.BuildDirectory)\RadialGM + cmake -G "Visual Studio 17 2022" -A x64 -DCMAKE_INSTALL_PREFIX:PATH=../cmake-package/Release -DCMAKE_BUILD_TYPE=MinSizeRel -DVCPKG_ROOT=$(Build.BinariesDirectory)\vcpkg -DVCPKG_TARGET_TRIPLET=x64-windows -DPROTOBUF_IMPORT_DIRS=$(Build.BinariesDirectory)\vcpkg\installed\x64-windows\include -DCMAKE_TOOLCHAIN_FILE=$(Build.BinariesDirectory)\vcpkg\scripts\buildsystems\vcpkg.cmake $(Agent.BuildDirectory)\RadialGM cmake --build . --config MinSizeRel cmake --install . --config MinSizeRel displayName: 'Release Build' - script: | set PATH=%PATH%;$(Build.BinariesDirectory)\vcpkg\installed\x64-windows\debug\bin;$(Build.BinariesDirectory)\vcpkg\installed\x64-windows\bin;$(Build.BinariesDirectory)\vcpkg\installed\x64-windows\tools\qt5\debug\bin\ - set VCINSTALLDIR=%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Enterprise\VC + set VCINSTALLDIR=%ProgramFiles(x86)%\Microsoft Visual Studio\2022\Enterprise\VC call "%VCINSTALLDIR%\Auxiliary\Build\vcvars64.bat" cd $(Build.SourcesDirectory)/RadialGM mkdir Debug cd Debug - cmake -G "Visual Studio 16 2019" -A x64 -DCMAKE_INSTALL_PREFIX:PATH=../cmake-package/Debug -DCMAKE_BUILD_TYPE=Debug -DVCPKG_ROOT=$(Build.BinariesDirectory)\vcpkg -DVCPKG_TARGET_TRIPLET=x64-windows -DPROTOBUF_IMPORT_DIRS=$(Build.BinariesDirectory)\vcpkg\installed\x64-windows\include -DCMAKE_TOOLCHAIN_FILE=$(Build.BinariesDirectory)\vcpkg\scripts\buildsystems\vcpkg.cmake $(Agent.BuildDirectory)\RadialGM + cmake -G "Visual Studio 17 2022" -A x64 -DCMAKE_INSTALL_PREFIX:PATH=../cmake-package/Debug -DCMAKE_BUILD_TYPE=Debug -DVCPKG_ROOT=$(Build.BinariesDirectory)\vcpkg -DVCPKG_TARGET_TRIPLET=x64-windows -DPROTOBUF_IMPORT_DIRS=$(Build.BinariesDirectory)\vcpkg\installed\x64-windows\include -DCMAKE_TOOLCHAIN_FILE=$(Build.BinariesDirectory)\vcpkg\scripts\buildsystems\vcpkg.cmake $(Agent.BuildDirectory)\RadialGM cmake --build . --config Debug cmake --install . --config Debug displayName: 'Debug Build' @@ -180,7 +271,7 @@ jobs: cd $(Agent.BuildDirectory)/RadialGM mkdir package cd package - cmake -G "Visual Studio 16 2019" -A x64 ../cmake-package + cmake -G "Visual Studio 17 2022" -A x64 ../cmake-package cmake --build . --config Release --target PACKAGE mv ENIGMA-Installer*.exe $(Agent.BuildDirectory)/RadialGM-MSVC-x86_64.exe displayName: 'Package' @@ -329,3 +420,4 @@ jobs: assetUploadMode: replace isDraft: false isPreRelease: true + diff --git a/azure-vars.yml b/azure-vars.yml index eec03a5dd..ca31958ed 100644 --- a/azure-vars.yml +++ b/azure-vars.yml @@ -1,3 +1,3 @@ variables: - vcpkgGitRef: 1be51cb4579e8f34317a0e53256095219ea85702 # Update this git ref to update vcpkg + vcpkgGitRef: 14e7bb4ae24616ec54ff6b2f6ef4e8659434ea44 # Update this git ref to update vcpkg releasetag: 'RadialGM-$(Build.SourceVersion)' diff --git a/msvc-x64-deps.txt b/msvc-x64-deps.txt index 9aeec5280..2aceacb4f 100644 --- a/msvc-x64-deps.txt +++ b/msvc-x64-deps.txt @@ -2,6 +2,7 @@ x64-windows qt5-base qt5-tools +qt5-multimedia qscintilla pugixml rapidjson