Skip to content
Merged
Show file tree
Hide file tree
Changes from 32 commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
9965c52
test
mathieu-lemuzic May 9, 2025
a9d58b8
add linux
mathieu-lemuzic May 9, 2025
0f43f23
reverse
mathieu-lemuzic May 9, 2025
8e226dd
use different pool
mathieu-lemuzic May 9, 2025
2cc4c9c
Revert "reverse"
mathieu-lemuzic May 9, 2025
ba3ce33
use different pool
mathieu-lemuzic May 9, 2025
7c92b0b
Revert "use different pool"
mathieu-lemuzic May 9, 2025
aab3797
disable publish
mathieu-lemuzic May 9, 2025
79c818d
test
mathieu-lemuzic May 9, 2025
26c57de
test
mathieu-lemuzic May 9, 2025
7e9c75e
log error
mathieu-lemuzic May 9, 2025
53dc42a
test
mathieu-lemuzic May 9, 2025
be36003
test
mathieu-lemuzic May 12, 2025
cb4cba5
test
mathieu-lemuzic May 12, 2025
7cda9d9
restore
mathieu-lemuzic May 12, 2025
1eedabd
test
mathieu-lemuzic May 12, 2025
5e4aa9c
fix
mathieu-lemuzic May 12, 2025
be840e3
test
mathieu-lemuzic May 20, 2025
fd9b7ee
fix
mathieu-lemuzic May 20, 2025
aed8d2c
fix
mathieu-lemuzic May 20, 2025
67f27e1
win test
mathieu-lemuzic May 20, 2025
6cd74f6
fix
mathieu-lemuzic May 20, 2025
ee04164
log
mathieu-lemuzic May 20, 2025
c899e0f
fix
mathieu-lemuzic May 20, 2025
733208b
fix bis
mathieu-lemuzic May 20, 2025
1a8810f
force
mathieu-lemuzic May 20, 2025
7e10738
fix 2
mathieu-lemuzic May 20, 2025
ce01547
test
mathieu-lemuzic May 20, 2025
86fa1c1
test
mathieu-lemuzic May 20, 2025
789c6bb
more fixes
mathieu-lemuzic May 20, 2025
00119e3
upack-staging
pmconne Jun 5, 2025
1ba5440
upack-staging again
pmconne Jun 5, 2025
54a827d
copy spdlog include files
pmconne Jun 5, 2025
e8e8c6c
spdlog includes
pmconne Jun 5, 2025
9ea9847
spdlog domain
pmconne Jun 5, 2025
fc2a39b
closing tag duh
pmconne Jun 5, 2025
92fc90b
pita...
pmconne Jun 5, 2025
cf212bc
why do we need so many copies of fmt...
pmconne Jun 5, 2025
9772e14
shouldn't need bundled fmt - SPDLOG_FMT_EXTERNAL is defined
pmconne Jun 5, 2025
6b4bdfb
fmt lib; stdlog subfolders
pmconne Jul 8, 2025
34be0a8
copy fmt lib to upack staging
pmconne Jul 8, 2025
80c58a1
update windows mke/part files.
pmconne Jul 8, 2025
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
34 changes: 10 additions & 24 deletions .pipelines/copy-include-files.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,49 +7,35 @@ steps:
- task: CopyFiles@2
displayName: 'Copy CesiumUtility include files to upack staging directory'
inputs:
SourceFolder: "CesiumUtility/include/CesiumUtility"
SourceFolder: "$(Build.SourcesDirectory)/cesium-native/CesiumUtility/include/CesiumUtility"
Contents: "**"
TargetFolder: upack-staging/${{ parameters.platform }}/include/CesiumUtility
TargetFolder: $(Build.SourcesDirectory)/cesium-native/upack-staging/${{ parameters.platform }}/include/CesiumUtility

- task: CopyFiles@2
displayName: 'Copy CesiumGltf include files to upack staging directory'
inputs:
SourceFolder: "CesiumGltf/include/CesiumGltf"
SourceFolder: "$(Build.SourcesDirectory)/cesium-native/CesiumGltf/include/CesiumGltf"
Contents: "**"
TargetFolder: upack-staging/${{ parameters.platform }}/include/CesiumGltf
TargetFolder: $(Build.SourcesDirectory)/cesium-native/upack-staging/${{ parameters.platform }}/include/CesiumGltf

