Skip to content

WIP: Fix MSVC x86_64 CI #230

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 7 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -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})
Expand Down
106 changes: 99 additions & 7 deletions azure-jobs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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'
Expand All @@ -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'
Expand Down Expand Up @@ -329,3 +420,4 @@ jobs:
assetUploadMode: replace
isDraft: false
isPreRelease: true

2 changes: 1 addition & 1 deletion azure-vars.yml
Original file line number Diff line number Diff line change
@@ -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)'
1 change: 1 addition & 0 deletions msvc-x64-deps.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
x64-windows
qt5-base
qt5-tools
qt5-multimedia
qscintilla
pugixml
rapidjson
Expand Down