mirror of
https://github.com/AtomUI/AtomUI.git
synced 2026-10-17 05:31:01 +08:00
Refactor atomui pipeline
This commit is contained in:
+1
-1
@@ -1,4 +1,4 @@
|
||||
<h1>AtomUI</h1>
|
||||
## AtomUI
|
||||
|
||||
#### Introduce
|
||||
|
||||
|
||||
+40
-5
@@ -29,10 +29,22 @@ stages:
|
||||
vmImage: 'macOS-latest'
|
||||
steps:
|
||||
- pwsh: |
|
||||
brew install ninja
|
||||
cmake -B $(buildDir) -S $(nativeLibSrcDir) -DCMAKE_INSTALL_PREFIX="$(macOutputDir)" -DCMAKE_OSX_ARCHITECTURES:STRING="x86_64;arm64" -DCMAKE_BUILD_TYPE="${{ parameters.BuildConfiguration }}" -G "Ninja"
|
||||
ninja -C $(buildDir)
|
||||
ninja -C $(buildDir) install
|
||||
brew install xmake
|
||||
xmake --version
|
||||
clang --version
|
||||
xmake config --project=$(nativeLibSrcDir) --builddir=$(buildDir) -p macosx -a arm64 -m ${{ parameters.BuildConfiguration }}
|
||||
xmake build
|
||||
xmake install --installdir=$(macOutputDir)
|
||||
xmake config --project=$(nativeLibSrcDir) --builddir=$(buildDir) -p macosx -a x86_64 -m ${{ parameters.BuildConfiguration }}
|
||||
xmake build
|
||||
xmake install --installdir=$(macOutputDir)
|
||||
Write-Output "generate universal binary"
|
||||
New-Item -Path "$(macOutputDir)/lib" -ItemType Directory -Force
|
||||
lipo -create $(macOutputDir)/arm64/lib/libAtomUINative.dylib $(macOutputDir)/x86_64/lib/libAtomUINative.dylib -output $(macOutputDir)/lib/libAtomUINative.dylib
|
||||
dir "$(macOutputDir)" -File
|
||||
lipo -info $(macOutputDir)/lib/libAtomUINative.dylib
|
||||
Remove-Item -Path "$(macOutputDir)/arm64/lib/libAtomUINative.dylib"
|
||||
Remove-Item -Path "$(macOutputDir)/x86_64/lib/libAtomUINative.dylib"
|
||||
displayName: "Build AtomUINative"
|
||||
- task: PublishPipelineArtifact@1
|
||||
inputs:
|
||||
@@ -49,10 +61,33 @@ stages:
|
||||
artifact: AtomUINativeMac
|
||||
displayName: "Download libAtomUINative.dylib to pipeline"
|
||||
- pwsh: |
|
||||
$msysPath = "C:/msys64"
|
||||
$env:MSYSTEM = "CLANG64"
|
||||
$env:MSYSTEM_CARCH = "x86_64"
|
||||
$env:MSYSTEM_CHOST = "x86_64-w64-mingw32"
|
||||
$env:MSYSTEM_PREFIX = "/clang64"
|
||||
$env:CHERE_INVOKING = "1"
|
||||
$env:PATH = "$msysPath/clang64/bin;$msysPath/usr/bin;$env:PATH"
|
||||
Write-Host "##vso[task.setvariable variable=MSYSTEM]CLANG64"
|
||||
Write-Host "##vso[task.setvariable variable=MSYSTEM_CARCH]x86_64"
|
||||
Write-Host "##vso[task.setvariable variable=MSYSTEM_CHOST]x86_64-w64-mingw32"
|
||||
Write-Host "##vso[task.setvariable variable=MSYSTEM_PREFIX]/clang64"
|
||||
Write-Host "##vso[task.prependpath]$msysPath/clang64/bin"
|
||||
Write-Host "##vso[task.prependpath]$msysPath/usr/bin"
|
||||
C:/msys64/usr/bin/bash.exe -lc @"
|
||||
pacman -Sy --noconfirm
|
||||
pacman -S mingw-w64-clang-x86_64-xmake --noconfirm
|
||||
pacman -S mingw-w64-clang-x86_64-clang --noconfirm
|
||||
"@
|
||||
xmake --version
|
||||
clang --version
|
||||
displayName: "Prepare Build environment"
|
||||
- pwsh: |
|
||||
dotnet build --configuration ${{ parameters.BuildConfiguration }} /p:IsNightlyBuild=${{ parameters.IsNightlyBuild }} $(SourceDir)/packages/AtomUI/AtomUI.csproj
|
||||
$osxNativeLibDir = "$(SourceDir)/output/Bin/Release/runtimes/osx/native"
|
||||
New-Item -ItemType Directory -Force -Path $osxNativeLibDir
|
||||
Copy-Item -Path $(Pipeline.Workspace)/lib/libAtomUINative.dylib -Destination $osxNativeLibDir
|
||||
dotnet build --verbosity normal --configuration ${{ parameters.BuildConfiguration }} /p:IsNightlyBuild=${{ parameters.IsNightlyBuild }} $(SourceDir)/packages/AtomUI/AtomUI.csproj
|
||||
dotnet build --configuration ${{ parameters.BuildConfiguration }} /p:IsNightlyBuild=${{ parameters.IsNightlyBuild }} $(SourceDir)/packages/AtomUI/AtomUI.csproj
|
||||
displayName: "Build AtomUI projects"
|
||||
- pwsh: |
|
||||
$buildTimestamp = Get-Date -Format 'yyyyMMddHHmm'
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
<PropertyGroup>
|
||||
<NoWarn>$(NoWarn);CS7035</NoWarn>
|
||||
<AvaloniaVersion>11.3.1</AvaloniaVersion>
|
||||
<AtomUIVersion>0.0.2</AtomUIVersion>
|
||||
<AtomUIVersion>0.0.3</AtomUIVersion>
|
||||
<IsNightlyBuild Condition="'$(IsNightlyBuild)' == ''">false</IsNightlyBuild>
|
||||
<BuildTimestamp Condition="'$(BuildTimestamp)' == ''">$([System.DateTime]::Now.ToString("yyyyMMddHHmm"))</BuildTimestamp>
|
||||
<CanAppendBuildInfo>false</CanAppendBuildInfo>
|
||||
|
||||
@@ -30,10 +30,10 @@ includes("xmake/options.lua")
|
||||
includes("xmake/toolchains/atomui")
|
||||
|
||||
add_includedirs("include", {public = true})
|
||||
add_includedirs("$(buildir)/include", {public = true})
|
||||
add_includedirs("$(builddir)/include", {public = true})
|
||||
|
||||
-- global config header generator
|
||||
set_configdir("$(buildir)/include/atomui")
|
||||
set_configdir("$(builddir)/include/atomui")
|
||||
add_configfiles(path.join(ATOMUI_INCLUDE_DIR, "Config.h.in"))
|
||||
|
||||
ATOMUI_PACKAGE_NAME = "atomui"
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
-- Created by chinboy on 2025/05/19.
|
||||
|
||||
function main()
|
||||
set_configdir("$(buildir)/include/atomui")
|
||||
set_configdir("$(builddir)/include/atomui")
|
||||
add_configfiles(path.join(ATOMUI_INCLUDE_DIR, "Config.h.in"))
|
||||
|
||||
ATOMUI_PACKAGE_NAME = "atomui"
|
||||
|
||||
@@ -16,7 +16,7 @@ function main()
|
||||
cprint("--------------------------------------------------------------------------------------")
|
||||
cprint("BUILD_MODE : ${color.success}%s", project_config.mode())
|
||||
cprint("PROJECT_SOURCE_DIR: ${color.success}%s", os.projectdir())
|
||||
cprint("PROJECT_BINARY_DIR: ${color.success}%s", "$(buildir)")
|
||||
cprint("PROJECT_BINARY_DIR: ${color.success}%s", "$(builddir)")
|
||||
cprint("CONFIGURE_DIR : ${color.success}%s", project_config.directory())
|
||||
cprint("XMAKE_INSTALL_DIR : ${color.success}%s", "$(programdir)")
|
||||
cprint("HOST : ${color.success}%s", project_config.host())
|
||||
|
||||
@@ -38,15 +38,15 @@ $env:XMAKE_COLORTERM = 'nocolor'
|
||||
$buildType = $buildType.ToLower()
|
||||
|
||||
if ($IsWindows) {
|
||||
xmake config --project=$sourceDir --buildir=$buildDir -p msys -a x86_64 -m $buildType
|
||||
xmake config --project=$sourceDir --builddir=$buildDir -p msys -a x86_64 -m $buildType
|
||||
xmake build
|
||||
xmake install --installdir=$installPrefix
|
||||
Copy-Item -Path $installPrefix/x86_64/lib/$libName -Destination $deployDir
|
||||
} else {
|
||||
xmake config --project=$sourceDir --buildir=$buildDir -p macosx -a arm64 -m $buildType
|
||||
xmake config --project=$sourceDir --builddir=$buildDir -p macosx -a arm64 -m $buildType
|
||||
xmake build
|
||||
xmake install --installdir=$installPrefix
|
||||
xmake config --project=$sourceDir --buildir=$buildDir -p macosx -a x86_64 -m $buildType
|
||||
xmake config --project=$sourceDir --builddir=$buildDir -p macosx -a x86_64 -m $buildType
|
||||
xmake build
|
||||
xmake install --installdir=$installPrefix
|
||||
Write-Output "generate universal binary"
|
||||
|
||||
Reference in New Issue
Block a user