- task: CopyFiles@2
displayName: 'Copy CesiumGltf generated include files to upack staging directory'
inputs:
SourceFolder: "CesiumGltf/generated/include/CesiumGltf"
SourceFolder: "$(Build.SourcesDirectory)/cesium-native/CesiumGltf/generated/include/CesiumGltf"
Contents: "**"
TargetFolder: upack-staging/${{ parameters.platform }}/include/CesiumGltf
TargetFolder: $(Build.SourcesDirectory)/cesium-native/upack-staging/${{ parameters.platform }}/include/CesiumGltf

- task: CopyFiles@2
displayName: 'Copy CesiumJsonWriter include files to upack staging directory'
inputs:
SourceFolder: "CesiumJsonWriter/include/CesiumJsonWriter"
SourceFolder: "$(Build.SourcesDirectory)/cesium-native/CesiumJsonWriter/include/CesiumJsonWriter"
Contents: "**"
TargetFolder: upack-staging/${{ parameters.platform }}/include/CesiumJsonWriter
TargetFolder: $(Build.SourcesDirectory)/cesium-native/upack-staging/${{ parameters.platform }}/include/CesiumJsonWriter

- task: CopyFiles@2
displayName: 'Copy CesiumGltfWriter include files to upack staging directory'
inputs:
SourceFolder: "CesiumGltfWriter/include/CesiumGltfWriter"
SourceFolder: "$(Build.SourcesDirectory)/cesium-native/CesiumGltfWriter/include/CesiumGltfWriter"
Contents: "**"
TargetFolder: upack-staging/${{ parameters.platform }}/include/CesiumGltfWriter

- task: CopyFiles@2
displayName: 'Copy extern/glm include files to upack staging directory'
inputs:
SourceFolder: "extern/glm/glm"
Contents: "**"
TargetFolder: upack-staging/${{ parameters.platform }}/include/glm

- task: CopyFiles@2
displayName: 'Copy extern/GSL include files to upack staging directory'
inputs:
SourceFolder: "extern/GSL/include/gsl"
Contents: "**"
TargetFolder: upack-staging/${{ parameters.platform }}/include/gsl
TargetFolder: $(Build.SourcesDirectory)/cesium-native/upack-staging/${{ parameters.platform }}/include/CesiumGltfWriter

118 changes: 89 additions & 29 deletions .pipelines/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,17 @@ parameters:
displayName: Windows build
type: boolean
default: false
- name: DryRun
displayName: Dry run (only publish to pipeline artifact)
type: boolean
default: false

resources:
repositories:
- repository: vcpkg
type: github
name: microsoft/vcpkg
endpoint: github.com_test

jobs:
- job:
Expand All @@ -22,55 +33,78 @@ jobs:
demands: "Agent.OS -equals Linux"
steps:
- checkout: self
lfs: true
submodules: recursive
persistCredentials: true

- checkout: vcpkg
lfs: true
submodules: recursive
persistCredentials: true

- task: ExtractFiles@1
displayName: 'Extract cmake executable'
inputs:
archiveFilePatterns: "tools/cmake-linux.zip"
destinationFolder: "tools"
archiveFilePatterns: "$(Build.SourcesDirectory)/cesium-native/tools/cmake-linux.zip"
destinationFolder: "$(Build.SourcesDirectory)/cesium-native/tools"
cleanDestinationFolder: false

- script: chmod +x tools/cmake-linux/bin/cmake
- script: chmod +x $(Build.SourcesDirectory)/cesium-native/tools/cmake-linux/bin/cmake
displayName: 'chmod +x on cmake executable'

- script: tools/cmake-linux/bin/cmake -S $(Build.SourcesDirectory) -B $(Build.SourcesDirectory)/out -D CMAKE_C_COMPILER=/usr/lib/llvm-16/bin/clang -D CMAKE_CXX_COMPILER=/usr/lib/llvm-16/bin/clang++
- script: $(Build.SourcesDirectory)/cesium-native/tools/cmake-linux/bin/cmake -S $(Build.SourcesDirectory)/cesium-native -B $(Build.SourcesDirectory)/cesium-native/build -D CMAKE_C_COMPILER=/usr/lib/llvm-16/bin/clang -D CMAKE_CXX_COMPILER=/usr/lib/llvm-16/bin/clang++ -DCMAKE_TOOLCHAIN_FILE=$(Build.SourcesDirectory)/vcpkg/scripts/buildsystems/vcpkg.cmake -DCESIUM_USE_EZVCPKG=OFF -DVCPKG_TARGET_TRIPLET=x64-linux -DVCPKG_HOST_TRIPLET=x64-linux
displayName: 'Generate cmake project'
env:
GIT_LFS_SKIP_SMUDGE: 1

