Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion builds/posix/Makefile.in
Original file line number Diff line number Diff line change
Expand Up @@ -861,13 +861,16 @@ $(INCLUDE_DEST)/ib_util.h : $(SRC_OtherDistribHeaders)
$(CP) $^ $(INCLUDE_DEST)/

NEW_INCLUDES_SRC = $(shell find $(SRC_ROOT)/include/firebird -type f)
ifeq ($(SYSTEM_BOOST_FLG),Y)
NEW_INCLUDES_SRC := $(filter-out $(SRC_ROOT)/include/firebird/impl/boost/%,$(NEW_INCLUDES_SRC))
endif
NEW_INCLUDES_DEST = $(patsubst $(SRC_ROOT)/include/firebird/%, $(INCLUDE_DEST)/firebird/%, $(NEW_INCLUDES_SRC))

include_generic: $(NEW_INCLUDES_DEST) $(INCLUDE_DEST)/ib_util.h

ifeq ($(SYSTEM_BOOST_FLG),Y)
$(INCLUDE_DEST)/firebird/Message.h : $(SRC_ROOT)/include/firebird/Message.h
sed 's,^#include "\./impl/boost/\(.\+\)",#include <boost/\1>,; s/\bFB_BOOST_PP_/BOOST_PP_/g' $< > $@
sed 's,^#include "\./impl/boost/\(.*\)",#include <boost/\1>,; s/FB_BOOST_PP_/BOOST_PP_/g' $< > $@
endif

$(INCLUDE_DEST)/firebird/%: $(SRC_ROOT)/include/firebird/%
Expand Down
7 changes: 7 additions & 0 deletions builds/win32/make_all.bat
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,13 @@ copy %FB_GEN_DIR%\iberror_c.h %FB_OUTPUT_DIR%\include\firebird\impl > nul
:: New API headers
xcopy /y %FB_ROOT_PATH%\src\include\firebird %FB_OUTPUT_DIR%\include\firebird /e > nul

:: With system boost, do not distribute the embedded copy and make Message.h use <boost/...> and BOOST_PP_
@findstr /C:"<FbBoostIncludeDir>" "%FB_TEMP_DIR%\FirebirdSystemLibs.props" >nul 2>&1
@if not errorlevel 1 (
rmdir /S /Q %FB_OUTPUT_DIR%\include\firebird\impl\boost 2>nul
powershell -NoProfile -Command "(Get-Content '%FB_ROOT_PATH%\src\include\firebird\Message.h') -replace '^#include \x22\./impl/boost/(.+)\x22', '#include <boost/$1>' -replace '\bFB_BOOST_PP_', 'BOOST_PP_' | Set-Content -Encoding ascii '%FB_OUTPUT_DIR%\include\firebird\Message.h'"
)

