Skip to content
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

add manifest for CZIcmd and add Windows-ARM64-build #116

Merged
merged 22 commits into from
Sep 23, 2024

Conversation

ptahmose
Copy link
Contributor

Description

  • adds a manifest to the CZIcmd-executable in order to enable support for long-paths
  • add cross-compilation for Windows-ARM64

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

How Has This Been Tested?

locally

  • putting a CZI into a path with more than 255 characters, and verify that this file can be accessed with CZIcmd
  • run CZIcmd on a Windows-ARM-device

Checklist:

  • I followed the Contributing Guidelines.
  • I did a self-review.
  • I commented my code, particularly in hard-to-understand areas.
  • I updated the documentation.
  • I updated the version of libCZI following Versioning of libCZI depending on the type of change
    • Bug fix -> PATCH
    • New feature -> MINOR
    • Breaking change -> MAJOR
  • I have added tests that prove my fix is effective or that my feature works.
  • New and existing unit tests pass locally with my changes.

Added a new XML manifest file `CZIcmd.manifest` to enable support for long paths in the application by setting the `longPathAware` attribute to `true`.

Introduced a new resource script file `CZIcmd.rc` with SPDX license information, headers, resource symbols, version details, company and product information, and an application icon resource.

Created a new header file `resource_data.h.in` to define version-related macros and file description strings, using placeholders for dynamic replacement during the build process.
Updated CMakeLists.txt to include new source files for the CZIcmd
target, set the C++ standard to C++14, and added platform-specific
handling for Windows with manifest and resource files. Configured
project description and resource data generation. Added installation
rule for the CZIcmd executable.
Modified `cmake.yml` to trigger the workflow on pushes to any branch
by changing the `branches` key under the `push` event to `**`.
This allows the workflow to run for pushes to all branches,
providing more flexibility in CI/CD processes.
Introduced new variables `czicmd_VERSION_MAJOR`, `czicmd_VERSION_MINOR`,
and `czicmd_VERSION_PATCH` in `CMakeLists.txt`. These variables are set
using the corresponding version variables from `libCZI` to ensure
consistent versioning across the project.
Updated CMakeLists.txt to increment libCZI version from 0.62.1 to 0.62.2.
Added a new entry in version-history.markdown for 0.62.2, noting the
enablement of long paths on Windows for CZIcmd.
Updated cmake.yml to improve clarity and organization of the build process for Windows x64, Windows ARM64, and Ubuntu.
- Specified architecture in Windows CMake configuration steps.
- Split build steps into separate jobs for each platform.
- Added conditions to ensure correct build commands for each OS and architecture.
- Used distinct build directories for Windows x64 and ARM64 to avoid conflicts.
- Separated Azurite installation from CMake steps for better clarity.
Updated `cmake.yml` to use `$env:VCPKG_INSTALLATION_ROOT` instead of `${VCPKG_INSTALLATION_ROOT}` for correct environment variable referencing in PowerShell for both Windows x64 and Windows ARM64 builds.
Updated CMake configuration for Windows ARM64 to include
`CRASH_ON_UNALIGNED_ACCESS=OFF` and `IS_BIG_ENDIAN=FALSE`
for cross-compilation.

Refined conditional statements for artifact preparation
and upload by removing spaces around `matrix.build`
condition.

Enhanced clarity in `codecov-action` by adding parentheses
around `github.repository` condition.
Modified `cmake.yml` to change the `artifactPath` for the Windows ARM64 build from `${{github.workspace}}/build/release/${name}` to `${{github.workspace}}/arm64build/release/${name}`. This ensures the artifact is correctly stored in the `arm64build` directory.
@ptahmose ptahmose added the cla Contributor License Agreement sent to Admin label Sep 22, 2024
@ptahmose ptahmose requested a review from a team September 22, 2024 12:08
@ptahmose ptahmose marked this pull request as ready for review September 22, 2024 12:20
Copy link

codecov bot commented Sep 22, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 65.50%. Comparing base (4df6b90) to head (9a5c654).
Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #116   +/-   ##
=======================================
  Coverage   65.50%   65.50%           
=======================================
  Files          86       86           
  Lines       10893    10893           
=======================================
  Hits         7136     7136           
  Misses       3757     3757           
Flag Coverage Δ
windows-latest 65.50% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

m-aXimilian
m-aXimilian previously approved these changes Sep 23, 2024
.github/workflows/cmake.yml Show resolved Hide resolved
CMakeLists.txt Outdated Show resolved Hide resolved
Src/libCZI/Doc/version-history.markdown Outdated Show resolved Hide resolved
.github/workflows/cmake.yml Show resolved Hide resolved
@ptahmose ptahmose merged commit 6b0fbc9 into ZEISS:main Sep 23, 2024
15 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cla Contributor License Agreement sent to Admin
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants