bfgroup / b2

B2 makes it easy to build C++ projects, everywhere.
https://www.bfgroup.xyz/b2/
Boost Software License 1.0
81 stars 230 forks source link

b2 doesn't see ICU package in msys2 internal folders on windows, and builds boost without it #189

Open crillion opened 2 years ago

crillion commented 2 years ago

Make sure you completed the following tasks

Environment and version details

Place output of "b2 --debug-configuration" here.

notice: found boost-build.jam at C:/Users/a00545633/data/projects/external/boost/boost_1_80_0/boost-build.jam
notice: loading B2 from C:/Users/a00545633/data/projects/external/boost/boost_1_80_0/tools/build/src/kernel/bootstrap.jam
notice: Searching 'C:\windows' 'C:\Users\a00545633' 'C:\Users\a00545633' 'C:/Users/a00545633/data/projects/external/boost/boost_1_80_0/tools/build/src/kernel' 'C:/Users/a00545633/data/projects/external/boost/boost_1_80_0/tools/build/src/util' 'C:/Users/a00545633/data/projects/external/boost/boost_1_80_0/tools/build/src/build' 'C:/Users/a00545633/data/projects/external/boost/boost_1_80_0/tools/build/src/tools' 'C:/Users/a00545633/data/projects/external/boost/boost_1_80_0/tools/build/src/contrib' 'C:/Users/a00545633/data/projects/external/boost/boost_1_80_0/tools/build/src/.' for site-config configuration file 'site-config.jam'.
notice: Configuration file 'site-config.jam' not found in 'C:\windows' 'C:\Users\a00545633' 'C:\Users\a00545633' 'C:/Users/a00545633/data/projects/external/boost/boost_1_80_0/tools/build/src/kernel' 'C:/Users/a00545633/data/projects/external/boost/boost_1_80_0/tools/build/src/util' 'C:/Users/a00545633/data/projects/external/boost/boost_1_80_0/tools/build/src/build' 'C:/Users/a00545633/data/projects/external/boost/boost_1_80_0/tools/build/src/tools' 'C:/Users/a00545633/data/projects/external/boost/boost_1_80_0/tools/build/src/contrib' 'C:/Users/a00545633/data/projects/external/boost/boost_1_80_0/tools/build/src/.'.
notice: Searching 'C:\Users\a00545633' 'C:\Users\a00545633' 'C:/Users/a00545633/data/projects/external/boost/boost_1_80_0/tools/build/src/kernel' 'C:/Users/a00545633/data/projects/external/boost/boost_1_80_0/tools/build/src/util' 'C:/Users/a00545633/data/projects/external/boost/boost_1_80_0/tools/build/src/build' 'C:/Users/a00545633/data/projects/external/boost/boost_1_80_0/tools/build/src/tools' 'C:/Users/a00545633/data/projects/external/boost/boost_1_80_0/tools/build/src/contrib' 'C:/Users/a00545633/data/projects/external/boost/boost_1_80_0/tools/build/src/.' for user-config configuration file 'user-config.jam'.
notice: Configuration file 'user-config.jam' not found in 'C:\Users\a00545633' 'C:\Users\a00545633' 'C:/Users/a00545633/data/projects/external/boost/boost_1_80_0/tools/build/src/kernel' 'C:/Users/a00545633/data/projects/external/boost/boost_1_80_0/tools/build/src/util' 'C:/Users/a00545633/data/projects/external/boost/boost_1_80_0/tools/build/src/build' 'C:/Users/a00545633/data/projects/external/boost/boost_1_80_0/tools/build/src/tools' 'C:/Users/a00545633/data/projects/external/boost/boost_1_80_0/tools/build/src/contrib' 'C:/Users/a00545633/data/projects/external/boost/boost_1_80_0/tools/build/src/.'.
notice: Searching '.' for project-config configuration file 'project-config.jam'.
notice: Loading project-config configuration file 'project-config.jam' from '.'.
notice: will use 'g++' for gcc, condition <toolset>gcc-12
notice: using gcc libraries :: <toolset>gcc-12 :: C:\programs\msys64\mingw64/bin C:\programs\msys64\mingw64/lib C:\programs\msys64\mingw64/lib32 C:\programs\msys64\mingw64/lib64
notice: using gcc archiver :: <toolset>gcc-12 :: C:/programs/msys64/mingw64/x86_64-w64-mingw32/bin/ar.exe
notice: using rc compiler :: <toolset>gcc-12 :: C:\programs\msys64\mingw64\bin\windres.exe
notice: [zlib] Using pre-installed library
notice: [zlib] Condition
notice: [bzip2] Using pre-installed library
notice: [bzip2] Condition
notice: [lzma] Using pre-installed library
notice: [lzma] Condition
notice: [zstd] Using pre-installed library
notice: [zstd] Condition
notice: [python-cfg] Configuring python...
notice: [python-cfg] Checking interpreter command "python"...
notice: [python-cfg] running command 'DIR /-C /A:S "C:\programs\msys64\mingw64\bin\python.exe" 2>&1'
notice: [python-cfg] running command 'python -c "from sys import *; print('version=%d.%d\nplatform=%s\nprefix=%s\nexec_prefix=%s\nexecutable=%s' % (version_info[0],version_info[1],platform,prefix,exec_prefix,executable))" 2>&1'
notice: [python-cfg] ...requested configuration matched!
notice: [python-cfg] Details of this Python configuration:
notice: [python-cfg]   interpreter command: "python"
notice: [python-cfg]   include path: "C:\programs\msys64\mingw64\Include"
notice: [python-cfg]   library path: "C:\programs\msys64\mingw64\libs"
notice: [python-cfg]   DLL search path: "C:\programs\msys64\mingw64"
notice: [python-cfg] Checking for NumPy...
notice: [python-cfg] running command 'python -c "import sys; sys.stderr = sys.stdout; import numpy; print(numpy.get_include())"'
notice: [python-cfg] NumPy disabled. Reason:
notice: [python-cfg]   python -c "import sys; sys.stderr = sys.stdout; import numpy; print(numpy.get_include())" aborted with
notice: [python-cfg]   Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'numpy'
Performing configuration checks

    - default address-model    : 64-bit (cached) [1]
    - default architecture     : x86 (cached) [1]

