First Commit
This commit is contained in:
47
3rdparty/libzip/cmake/GenerateZipErrorStrings.cmake
vendored
Normal file
47
3rdparty/libzip/cmake/GenerateZipErrorStrings.cmake
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
# create zip_err_str.c from zip.h and zipint.h
|
||||
file(READ ${PROJECT_SOURCE_DIR}/lib/zip.h zip_h)
|
||||
string(REGEX MATCHALL "#define ZIP_ER_([A-Z0-9_]+) ([0-9]+)[ \t]+/([-*0-9a-zA-Z, ']*)/" zip_h_err ${zip_h})
|
||||
file(READ ${PROJECT_SOURCE_DIR}/lib/zipint.h zipint_h)
|
||||
string(REGEX MATCHALL "#define ZIP_ER_DETAIL_([A-Z0-9_]+) ([0-9]+)[ \t]+/([-*0-9a-zA-Z, ']*)/" zipint_h_err ${zipint_h})
|
||||
set(zip_err_str [=[
|
||||
/*
|
||||
This file was generated automatically by CMake
|
||||
from zip.h and zipint.h\; make changes there.
|
||||
*/
|
||||
|
||||
#include "zipint.h"
|
||||
|
||||
#define L ZIP_ET_LIBZIP
|
||||
#define N ZIP_ET_NONE
|
||||
#define S ZIP_ET_SYS
|
||||
#define Z ZIP_ET_ZLIB
|
||||
|
||||
#define E ZIP_DETAIL_ET_ENTRY
|
||||
#define G ZIP_DETAIL_ET_GLOBAL
|
||||
|
||||
const struct _zip_err_info _zip_err_str[] = {
|
||||
]=])
|
||||
set(zip_err_type)
|
||||
foreach(errln ${zip_h_err})
|
||||
string(REGEX MATCH "#define ZIP_ER_([A-Z0-9_]+) ([0-9]+)[ \t]+/([-*0-9a-zA-Z, ']*)/" err_t_tt ${errln})
|
||||
string(REGEX MATCH "([L|N|S|Z]+) ([-0-9a-zA-Z,, ']*)" err_t_tt "${CMAKE_MATCH_3}")
|
||||
string(STRIP "${CMAKE_MATCH_2}" err_t_tt)
|
||||
string(APPEND zip_err_str " { ${CMAKE_MATCH_1}, \"${err_t_tt}\" },\n")
|
||||
endforeach()
|
||||
string(APPEND zip_err_str [=[}\;
|
||||
|
||||
const int _zip_err_str_count = sizeof(_zip_err_str)/sizeof(_zip_err_str[0])\;
|
||||
|
||||
const struct _zip_err_info _zip_err_details[] = {
|
||||
]=])
|
||||
foreach(errln ${zipint_h_err})
|
||||
string(REGEX MATCH "#define ZIP_ER_DETAIL_([A-Z0-9_]+) ([0-9]+)[ \t]+/([-*0-9a-zA-Z, ']*)/" err_t_tt ${errln})
|
||||
string(REGEX MATCH "([E|G]+) ([-0-9a-zA-Z, ']*)" err_t_tt "${CMAKE_MATCH_3}")
|
||||
string(STRIP "${CMAKE_MATCH_2}" err_t_tt)
|
||||
string(APPEND zip_err_str " { ${CMAKE_MATCH_1}, \"${err_t_tt}\" },\n")
|
||||
endforeach()
|
||||
string(APPEND zip_err_str [=[}\;
|
||||
|
||||
const int _zip_err_details_count = sizeof(_zip_err_details)/sizeof(_zip_err_details[0])\;
|
||||
]=])
|
||||
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/zip_err_str.c ${zip_err_str})
|
||||
Reference in New Issue
Block a user