- script: tools/cmake-linux/bin/cmake --build $(Build.SourcesDirectory)/out --target CesiumGltfWriter --config Release
- script: $(Build.SourcesDirectory)/cesium-native/tools/cmake-linux/bin/cmake --build $(Build.SourcesDirectory)/cesium-native/build --target CesiumGltfWriter --config Release
displayName: 'Build CesiumGltfWriter target'

- template: copy-include-files.yml
parameters:
platform: linux
platform: linux

- task: CopyFiles@2
displayName: 'Copy glm files to upack staging directory'
inputs:
SourceFolder: "$(Build.SourcesDirectory)/cesium-native/build/vcpkg_installed/x64-linux/include/glm"
Contents: "**"
TargetFolder: $(Build.SourcesDirectory)/cesium-native/upack-staging/linux/include/glm

- task: CopyFiles@2
displayName: 'Copy GSL include files to upack staging directory'
inputs:
SourceFolder: "$(Build.SourcesDirectory)/cesium-native/build/vcpkg_installed/x64-linux/include/gsl"
Contents: "**"
TargetFolder: $(Build.SourcesDirectory)/cesium-native/upack-staging/linux/include/gsl

- task: CopyFiles@2
displayName: 'Copy CesiumGltfWriter lib to upack staging directory'
inputs:
SourceFolder: "out/CesiumGltfWriter"
SourceFolder: "$(Build.SourcesDirectory)/cesium-native/build/CesiumGltfWriter"
Contents: "*.a"
TargetFolder: upack-staging/linux/lib
TargetFolder: $(Build.SourcesDirectory)/cesium-native/upack-staging/linux/lib

- task: CopyFiles@2
displayName: 'Copy CesiumJsonWriter lib to upack staging directory'
inputs:
SourceFolder: "out/CesiumJsonWriter"
SourceFolder: "$(Build.SourcesDirectory)/cesium-native/build/CesiumJsonWriter"
Contents: "*.a"
TargetFolder: upack-staging/linux/lib
TargetFolder: $(Build.SourcesDirectory)/cesium-native/upack-staging/linux/lib

# Uncomment this task for testing without having to publish to upack feed
# - task: PublishPipelineArtifact@1
# inputs:
# targetPath: 'upack-staging'
# artifactName: 'cesium-native_x64_linux'
- task: PublishPipelineArtifact@1
condition: eq('${{parameters.DryRun}}', true)
inputs:
targetPath: '$(Build.SourcesDirectory)/cesium-native/upack-staging/linux'
artifactName: 'cesium-native_x64_linux'

- task: UniversalPackages@0
condition: eq('${{parameters.DryRun}}', false)
displayName: 'Publish cesium-native to Universal Package feed'
inputs:
command: "publish"
publishDirectory: "upack-staging/linux"
publishDirectory: "$(Build.SourcesDirectory)/cesium-native/upack-staging/linux"
feedsToUsePublish: "internal"
vstsFeedPublish: "upack"
vstsFeedPackagePublish: "cesium_native_x64_linux"
Expand All @@ -83,52 +117,78 @@ jobs:
displayName: Publish cesium-native on Windows
condition: eq('${{parameters.WindowsBuild}}', true)
pool:
vmImage: "windows-2019"
vmImage: "windows-2022"
steps:
- checkout: self
lfs: true
lfs: false
submodules: recursive
persistCredentials: true

- checkout: vcpkg
lfs: false
submodules: recursive
persistCredentials: true

# vcpkg does not allow enviroment variables to propagate on windows, so we reset the lfs settings to skip smudge and avoid lfs download errors which are not critical for us
- powershell: |
git lfs uninstall
git lfs install --skip-smudge

- task: CMake@1
displayName: 'Generate cmake project'
inputs:
cmakeArgs: -S $(Build.SourcesDirectory) -B $(Build.SourcesDirectory)/out -G "Visual Studio 16 2019"
cmakeArgs: -S $(Build.SourcesDirectory)/cesium-native -B $(Build.SourcesDirectory)/cesium-native/build -G "Visual Studio 17 2022" -DCMAKE_TOOLCHAIN_FILE=$(Build.SourcesDirectory)/vcpkg/scripts/buildsystems/vcpkg.cmake -DCESIUM_USE_EZVCPKG=OFF -DVCPKG_TARGET_TRIPLET=x64-windows-static-md -DVCPKG_HOST_TRIPLET=x64-windows-static-md

