jmcnamara / libxlsxwriter

A C library for creating Excel XLSX files.
https://libxlsxwriter.github.io
Other
1.48k stars 330 forks source link

zig: Fix CI #423

Closed kassane closed 8 months ago

kassane commented 8 months ago

Fix Zig CI

@jmcnamara

kassane commented 8 months ago

windows-runner, header files AccessDenied?

install include/: error: unable to update file from 'D:\a\libxlsxwriter\libxlsxwriter\D:\a\libxlsxwriter\libxlsxwriter\include\xlsxwriter\hash_table.h' to 'D:\a\libxlsxwriter\libxlsxwriter\zig-out\include\xlsxwriter\hash_table.h': AccessDenied
install include/: error: unable to update file from 'D:\a\libxlsxwriter\libxlsxwriter\D:\a\libxlsxwriter\libxlsxwriter\include\xlsxwriter\third_party\emyg_dtoa.h' to 'D:\a\libxlsxwriter\libxlsxwriter\zig-out\include\xlsxwriter\third_party\emyg_dtoa.h': AccessDenied
install include/: error: unable to update file from 'D:\a\libxlsxwriter\libxlsxwriter\D:\a\libxlsxwriter\libxlsxwriter\include\xlsxwriter\third_party\tree.h' to 'D:\a\libxlsxwriter\libxlsxwriter\zig-out\include\xlsxwriter\third_party\tree.h': AccessDenied
install include/: error: unable to update file from 'D:\a\libxlsxwriter\libxlsxwriter\D:\a\libxlsxwriter\libxlsxwriter\include\xlsxwriter\worksheet.h' to 'D:\a\libxlsxwriter\libxlsxwriter\zig-out\include\xlsxwriter\worksheet.h': AccessDenied
Build Summary: 104/169 steps succeeded; 4 failed
jmcnamara commented 8 months ago

These from paths are incorrect. They include D:\a\libxlsxwriter\libxlsxwriter twice.

install include/: error: unable to update file from 'D:\a\libxlsxwriter\libxlsxwriter\D:\a\libxlsxwriter\libxlsxwriter\include\xlsxwriter\hash_table.h' to 'D:\a\libxlsxwriter\libxlsxwriter\zig-out\include\xlsxwriter\hash_table.h': AccessDenied
kassane commented 8 months ago

These from paths are incorrect. They include D:\a\libxlsxwriter\libxlsxwriter twice.

install include/: error: unable to update file from 'D:\a\libxlsxwriter\libxlsxwriter\D:\a\libxlsxwriter\libxlsxwriter\include\xlsxwriter\hash_table.h' to 'D:\a\libxlsxwriter\libxlsxwriter\zig-out\include\xlsxwriter\hash_table.h': AccessDenied

This problem has fixed. https://github.com/jmcnamara/libxlsxwriter/pull/423/commits/0f1e1b883ef30f95871be2d3c62f495c2d89a999

zig-out
├── bin
│   ├── anatomy
│   ├── array_formula
│   ├── autofilter
│   ├── background
│   ├── chart_area
│   ├── chart_column
│   ├── data_validate
│   ├── hello
│   ├── test_app
│   ├── test_app_xml_declaration
│   ├── test_chart
│   ├── test_chartsheet
│   ├── test_content_types
│   ├── test_content_types_write_default
│   ├── test_content_types_write_override
│   ├── test_core_xml_declaration
│   ├── test_custom_xml_declaration
│   ├── test_metadata_xml_declaration
│   ├── test_relationships
│   ├── test_relationships_xml_declaration
│   ├── test_shared_strings
│   ├── test_styles_write_border
│   ├── test_table01
│   ├── test_table02
│   ├── test_table03
│   ├── test_table04
│   ├── test_workbook
│   ├── test_xmlwriter
│   ├── watermark
│   └── worksheet_protection
├── include
│   ├── xlsxwriter
│   │   ├── app.h
│   │   ├── chart.h
│   │   ├── chartsheet.h
│   │   ├── comment.h
│   │   ├── common.h
│   │   ├── content_types.h
│   │   ├── core.h
│   │   ├── custom.h
│   │   ├── drawing.h
│   │   ├── format.h
│   │   ├── hash_table.h
│   │   ├── metadata.h
│   │   ├── packager.h
│   │   ├── relationships.h
│   │   ├── shared_strings.h
│   │   ├── styles.h
│   │   ├── table.h
│   │   ├── theme.h
│   │   ├── third_party
│   │   │   ├── emyg_dtoa.h
│   │   │   ├── ioapi.h
│   │   │   ├── md5.h
│   │   │   ├── queue.h
│   │   │   ├── tmpfileplus.h
│   │   │   ├── tree.h
│   │   │   └── zip.h
│   │   ├── utility.h
│   │   ├── vml.h
│   │   ├── workbook.h
│   │   ├── worksheet.h
│   │   └── xmlwriter.h
│   ├── xlsxwriter.h
│   ├── zconf.h
│   └── zlib.h
└── lib
    └── libxlsxwriter.a
kassane commented 8 months ago

Previously, zig had been pulling files copied from zig-out and re-reading the headers during the testBuild. (redundant path)

zig-out/include just makes headers available for users, while for building libxlsxwriter only needs the files in the current path.