Building the Boost C++ Libraries.

    - compiler supports SSE2   : yes [2]
    - compiler supports SSE4.1 : yes [2]
    - has synchronization.lib  : no [2]
    - has std::atomic_ref      : no [2]
    - has statx                : no [2]
    - has statx syscall        : no [2]
    - has BCrypt API           : no [2]
    - is Windows CE            : no [2]
    - has init_priority attribute : yes [2]
    - has stat::st_blksize     : no [2]
    - has stat::st_mtim        : no [2]
    - has stat::st_mtimensec   : no [2]
    - has stat::st_mtimespec   : no [2]
    - has stat::st_birthtim    : no [2]
    - has stat::st_birthtimensec : no [2]
    - has stat::st_birthtimespec : no [2]
    - has fdopendir(O_NOFOLLOW) : no [2]
    - has POSIX *at APIs       : no [2]
    - cxx11_auto_declarations  : yes [2]
    - cxx11_constexpr          : yes [2]
    - cxx11_defaulted_functions : yes [2]
    - cxx11_final              : yes [2]
    - cxx11_hdr_mutex          : yes [2]
    - cxx11_hdr_tuple          : yes [2]
    - cxx11_lambdas            : yes [2]
    - cxx11_noexcept           : yes [2]
    - cxx11_nullptr            : yes [2]
    - cxx11_rvalue_references  : yes [2]
    - cxx11_template_aliases   : yes [2]
    - cxx11_thread_local       : yes [2]
    - cxx11_variadic_templates : yes [2]
    - cxx11_auto_declarations  : yes [3]
    - cxx11_constexpr          : yes [3]
    - cxx11_defaulted_functions : yes [3]
    - cxx11_final              : yes [3]
    - cxx11_hdr_mutex          : yes [3]
    - cxx11_hdr_tuple          : yes [3]
    - cxx11_lambdas            : yes [3]
    - cxx11_noexcept           : yes [3]
    - cxx11_nullptr            : yes [3]
    - cxx11_rvalue_references  : yes [3]
    - cxx11_template_aliases   : yes [3]
    - cxx11_thread_local       : yes [3]
    - cxx11_variadic_templates : yes [3]
    - has_icu builds           : no [2]
