Getting started with Visual Studio 2022 for UEFI Shell and libxlsxwriter
Get John McNamara's libxlsxwriter library including all additional third party libraries, buildable and running in Microsoft VisualStudio 2022.
- zlib https://github.com/madler/zlib
- md5, minizip and tmpfileplus included in the libxlsxwriter source tree https://github.com/jmcnamara/libxlsxwriter/tree/main/third_party
The Visual-LIBXLSXWRITER-for-UEFI project is just a compilation of all the above mentioned libraries into one single VisualStudio 2022 solution, that builds all libraries at once.
Each particular library needed to use John McNamara's libxlsxwriter in an application is included in a monolithic library project Visual-LIBXLSXWRITER-for-UEFI.
NOTE: For UEFI Shell projects an additional library is needed: Visual-LIBWIN32-for-UEFI
NOTE: The librarie's sourcecodes are pulled in as git subprojects. There isn't any modification of the original sourcecode of libxlsxwriter, zlib, md5, minizip and tmpfileplus.
libxlsxwriter usage
https://github.com/jmcnamara/libxlsxwriter#libxlsxwriter http://libxlsxwriter.github.io/
- binary format: use Visual-LIBXLSXWRITER-for-UEFI.lib in your VS2022 project
- source format: import Visual-LIBXLSXWRITER-for-UEFI.vcxproj VS2022 project file into a VS2022 solution. This option requires that the entire Visual-LIBXLSXWRITER-for-UEFI-Shell solution is availale on the build machine.
- improve usability: change output directory to
$(SolutionDir)\lib
for all subprojects Subprojects can co-exist with other libraries, sharing the same output folder. - suppress Standard C function inlining for all modes and subprojects:
_NO_CRT_STDIO_INLINE
- add dedicated Debug/Release configurations
- provide library project Visual-LIBXLSXWRITER-for-UEFI.vcxproj that merges libxlsxwriter, zlib, md5, minizip and tmpfileplus into a monolithic library binary: Visual-LIBXLSXWRITER-for-UEFI.lib
- simplify interaction of various VISUAL-xyz components, unitize directory structure
and import/export interface for those solutions
- output folder for Configuration Type: static Library is commonly $(SolutionPath)\lib to share one single library folder for all imported subprojects
- adjust include path to be $(ProjectDir) relative
- suppress build warning MSB8012 due to redirected library output path
- initial revision