[SPAM] Need help with correct user-config.jam file to build iostreams with zstd and zlib

egoots--- via Boost-build <[email protected]> Thu, 5 May 2022 17:59:06 -0700
Newsgroups gmane.comp.lib.boost.build
Message-ID <[email protected]>
In the past I have always built boost including iostreams with zlib 
using environment variables to build from sources.

set ZLIB_INCLUDE=C:\Dev\zlib\zlib-1.2.12
set ZLIB_SOURCE=C:\Dev\zlib\zlib-1.2.12

and then running b2 using the following command (from within a Visual 
Studio 2017 x64 Native Tools command prompt window (In this case I am 
using Boost 1.79)

.\b2 -j6  link=static,shared  threading=multi  variant=debug,release 
toolset=msvc-14.1  address-model=64 --without-python 
--stagedir=stage_x64 > build64.log 2>&1


The above works.

Now, I want to build zstd as well. It does not seem to support a source 
build according to the iostreams documents. Nor does it seem to support 
using environment variables and indicates I should use a user-config.jam 
file.

First I thought I would start by switching my zlib build to use 
user-config so I tried:

using zlib : 1.2.12 : <source>C:/Dev/zlib/zlib-1.2.12 ;

I built with --debug-configuration, and it shows good progress at the start:

...
notice: Loading user-config configuration file 'user-config.jam' from 
'C:/Users/Ed'.
notice: [zlib] Building zlib from source as z
notice: [zlib] Condition
notice: [zlib] found zlib source in /C:/Dev/zlib/zlib-1.2.12
...

Building the Boost libraries

...
     - WinDbg builds            : yes [9]
     - WinDbg builds            : yes [10]
     - WinDbgCached builds      : yes [9]
     - BOOST_COMP_GNUC >= 4.3.0 : no [9]
     - cxx11_hdr_thread         : yes [9]
     - cxx11_hdr_regex          : yes [9]
error: Name clash for '<pC:\Dev\boost_1_79_0\stage_x64\lib>libz.lib'
error:
error: Tried to build the target twice, with property sets having
error: these incompatible properties:
error:
error:     -  <debug-symbols>on <inlining>off <optimization>off 
<runtime-debugging>on <variant>debug
error:     -  <debug-symbols>off <define>NDEBUG <inlining>full 
<optimization>speed <runtime-debugging>off <variant>release
error:
error: Please make sure to have consistent requirements for these
error: properties everywhere in your project, especially for install
error: targets.


How should the zlib libraries be specified in the user-config.jam file 
in order to build correctly on Windows?


Ultimately, I want to also know how to build boost iostreams with zstd. 
I downloaded the release 1.5.2 which including the include header zstd.h 
in the include subfolder, the libzstd.lib and libzstd.dll.a (I was 
expected a .lib file here) in the dll subfolder , as well as a static 
lib file libzstd_static.lib in the static folder.

I attempted to used the following settings in the user-config.jam

using zstd : 1.5.2  : <include>C:/Dev/zstd/zstd-v1.5.2-win64/include 
<search>C:/Dev/zstd/zstd-v1.5.2-win64/dll ;

Then rebuilt boost with the following output snippets

notice: Loading user-config configuration file 'user-config.jam' from 
'C:/Users/Ed'.
notice: [zstd] Using pre-installed library
notice: [zstd] Condition

In the Building the boost libraries section

     - zstd                     : no [4]
     - zstd                     : no  (cached) [4]
     - zstd                     : no
     - zstd                     : no  (cached)

Boost builds successfully, but zstd does not appear to be built into it.

What should the user-config.jam file look like to build with zstd on 
windows?




_______________________________________________
Unsubscribe & other changes: https://lists.boost.org/mailman/listinfo.cgi/boost-build