warning: Graph library does not contain MPI-based parallel components.
note: to enable them, add "using mpi ;" to your user-config.jam.
note: to suppress this message, pass "--without-graph_parallel" to bjam.
    - zlib                     : no [4]
    - bzip2                    : no [4]
    - lzma                     : no [4]
    - zstd                     : no [4]
    - has_lzma_cputhreads builds : no [2]
    - cxx11_decltype           : yes [2]
    - cxx11_basic_alignas      : yes [2]
    - iconv (libc)             : no [2]
    - iconv (separate)         : no [2]
    - icu                      : no [2]
    - icu (lib64)              : no [2]
    - native atomic int32 supported : yes [2]
    - has message compiler     : no [2]
    - native syslog supported  : no [2]
    - pthread supports robust mutexes : no [2]
    - compiler supports SSSE3  : yes [2]
    - compiler supports AVX2   : yes [2]
    - gcc visibility           : yes [2]
    - sfinae_expr              : yes [2]
    - cxx11_unified_initialization_syntax : yes [2]
    - cxx11_hdr_initializer_list : yes [2]
    - cxx11_hdr_chrono         : yes [2]
    - cxx11_numeric_limits     : yes [2]
    - cxx11_hdr_array          : yes [2]
    - cxx11_hdr_atomic         : yes [2]
    - cxx11_hdr_type_traits    : yes [2]
    - cxx11_allocator          : yes [2]
    - cxx11_explicit_conversion_operators : yes [2]
    - gcc visibility           : yes [5]
    - cxx11_noexcept           : yes [5]
    - cxx11_rvalue_references  : yes [5]
    - sfinae_expr              : yes [5]
    - cxx11_auto_declarations  : yes [5]
    - cxx11_lambdas            : yes [5]
    - cxx11_unified_initialization_syntax : yes [5]
    - cxx11_hdr_tuple          : yes [5]
    - cxx11_hdr_initializer_list : yes [5]
    - cxx11_hdr_chrono         : yes [5]
    - cxx11_thread_local       : yes [5]
    - cxx11_constexpr          : yes [5]
    - cxx11_nullptr            : yes [5]
    - cxx11_numeric_limits     : yes [5]
    - cxx11_decltype           : yes [5]
    - cxx11_hdr_array          : yes [5]
    - cxx11_hdr_atomic         : yes [5]
    - cxx11_hdr_type_traits    : yes [5]
    - cxx11_allocator          : yes [5]
    - cxx11_explicit_conversion_operators : yes [5]
    - long double support      : yes [5]
warning: skipping optional Message Passing Interface (MPI) library.
note: to enable MPI support, add "using mpi ;" to user-config.jam.
note: to suppress this message, pass "--without-mpi" to bjam.
note: otherwise, you can safely ignore this message.
    - cxx11_static_assert      : yes [2]
    - std::fstream is moveable and swappable : yes [2]
    - Has Large File Support   : no [2]
    - Has attribute init_priority : yes [2]
    - libbacktrace builds      : no [2]
    - libbacktrace builds      : no [3]
    - addr2line builds         : no [2]
    - addr2line builds         : no [3]
    - WinDbg builds            : no [2]
    - WinDbg builds            : no [3]
    - WinDbgCached builds      : no [2]
    - WinDbgCached builds      : no [3]
    - BOOST_COMP_GNUC >= 4.3.0 : yes [2]
    - cxx11_hdr_thread         : yes [2]
    - cxx11_hdr_regex          : yes [2]
    - compiler supports SSE2   : yes [6]
    - compiler supports SSE4.1 : yes [6]
    - has synchronization.lib  : no [6]
    - has std::atomic_ref      : no [6]
    - has statx                : no [6]
    - has statx syscall        : no [6]
    - has BCrypt API           : no [6]
    - is Windows CE            : no [6]
    - has init_priority attribute : yes [6]
    - has stat::st_blksize     : no [6]
    - has stat::st_mtim        : no [6]
    - has stat::st_mtimensec   : no [6]
    - has stat::st_mtimespec   : no [6]
    - has stat::st_birthtim    : no [6]
    - has stat::st_birthtimensec : no [6]
    - has stat::st_birthtimespec : no [6]
    - has fdopendir(O_NOFOLLOW) : no [6]
    - has POSIX *at APIs       : no [6]
    - cxx11_auto_declarations  : yes [6]
    - cxx11_constexpr          : yes [6]
    - cxx11_defaulted_functions : yes [6]
    - cxx11_final              : yes [6]
    - cxx11_hdr_mutex          : yes [6]
    - cxx11_hdr_tuple          : yes [6]
    - cxx11_lambdas            : yes [6]
    - cxx11_noexcept           : yes [6]
    - cxx11_nullptr            : yes [6]
    - cxx11_rvalue_references  : yes [6]
    - cxx11_template_aliases   : yes [6]
    - cxx11_thread_local       : yes [6]
    - cxx11_variadic_templates : yes [6]
    - cxx11_auto_declarations  : yes [7]
    - cxx11_constexpr          : yes [7]
    - cxx11_defaulted_functions : yes [7]
    - cxx11_final              : yes [7]
    - cxx11_hdr_mutex          : yes [7]
    - cxx11_hdr_tuple          : yes [7]
    - cxx11_lambdas            : yes [7]
    - cxx11_noexcept           : yes [7]
    - cxx11_nullptr            : yes [7]
    - cxx11_rvalue_references  : yes [7]
    - cxx11_template_aliases   : yes [7]
    - cxx11_thread_local       : yes [7]
    - cxx11_variadic_templates : yes [7]
    - has_icu builds           : no [6]
    - zlib                     : no  (cached) [4]
    - bzip2                    : no  (cached) [4]
    - lzma                     : no  (cached) [4]
    - zstd                     : no  (cached) [4]
    - has_lzma_cputhreads builds : no [6]
    - cxx11_decltype           : yes [6]
    - cxx11_basic_alignas      : yes [6]
    - iconv (libc)             : no [6]
    - iconv (separate)         : no [6]
    - icu                      : no [6]
    - icu (lib64)              : no [6]
    - native atomic int32 supported : yes [6]
    - has message compiler     : no [6]
    - native syslog supported  : no [6]
    - pthread supports robust mutexes : no [6]
    - compiler supports SSSE3  : yes [6]
    - compiler supports AVX2   : yes [6]
    - gcc visibility           : yes [6]
    - sfinae_expr              : yes [6]
    - cxx11_unified_initialization_syntax : yes [6]
    - cxx11_hdr_initializer_list : yes [6]
    - cxx11_hdr_chrono         : yes [6]
    - cxx11_numeric_limits     : yes [6]
    - cxx11_hdr_array          : yes [6]
    - cxx11_hdr_atomic         : yes [6]
    - cxx11_hdr_type_traits    : yes [6]
    - cxx11_allocator          : yes [6]
    - cxx11_explicit_conversion_operators : yes [6]
    - gcc visibility           : yes [8]
    - cxx11_noexcept           : yes [8]
    - cxx11_rvalue_references  : yes [8]
    - sfinae_expr              : yes [8]
    - cxx11_auto_declarations  : yes [8]
    - cxx11_lambdas            : yes [8]
    - cxx11_unified_initialization_syntax : yes [8]
    - cxx11_hdr_tuple          : yes [8]
    - cxx11_hdr_initializer_list : yes [8]
    - cxx11_hdr_chrono         : yes [8]
    - cxx11_thread_local       : yes [8]
    - cxx11_constexpr          : yes [8]
    - cxx11_nullptr            : yes [8]
    - cxx11_numeric_limits     : yes [8]
    - cxx11_decltype           : yes [8]
    - cxx11_hdr_array          : yes [8]
    - cxx11_hdr_atomic         : yes [8]
    - cxx11_hdr_type_traits    : yes [8]
    - cxx11_allocator          : yes [8]
    - cxx11_explicit_conversion_operators : yes [8]
    - long double support      : yes [8]
    - cxx11_static_assert      : yes [6]
    - std::fstream is moveable and swappable : yes [6]
    - Has Large File Support   : no [6]
    - Has attribute init_priority : yes [6]
    - libbacktrace builds      : no [6]
    - libbacktrace builds      : no [7]
    - addr2line builds         : no [6]
    - addr2line builds         : no [7]
    - WinDbg builds            : no [6]
    - WinDbg builds            : no [7]
    - WinDbgCached builds      : no [6]
    - WinDbgCached builds      : no [7]
    - BOOST_COMP_GNUC >= 4.3.0 : yes [6]
    - cxx11_hdr_thread         : yes [6]
    - cxx11_hdr_regex          : yes [6]
    - compiler supports SSE2   : yes [9]
    - compiler supports SSE4.1 : yes [9]
    - has synchronization.lib  : yes [9]
    - has std::atomic_ref      : no [9]
    - has statx                : no [9]
    - has statx syscall        : no [9]
    - has BCrypt API           : yes [9]
    - has init_priority attribute : yes [9]
    - has stat::st_blksize     : no [9]
    - has stat::st_mtim        : no [9]
    - has stat::st_mtimensec   : no [9]
    - has stat::st_mtimespec   : no [9]
    - has stat::st_birthtim    : no [9]
    - has stat::st_birthtimensec : no [9]
    - has stat::st_birthtimespec : no [9]
    - has fdopendir(O_NOFOLLOW) : no [9]
    - has POSIX *at APIs       : no [9]
    - cxx11_auto_declarations  : yes [9]
    - cxx11_constexpr          : yes [9]
    - cxx11_defaulted_functions : yes [9]
    - cxx11_final              : yes [9]
    - cxx11_hdr_mutex          : yes [9]
    - cxx11_hdr_tuple          : yes [9]
    - cxx11_lambdas            : yes [9]
    - cxx11_noexcept           : yes [9]
    - cxx11_nullptr            : yes [9]
    - cxx11_rvalue_references  : yes [9]
    - cxx11_template_aliases   : yes [9]
    - cxx11_thread_local       : yes [9]
    - cxx11_variadic_templates : yes [9]
    - cxx11_auto_declarations  : yes [10]
    - cxx11_constexpr          : yes [10]
    - cxx11_defaulted_functions : yes [10]
    - cxx11_final              : yes [10]
    - cxx11_hdr_mutex          : yes [10]
    - cxx11_hdr_tuple          : yes [10]
    - cxx11_lambdas            : yes [10]
    - cxx11_noexcept           : yes [10]
    - cxx11_nullptr            : yes [10]
    - cxx11_rvalue_references  : yes [10]
    - cxx11_template_aliases   : yes [10]
    - cxx11_thread_local       : yes [10]
    - cxx11_variadic_templates : yes [10]
    - has_icu builds           : no [9]
    - zlib                     : no  (cached) [4]
    - bzip2                    : no  (cached) [4]
    - lzma                     : no  (cached) [4]
    - zstd                     : no  (cached) [4]
    - has_lzma_cputhreads builds : yes [9]
    - cxx11_decltype           : yes [9]
    - cxx11_basic_alignas      : yes [9]
    - iconv (libc)             : no  (cached) [9]
    - iconv (separate)         : yes (cached) [9]
    - icu                      : no  (cached) [9]
    - icu (lib64)              : no  (cached) [9]
    - native atomic int32 supported : yes [9]
    - has message compiler     : no [9]
    - native syslog supported  : no [9]
    - pthread supports robust mutexes : no [9]
    - compiler supports SSSE3  : yes [9]
    - compiler supports AVX2   : yes [9]
    - gcc visibility           : yes [9]
    - sfinae_expr              : yes [9]
    - cxx11_unified_initialization_syntax : yes [9]
    - cxx11_hdr_initializer_list : yes [9]
    - cxx11_hdr_chrono         : yes [9]
    - cxx11_numeric_limits     : yes [9]
    - cxx11_hdr_array          : yes [9]
    - cxx11_hdr_atomic         : yes [9]
    - cxx11_hdr_type_traits    : yes [9]
    - cxx11_allocator          : yes [9]
    - cxx11_explicit_conversion_operators : yes [9]
    - gcc visibility           : yes [11]
    - cxx11_noexcept           : yes [11]
    - cxx11_rvalue_references  : yes [11]
    - sfinae_expr              : yes [11]
    - cxx11_auto_declarations  : yes [11]
    - cxx11_lambdas            : yes [11]
    - cxx11_unified_initialization_syntax : yes [11]
    - cxx11_hdr_tuple          : yes [11]
    - cxx11_hdr_initializer_list : yes [11]
    - cxx11_hdr_chrono         : yes [11]
    - cxx11_thread_local       : yes [11]
    - cxx11_constexpr          : yes [11]
    - cxx11_nullptr            : yes [11]
    - cxx11_numeric_limits     : yes [11]
    - cxx11_decltype           : yes [11]
    - cxx11_hdr_array          : yes [11]
    - cxx11_hdr_atomic         : yes [11]
    - cxx11_hdr_type_traits    : yes [11]
    - cxx11_allocator          : yes [11]
    - cxx11_explicit_conversion_operators : yes [11]
    - long double support      : yes [11]
    - cxx11_static_assert      : yes [9]
    - std::fstream is moveable and swappable : yes [9]
    - Has Large File Support   : yes [9]
    - Has attribute init_priority : yes [9]
    - libbacktrace builds      : no [9]
    - libbacktrace builds      : no [10]
    - addr2line builds         : no [9]
    - addr2line builds         : no [10]
    - WinDbg builds            : yes [9]
    - WinDbg builds            : yes [10]
    - WinDbgCached builds      : yes [9]
    - BOOST_COMP_GNUC >= 4.3.0 : yes [9]
    - cxx11_hdr_thread         : yes [9]
    - cxx11_hdr_regex          : yes [9]
    - compiler supports SSE2   : yes [12]
    - compiler supports SSE4.1 : yes [12]
    - has synchronization.lib  : yes [12]
    - has std::atomic_ref      : no [12]
    - has statx                : no [12]
    - has statx syscall        : no [12]
    - has BCrypt API           : yes [12]
    - has init_priority attribute : yes [12]
    - has stat::st_blksize     : no [12]
    - has stat::st_mtim        : no [12]
    - has stat::st_mtimensec   : no [12]
    - has stat::st_mtimespec   : no [12]
    - has stat::st_birthtim    : no [12]
    - has stat::st_birthtimensec : no [12]
    - has stat::st_birthtimespec : no [12]
    - has fdopendir(O_NOFOLLOW) : no [12]
    - has POSIX *at APIs       : no [12]
    - cxx11_auto_declarations  : yes [12]
    - cxx11_constexpr          : yes [12]
    - cxx11_defaulted_functions : yes [12]
    - cxx11_final              : yes [12]
    - cxx11_hdr_mutex          : yes [12]
    - cxx11_hdr_tuple          : yes [12]
    - cxx11_lambdas            : yes [12]
    - cxx11_noexcept           : yes [12]
    - cxx11_nullptr            : yes [12]
    - cxx11_rvalue_references  : yes [12]
    - cxx11_template_aliases   : yes [12]
    - cxx11_thread_local       : yes [12]
    - cxx11_variadic_templates : yes [12]
    - cxx11_auto_declarations  : yes [13]
    - cxx11_constexpr          : yes [13]
    - cxx11_defaulted_functions : yes [13]
    - cxx11_final              : yes [13]
    - cxx11_hdr_mutex          : yes [13]
    - cxx11_hdr_tuple          : yes [13]
    - cxx11_lambdas            : yes [13]
    - cxx11_noexcept           : yes [13]
    - cxx11_nullptr            : yes [13]
    - cxx11_rvalue_references  : yes [13]
    - cxx11_template_aliases   : yes [13]
    - cxx11_thread_local       : yes [13]
    - cxx11_variadic_templates : yes [13]
    - has_icu builds           : no [12]
    - zlib                     : no  (cached) [4]
    - bzip2                    : no  (cached) [4]
    - lzma                     : no  (cached) [4]
    - zstd                     : no  (cached) [4]
    - has_lzma_cputhreads builds : no [12]
    - cxx11_decltype           : yes [12]
    - cxx11_basic_alignas      : yes [12]
    - iconv (libc)             : no  (cached) [12]
    - iconv (separate)         : yes (cached) [12]
    - icu                      : no  (cached) [12]
    - icu (lib64)              : no  (cached) [12]
    - native atomic int32 supported : yes [12]
    - has message compiler     : no [12]
    - native syslog supported  : no [12]
    - pthread supports robust mutexes : no [12]
    - compiler supports SSSE3  : yes [12]
    - compiler supports AVX2   : yes [12]
    - gcc visibility           : yes [12]
    - sfinae_expr              : yes [12]
    - cxx11_unified_initialization_syntax : yes [12]
    - cxx11_hdr_initializer_list : yes [12]
    - cxx11_hdr_chrono         : yes [12]
    - cxx11_numeric_limits     : yes [12]
    - cxx11_hdr_array          : yes [12]
    - cxx11_hdr_atomic         : yes [12]
    - cxx11_hdr_type_traits    : yes [12]
    - cxx11_allocator          : yes [12]
    - cxx11_explicit_conversion_operators : yes [12]
    - gcc visibility           : yes [14]
    - cxx11_noexcept           : yes [14]
    - cxx11_rvalue_references  : yes [14]
    - sfinae_expr              : yes [14]
    - cxx11_auto_declarations  : yes [14]
    - cxx11_lambdas            : yes [14]
    - cxx11_unified_initialization_syntax : yes [14]
    - cxx11_hdr_tuple          : yes [14]
    - cxx11_hdr_initializer_list : yes [14]
    - cxx11_hdr_chrono         : yes [14]
    - cxx11_thread_local       : yes [14]
    - cxx11_constexpr          : yes [14]
    - cxx11_nullptr            : yes [14]
    - cxx11_numeric_limits     : yes [14]
    - cxx11_decltype           : yes [14]
    - cxx11_hdr_array          : yes [14]
    - cxx11_hdr_atomic         : yes [14]
    - cxx11_hdr_type_traits    : yes [14]
    - cxx11_allocator          : yes [14]
    - cxx11_explicit_conversion_operators : yes [14]
    - long double support      : yes [14]
    - cxx11_static_assert      : yes [12]
    - std::fstream is moveable and swappable : yes [12]
    - Has Large File Support   : yes [12]
    - Has attribute init_priority : yes [12]
    - libbacktrace builds      : no [12]
    - libbacktrace builds      : no [13]
    - addr2line builds         : no [12]
    - addr2line builds         : no [13]
    - WinDbg builds            : yes [12]
    - WinDbg builds            : yes [13]
    - WinDbgCached builds      : yes [12]
    - BOOST_COMP_GNUC >= 4.3.0 : yes [12]
    - cxx11_hdr_thread         : yes [12]
    - cxx11_hdr_regex          : yes [12]

