tl-parser/contrib/vs/config.bat

108 lines
3.6 KiB
Batchfile

@echo off
setlocal enabledelayedexpansion
set PACKAGE_NAME="tl-parser"
set PACKAGE_TARNAME="tl-parser"
set PACKAGE_VERSION="1.0"
set PACKAGE_STRING="tl-parser %PACKAGE_VERSION:~1%"
set PACKAGE_BUGREPORT=""
set PACKAGE_URL=""
set CONFIG_HEADER_IN=..\..\config.h.in
set CONFIG_HEADER=config.h
set DEFAULT_OUT_FOLDER=build
set OUT_PATH=""
set SOURCE_LIST=()
:rem Parse Args
for %%a in (%*) do (
if defined arg (
if /I "-o"=="!arg!" set OUT_PATH=%%a
set set arg=
)
if /I "%%a" geq "-" (
set arg=%%a
) else (
set set arg=
)
)
if %OUT_PATH%=="" (
set OUT_PATH=%DEFAULT_OUT_FOLDER%
)
:rem Make output folder if not exists
if not exist !OUT_PATH! mkdir !OUT_PATH!
:rem Copy source files to the output folder
for %%i in %SOURCE_LIST% do (
if not exist %OUT_PATH%\%%i (
echo |set /p=Copying file: %%i
copy %%i "%OUT_PATH%\%%i" 1>NUL && (
echo Done
) || (
echo Failed
)
)
)
set OUT_PATH="%OUT_PATH%\%CONFIG_HEADER%"
if exist %OUT_PATH% exit /B 0
:rem Copy config.h.in to the output folder
echo |set /p=Copying file: %CONFIG_HEADER%
copy %CONFIG_HEADER_IN% %OUT_PATH% 1>NUL && (
echo Done
) || (
echo Failed
exit /B %ERRORLEVEL%
)
:rem Configure config.h
echo |set /p=Configurating file: config.h
call :find_and_replace "#undef PACKAGE_BUGREPORT" "#define PACKAGE_BUGREPORT %PACKAGE_BUGREPORT%"
call :find_and_replace "#undef PACKAGE_NAME" "#define PACKAGE_NAME %PACKAGE_NAME%"
call :find_and_replace "#undef PACKAGE_STRING" "#define PACKAGE_STRING %PACKAGE_STRING%"
call :find_and_replace "#undef PACKAGE_TARNAME" "#define PACKAGE_TARNAME %PACKAGE_TARNAME%"
call :find_and_replace "#undef PACKAGE_URL" "#define PACKAGE_URL %PACKAGE_URL%"
call :find_and_replace "#undef PACKAGE_VERSION" "#define PACKAGE_VERSION %PACKAGE_VERSION%"
call :find_and_replace "#undef HAVE_FCNTL_H" "#define HAVE_FCNTL_H 1"
call :find_and_replace "#undef HAVE_INTTYPES_H" "#define HAVE_INTTYPES_H 1"
call :find_and_replace "#undef HAVE_LIBZ" "#define HAVE_LIBZ 1"
call :find_and_replace "#undef HAVE_MALLOC" "#define HAVE_MALLOC 1"
call :find_and_replace "#undef HAVE_MEMORY_H" "#define HAVE_MEMORY_H 1"
call :find_and_replace "#undef HAVE_MEMSET" "#define HAVE_MEMSET 1"
call :find_and_replace "#undef HAVE_REALLOC" "#define HAVE_REALLOC 1"
call :find_and_replace "#undef HAVE_STDINT_H" "#define HAVE_STDINT_H 1"
call :find_and_replace "#undef HAVE_STDLIB_H" "#define HAVE_STDLIB_H 1"
call :find_and_replace "#undef HAVE_STRDUP" "#define HAVE_STRDUP 1"
call :find_and_replace "#undef HAVE_STRING_H" "#define HAVE_STRING_H 1"
call :find_and_replace "#undef HAVE_SYS_STAT_H" "#define HAVE_SYS_STAT_H 1"
call :find_and_replace "#undef HAVE_SYS_TYPES_H" "#define HAVE_SYS_TYPES_H 1"
call :find_and_replace "#undef STDC_HEADERS" "#define STDC_HEADERS 1"
call :find_and_replace "#undef inline" "#define inline __inline"
call :find_and_replace "#undef" "// #undef"
if %ERRORLEVEL% == 0 echo Done
if not %ERRORLEVEL% == 0 (
echo Failed
if exist %OUT_PATH% del /q /f %OUT_PATH%
)
exit /B %ERRORLEVEL%
:find_and_replace
set FIND_STR=%1
set "FIND_STR=!FIND_STR:~1,-1!"
set REPLACE_STR=%2 %3
set "REPLACE_STR=!REPLACE_STR:~1,-2!"
for /f "delims=" %%i in ('type "%OUT_PATH%" ^| C:\Windows\System32\find.exe /n /v "" ^& break ^> "%OUT_PATH%" ') do (
set "line=%%i"
setlocal enableDelayedExpansion
set "line=!line:*]%FIND_STR%=%REPLACE_STR%!"
set "line=!line:*]=!"
>>"%OUT_PATH%" echo(!line!
endlocal
)
exit /B %ERRORLEVEL%