- task: CMake@1
displayName: 'Build CesiumGltfWriter target'
inputs:
cmakeArgs: --build $(Build.SourcesDirectory)/out --target CesiumGltfWriter --config Release
cmakeArgs: --build $(Build.SourcesDirectory)/cesium-native/build --target CesiumGltfWriter --config Release

- template: copy-include-files.yml
parameters:
platform: windows

- task: CopyFiles@2
displayName: 'Copy glm files to upack staging directory'
inputs:
SourceFolder: "$(Build.SourcesDirectory)/cesium-native/build/vcpkg_installed/x64-windows-static-md/include/glm"
Contents: "**"
TargetFolder: $(Build.SourcesDirectory)/cesium-native/upack-staging/windows/include/glm

- task: CopyFiles@2
displayName: 'Copy GSL include files to upack staging directory'
inputs:
SourceFolder: "$(Build.SourcesDirectory)/cesium-native/build/vcpkg_installed/x64-windows-static-md/include/gsl"
Contents: "**"
TargetFolder: $(Build.SourcesDirectory)/cesium-native/upack-staging/windows/include/gsl

- task: CopyFiles@2
displayName: 'Copy CesiumGltfWriter lib to upack staging directory'
inputs:
SourceFolder: "out/CesiumGltfWriter/Release"
SourceFolder: "$(Build.SourcesDirectory)/cesium-native/build/CesiumGltfWriter/Release"
Contents: "*.lib"
TargetFolder: upack-staging/windows/lib
TargetFolder: $(Build.SourcesDirectory)/cesium-native/upack-staging/windows/lib

- task: CopyFiles@2
displayName: 'Copy CesiumGltfWriter lib to upack staging directory'
inputs:
SourceFolder: "out/CesiumJsonWriter/Release"
SourceFolder: "$(Build.SourcesDirectory)/cesium-native/build/CesiumJsonWriter/Release"
Contents: "*.lib"
TargetFolder: upack-staging/windows/lib
TargetFolder: $(Build.SourcesDirectory)/cesium-native/upack-staging/windows/lib

# Uncomment this task for testing without having to publish to upack feed
# - task: PublishPipelineArtifact@1
# inputs:
# targetPath: 'upack-staging'
# artifactName: 'cesium-native_x64_win'
- task: PublishPipelineArtifact@1
condition: eq('${{parameters.DryRun}}', true)
inputs:
targetPath: '$(Build.SourcesDirectory)/cesium-native/upack-staging/windows'
artifactName: 'cesium-native_x64_win'

- task: UniversalPackages@0
- task: UniversalPackages@0
condition: eq('${{parameters.DryRun}}', false)
displayName: 'Publish cesium-native to Universal Package feed'
inputs:
command: "publish"
publishDirectory: "upack-staging/windows"
publishDirectory: "$(Build.SourcesDirectory)/cesium-native/upack-staging/windows"
feedsToUsePublish: "internal"
vstsFeedPublish: "upack"
vstsFeedPackagePublish: "cesium_native_x64_win"
Expand Down
48 changes: 48 additions & 0 deletions CMakePresets.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
{
"version": 3,
"configurePresets": [
{
"name": "vcpkg",
"binaryDir": "${sourceDir}/build",
"cacheVariables": {
"CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake",
"CESIUM_USE_EZVCPKG": "OFF"
},
"environment": {
"CMAKE_POLICY_VERSION_MINIMUM": "3.5",
"VCPKG_KEEP_ENV_VARS": "CMAKE_POLICY_VERSION_MINIMUM"
}
},
{
"name": "vcpkg-ninja",
"generator": "Ninja",
"inherits": ["vcpkg"]
},
{
"name": "vcpkg-ninja-multi",
"generator": "Ninja Multi-Config",
"inherits": ["vcpkg"]
},
{
"name": "vcpkg-linux",
"inherits": ["vcpkg"],
"cacheVariables": {
"VCPKG_TARGET_TRIPLET": "x64-linux",
"VCPKG_HOST_TRIPLET": "x64-linux"
}
},
{
"name": "vcpkg-windows",
"inherits": ["vcpkg"],
"cacheVariables": {
"VCPKG_TARGET_TRIPLET": "x64-windows-static-md",
"VCPKG_HOST_TRIPLET": "x64-windows-static-md"
}
},
{
"name": "vcpkg-windows-vs",
"inherits": ["vcpkg-windows"],
"generator": "Visual Studio 17 2022"
}
]
}