[1] gcc-12
[2] gcc-12/debug/address-model-32/link-static/python-3.10/threadapi-win32/threading-multi/visibility-hidden
[3] gcc-12/debug/address-model-32/build-no/link-static/python-3.10/threadapi-win32/threading-multi/visibility-hidden
[4] link-static
[5] gcc-12/debug/address-model-32/link-static/pch-off/python-3.10/threadapi-win32/threading-multi/visibility-hidden
[6] gcc-12/release/address-model-32/link-static/python-3.10/threadapi-win32/threading-multi/visibility-hidden
[7] gcc-12/release/address-model-32/build-no/link-static/python-3.10/threadapi-win32/threading-multi/visibility-hidden
[8] gcc-12/release/address-model-32/link-static/pch-off/python-3.10/threadapi-win32/threading-multi/visibility-hidden
[9] gcc-12/debug/link-static/python-3.10/threadapi-win32/threading-multi/visibility-hidden
[10] gcc-12/debug/build-no/link-static/python-3.10/threadapi-win32/threading-multi/visibility-hidden
[11] gcc-12/debug/link-static/pch-off/python-3.10/threadapi-win32/threading-multi/visibility-hidden
[12] gcc-12/release/link-static/python-3.10/threadapi-win32/threading-multi/visibility-hidden
[13] gcc-12/release/build-no/link-static/python-3.10/threadapi-win32/threading-multi/visibility-hidden
[14] gcc-12/release/link-static/pch-off/python-3.10/threadapi-win32/threading-multi/visibility-hidden

Brief problem description

I want to use boost locale built with ICU support. I use msys2 / mingw-w64 / gcc 12.2 and from msys2 I've also downloaded the ICU package. So I'd expect that b2 finds and uses that downloaded package.

Steps to reproduce the issue

install msys2 install msys2 mingw-w64 gcc package install msys2 ICU package add gcc.exe to windows path variable download boost extract boost create b2 with bootstrap.bat gcc give a b2 command to build boost using the icu package installed with msys2: with msys2 installed in C:\programs\msys64, I have tried unsuccessfully the following commands :


b2 --toolset=gcc address-model=64 b2 --toolset=gcc address-model=64 include=C:\programs\msys64 library-path=C:\programs\msys64 b2 --toolset=gcc address-model=64 include=C:\programs\msys64\mingw64 library-path=C:\programs\msys64\mingw64 b2 --toolset=gcc address-model=64 -a include=C:\programs\msys64\mingw64\include library-path=C:\programs\msys64\mingw64\lib b2 --toolset=gcc address-model=64 -a include=C:/programs/msys64/mingw64/include library-path=C:/programs/msys64/mingw64/lib

b2 --toolset=gcc address-model=64 --with-locale -a include=C:/programs/msys64/mingw64/include library-path=C:/programs/msys64/mingw64/lib

b2 --toolset=gcc address-model=64 -a include=C:/programs/msys64/mingw64/include library-path=C:/programs/msys64/mingw64/lib -sICU_PATH=C:/programs/msys64/mingw64/ b2 --toolset=gcc address-model=64 -a include=C:\programs\msys64\mingw64\include library-path=C:\programs\msys64\mingw64\lib -sICU_PATH=C:\programs\msys64\mingw64\

b2 --toolset=gcc address-model=64 -a include=C:/programs/msys64/mingw64/include library-path=C:/programs/msys64/mingw64/lib -sICU_PATH=C:/programs/temp_icu b2 --toolset=gcc address-model=64 -a include=C:\programs\msys64\mingw64\include library-path=C:\programs\msys64\mingw64\lib -sICU_PATH=C:\programs\temp_icu

b2 --toolset=gcc address-model=64 -a include=C:/programs/temp_icu/include library-path=C:/programs/temp_icu/lib -sICU_PATH=C:/programs/temp_icu b2 --toolset=gcc address-model=64 -a include=C:\programs\temp_icu\include library-path=C:\programs\temp_icu\lib -sICU_PATH=C:\programs\temp_icu

b2 --toolset=gcc address-model=64 -a include=C:/programs/msys64/mingw64/include library-path=C:/programs/msys64/mingw64/lib -sICU_PATH=C:/programs/msys64/mingw64/ --reconfigure boost.locale.iconv=off boost.locale.icu=on b2 --toolset=gcc address-model=64 -a include=C:\programs\msys64\mingw64\include library-path=C:\programs\msys64\mingw64\lib -sICU_PATH=C:\programs\msys64\mingw64\ --reconfigure boost.locale.iconv=off boost.locale.icu=on

