diff --git a/README.nuget.md b/README.nuget.md index 9ca2d9865..b1b9945fe 100644 --- a/README.nuget.md +++ b/README.nuget.md @@ -1,4 +1,4 @@ -

AtomUI

+## AtomUI #### Introduce diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 582d88237..50360c173 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -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' diff --git a/build/Version.props b/build/Version.props index 9808081c8..7f7daeb54 100644 --- a/build/Version.props +++ b/build/Version.props @@ -2,7 +2,7 @@ $(NoWarn);CS7035 11.3.1 - 0.0.2 + 0.0.3 false $([System.DateTime]::Now.ToString("yyyyMMddHHmm")) false diff --git a/nativelibs/xmake.lua b/nativelibs/xmake.lua index 9eb8930d5..9415ac7d9 100644 --- a/nativelibs/xmake.lua +++ b/nativelibs/xmake.lua @@ -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" diff --git a/nativelibs/xmake/modules/header_defines.lua b/nativelibs/xmake/modules/header_defines.lua index 4e26beb73..06951ffab 100644 --- a/nativelibs/xmake/modules/header_defines.lua +++ b/nativelibs/xmake/modules/header_defines.lua @@ -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" diff --git a/nativelibs/xmake/modules/summary_output.lua b/nativelibs/xmake/modules/summary_output.lua index ada017199..6831a77aa 100644 --- a/nativelibs/xmake/modules/summary_output.lua +++ b/nativelibs/xmake/modules/summary_output.lua @@ -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()) diff --git a/scripts/BuildAtomUINative.ps1 b/scripts/BuildAtomUINative.ps1 index 3facdc759..e6337e5c2 100644 --- a/scripts/BuildAtomUINative.ps1 +++ b/scripts/BuildAtomUINative.ps1 @@ -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"