@if "%FB_CLIENT_ONLY%"=="" (
:: UDR
copy %FB_ROOT_PATH%\src\extlib\*.sql %FB_OUTPUT_DIR%\plugins\udr > nul
Expand Down
72 changes: 67 additions & 5 deletions builds/win32/make_boot.bat
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@ for %%v in ( alice auth burp dsql gpre isql jrd misc msgs examples yvalve utilit

@mkdir %FB_BIN_DIR%\tzdata 2>nul

call :system_libs_config

@if not defined FBBUILD_WITHOUT_CLOOP_GENERATION call :interfaces
if "!ERRLEV!"=="1" goto :END

Expand All @@ -41,8 +43,10 @@ if "!ERRLEV!"=="1" goto :END
if "%FB_TARGET_PLATFORM%"=="x64" call :ttmath
if "!ERRLEV!"=="1" goto :END

call :zlib
if "!ERRLEV!"=="1" goto :END
@if not defined FBBUILD_WITH_SYSTEM_ZLIB (
call :zlib
if "!ERRLEV!"=="1" goto :END
)

@if "%FB_CLIENT_ONLY%"=="" (
call :re2
Expand Down Expand Up @@ -101,10 +105,14 @@ for %%v in (firebird plugins) do (
)

:: Copy ICU and zlib to the output directory
@copy %FB_ROOT_PATH%\extern\icu\icudt???.dat %FB_BIN_DIR% >nul 2>&1
@copy %FB_ICU_SOURCE_BIN%\*.dll %FB_BIN_DIR% >nul 2>&1
@if not defined FBBUILD_WITH_SYSTEM_ICU (
@copy %FB_ROOT_PATH%\extern\icu\icudt???.dat %FB_BIN_DIR% >nul 2>&1
@copy %FB_ICU_SOURCE_BIN%\*.dll %FB_BIN_DIR% >nul 2>&1
)
@copy %FB_ROOT_PATH%\extern\icu\tzdata-extract\* %FB_BIN_DIR%\tzdata >nul 2>&1
@copy %FB_ROOT_PATH%\extern\zlib\%FB_TARGET_PLATFORM%\*.dll %FB_BIN_DIR% >nul 2>&1
@if not defined FBBUILD_WITH_SYSTEM_ZLIB (
@copy %FB_ROOT_PATH%\extern\zlib\%FB_TARGET_PLATFORM%\*.dll %FB_BIN_DIR% >nul 2>&1
)

@if "%FB_CLIENT_ONLY%"=="" (
::=======
Expand All @@ -129,6 +137,53 @@ for %%v in (firebird plugins) do (
@goto :END


::===================
:: Record the system libraries choice in a props file used by all later builds (including the IDE)
:system_libs_config
@mkdir %FB_TEMP_DIR% 2>nul
@set SYSLIBS_PROPS=%FB_TEMP_DIR%\FirebirdSystemLibs.props
@del "%SYSLIBS_PROPS%" 2>nul
@set SYSLIBS_ANY=
@if defined FBBUILD_WITH_SYSTEM_BOOST set SYSLIBS_ANY=1
@if defined FBBUILD_WITH_SYSTEM_TOMMATH set SYSLIBS_ANY=1
@if defined FBBUILD_WITH_SYSTEM_TOMCRYPT set SYSLIBS_ANY=1
@if defined FBBUILD_WITH_SYSTEM_ZLIB set SYSLIBS_ANY=1
@if defined FBBUILD_WITH_SYSTEM_ICU set SYSLIBS_ANY=1
@if not defined SYSLIBS_ANY goto :EOF
:: Optional extra include directory for system ICU/zlib headers (e.g. vcpkg), since MSBuild ignores %INCLUDE%
@set SYSLIBS_INCDIR=
@if defined FBBUILD_SYSTEM_INCLUDE_DIR set SYSLIBS_INCDIR=%FBBUILD_SYSTEM_INCLUDE_DIR%;
@echo ^<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"^>> "%SYSLIBS_PROPS%"
@echo ^<PropertyGroup^>>> "%SYSLIBS_PROPS%"
@if defined FBBUILD_WITH_SYSTEM_BOOST (
@echo Using system boost headers
@echo ^<FbBoostIncludeDir^>^</FbBoostIncludeDir^>>> "%SYSLIBS_PROPS%"
)
@if defined FBBUILD_WITH_SYSTEM_TOMMATH (
@echo Using system libtommath
@echo ^<FbTomMathIncludeDir^>^</FbTomMathIncludeDir^>>> "%SYSLIBS_PROPS%"
@echo ^<FbTomMathLib^>^</FbTomMathLib^>>> "%SYSLIBS_PROPS%"
@echo ^<FbTomMathSysLib^>tommath.lib^</FbTomMathSysLib^>>> "%SYSLIBS_PROPS%"
call :tommath_probe
)
@if defined FBBUILD_WITH_SYSTEM_TOMCRYPT (
@echo Using system libtomcrypt
@echo ^<FbTomCryptIncludeDir^>^</FbTomCryptIncludeDir^>>> "%SYSLIBS_PROPS%"
@echo ^<FbTomCryptLib^>^</FbTomCryptLib^>>> "%SYSLIBS_PROPS%"
@echo ^<FbTomCryptSysLib^>tomcrypt.lib^</FbTomCryptSysLib^>>> "%SYSLIBS_PROPS%"
)
@if defined FBBUILD_WITH_SYSTEM_ZLIB (
@echo Using system zlib
@echo ^<FbZlibIncludeDir^>%SYSLIBS_INCDIR%^</FbZlibIncludeDir^>>> "%SYSLIBS_PROPS%"
)
@if defined FBBUILD_WITH_SYSTEM_ICU (
@echo Using system ICU
@echo ^<FbIcuIncludeDir^>%SYSLIBS_INCDIR%^</FbIcuIncludeDir^>>> "%SYSLIBS_PROPS%"
)
@echo ^</PropertyGroup^>>> "%SYSLIBS_PROPS%"
@echo ^</Project^>>> "%SYSLIBS_PROPS%"
@goto :EOF

::===================
:: BUILD btyacc
:btyacc
Expand All @@ -142,10 +197,17 @@ goto :EOF
:: BUILD LibTom
:LibTom
@echo.
@if defined FBBUILD_WITH_SYSTEM_TOMMATH goto :LibTomCrypt
@echo Building LibTomMath (%FB_OBJ_DIR%)...
@call compile.bat extern\libtommath\libtommath_MSVC%MSVC_VERSION% libtommath_%FB_CONFIG%_%FB_TARGET_PLATFORM%.log libtommath
if errorlevel 1 call :boot2 libtommath_%FB_OBJ_DIR% & goto :EOF
:LibTomCrypt
@if defined FBBUILD_WITHOUT_TOMCRYPT goto :LibTomDone
@if defined FBBUILD_WITH_SYSTEM_TOMCRYPT goto :LibTomDone
@echo Building LibTomCrypt (%FB_OBJ_DIR%)...
@call compile.bat extern\libtomcrypt\libtomcrypt_MSVC%MSVC_VERSION% libtomcrypt_%FB_CONFIG%_%FB_TARGET_PLATFORM%.log libtomcrypt
if errorlevel 1 call :boot2 libtomcrypt_%FB_OBJ_DIR%
:LibTomDone
@echo Building LibTomCrypt (%FB_OBJ_DIR%)...
@call compile.bat extern\libtomcrypt\libtomcrypt_MSVC%MSVC_VERSION% libtomcrypt_%FB_CONFIG%_%FB_TARGET_PLATFORM%.log libtomcrypt
if errorlevel 1 call :boot2 libtomcrypt_%FB_OBJ_DIR%
Expand Down
9 changes: 8 additions & 1 deletion builds/win32/make_icu.bat
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,14 @@ if not defined FB_UNZIP (

if not exist "%FB_UNZIP%" set FB_UNZIP=

if not defined FB_UNZIP (
if defined FBBUILD_WITH_SYSTEM_ICU (
@echo Using system ICU, extracting tzdata only
if not defined FB_UNZIP (
cscript /nologo unzip.vbs %FB_ROOT_PATH%\extern\icu\tzdata\le.zip %FB_ROOT_PATH%\extern\icu\tzdata-extract
) else (
"%FB_UNZIP%" -o %FB_ROOT_PATH%\extern\icu\tzdata\le.zip -d %FB_ROOT_PATH%\extern\icu\tzdata-extract
)
) else if not defined FB_UNZIP (
cscript /nologo unzip.vbs %FB_ROOT_PATH%\extern\icu\icu_windows.zip %FB_ROOT_PATH%\extern\icu
cscript /nologo unzip.vbs %FB_ROOT_PATH%\extern\icu\icudt.zip %FB_ROOT_PATH%\extern\icu
cscript /nologo unzip.vbs %FB_ROOT_PATH%\extern\icu\tzdata\le.zip %FB_ROOT_PATH%\extern\icu\tzdata-extract
Expand Down
18 changes: 16 additions & 2 deletions builds/win32/msvc15/FirebirdCommon.props
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,26 @@
<OutDir>..\..\..\temp\$(PlatformName)\$(Configuration)\$(ProjectName)\</OutDir>
<IntDir>..\..\..\temp\$(PlatformName)\$(Configuration)\$(ProjectName)\</IntDir>
<LinkIncremental>false</LinkIncremental>
<FbExternConfiguration>$(Configuration)</FbExternConfiguration>
<FbExternConfiguration Condition="'$(Configuration)'=='ReleaseStatic'">Release</FbExternConfiguration>
<FbExternConfiguration Condition="'$(Configuration)'=='DebugStatic'">Debug</FbExternConfiguration>
<FbBoostIncludeDir>../../../extern/boost;</FbBoostIncludeDir>
<FbTomMathIncludeDir>../../../extern/libtommath;</FbTomMathIncludeDir>
<FbTomMathLib>../../../extern/libtommath/lib/$(PlatformName)\$(FbExternConfiguration)\tommath.lib</FbTomMathLib>
<FbTomCryptIncludeDir>../../../extern/libtomcrypt/src/headers;</FbTomCryptIncludeDir>
<FbTomCryptLib>../../../extern/libtomcrypt/lib/$(PlatformName)\$(FbExternConfiguration)\tomcrypt.lib</FbTomCryptLib>
<FbTomMathSysLib></FbTomMathSysLib>
<FbTomCryptSysLib></FbTomCryptSysLib>
<FbZlibIncludeDir>../../../extern/zlib;</FbZlibIncludeDir>
<FbIcuIncludeDir>../../../extern/icu/include;</FbIcuIncludeDir>
</PropertyGroup>
<!-- Generated by make_boot.bat WITH_SYSTEM_* options; overrides the Fb*IncludeDir and Fb*Lib properties above. System tommath/tomcrypt libs are not merged into common.lib (FbTomMathLib/FbTomCryptLib are empty) but linked by the final binaries through FbTomMathSysLib/FbTomCryptSysLib -->
<Import Project="$(MSBuildThisFileDirectory)..\..\..\temp\$(Platform)\FirebirdSystemLibs.props" Condition="Exists('$(MSBuildThisFileDirectory)..\..\..\temp\$(Platform)\FirebirdSystemLibs.props')" />
<ItemDefinitionGroup>
<ClCompile>
<AdditionalOptions>/EHsc- /Zc:__cplusplus %(AdditionalOptions)</AdditionalOptions>
<OmitFramePointers>true</OmitFramePointers>
<AdditionalIncludeDirectories>../../../src/include;../../../src/include/gen;../../../extern/libtomcrypt/src/headers;../../../extern/libtommath;../../../extern/icu/include;../../../extern/zlib;../../../extern/re2;../../../extern/boost;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>../../../src/include;../../../src/include/gen;$(FbTomCryptIncludeDir)$(FbTomMathIncludeDir)$(FbIcuIncludeDir)$(FbZlibIncludeDir)../../../extern/re2;$(FbBoostIncludeDir)%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<ExceptionHandling>
</ExceptionHandling>
<RuntimeTypeInfo>false</RuntimeTypeInfo>
Expand All @@ -35,7 +49,7 @@
<GenerateDebugInformation>true</GenerateDebugInformation>
<ProgramDatabaseFile>$(IntDir)$(TargetName).pdb</ProgramDatabaseFile>
<ImportLibrary>$(IntDir)$(TargetName).lib</ImportLibrary>
<AdditionalDependencies>bcrypt.lib;psapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>bcrypt.lib;psapi.lib;$(FbTomMathSysLib);$(FbTomCryptSysLib);%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>../../../extern/re2/builds/$(PlatformName)/$(Configuration)</AdditionalLibraryDirectories>
</Link>
<Bscmake>
Expand Down
Loading
Loading