b2 --toolset=gcc address-model=64 -a --reconfigure boost.locale.iconv=off boost.locale.icu=on include=C:/programs/msys64/mingw64/include library-path=C:/programs/msys64/mingw64/lib -sICU_PATH=C:/programs/msys64/mingw64/ b2 --toolset=gcc address-model=64 -a --reconfigure boost.locale.iconv=off boost.locale.icu=on include=C:\programs\msys64\mingw64\include library-path=C:\programs\msys64\mingw64\lib -sICU_PATH=C:\programs\msys64\mingw64\

b2 --toolset=gcc address-model=64 -a --reconfigure boost.locale.iconv=off boost.locale.icu=on include=C:/programs/msys64/mingw64/include library-path=C:/programs/msys64/mingw64/lib -sICU_PATH=C:/programs/msys64/mingw64/ -sICU_LINK=C:/programs/msys64/mingw64/ b2 --toolset=gcc address-model=64 -a --reconfigure boost.locale.iconv=off boost.locale.icu=on include=C:\programs\msys64\mingw64\include library-path=C:\programs\msys64\mingw64\lib -sICU_PATH=C:\programs\msys64\mingw64\ -sICU_LINK=C:/programs/msys64/mingw64/


Actual behavior summary

When I give one of the above commands, in every case b2 writes ICU : no ICU builds : no even if I specify the folder. At least I should have expected b2 to block the build and tell me : in this folder there are no the ICU include files that I'm searching, or "in this other folder I can't find these binaries that I'm looking for"

If a project of yours is blocked due to this bug, please, mention it explicitly.

Attach, or place here, log output showing the bug including running
with the options: -d2 --debug-configuration

Expected behavior summary

When I give an appropriate command to find ICU, b2 will write ICU : yes ICU builds yes and of course will build boost (and in particular, boost::locale) using ICU support from the ICU package found in msys2 internal directories.

grafikrobot commented 2 years ago

What version of Boost are you trying to use?

crillion commented 2 years ago

sorry, Boost 1.80. I added this info also in the original post.

h-vetinari commented 5 months ago

With boost 1.85 and the following options (and a definitely-present icu under that path)

b2 install ^
    boost.locale.icu=on ^
    boost.locale.std=on ^
    boost.locale.winapi=on ^
    -s ICU_PATH=%LIBRARY_PREFIX% ^
    [...]

I still get:

    - has_icu builds           : no [2]
    - iconv (libc)             : no [2]
    - iconv (separate)         : yes [2]
    - icu                      : no [2]
grisumbras commented 5 months ago

Try running b2 with --debug-configuration, it should output if it sees that -s ICU_PATH=.