1comment "boost needs a toolchain w/ C++, threads, wchar" 2 depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_USE_WCHAR 3 4config BR2_PACKAGE_BOOST 5 bool "boost" 6 depends on BR2_INSTALL_LIBSTDCPP 7 # Boost could theorically be built with threading=single, but 8 # that unfortunately doesn't work. Until someone fixes that, 9 # let's depend on threads. 10 depends on BR2_TOOLCHAIN_HAS_THREADS 11 depends on BR2_USE_WCHAR 12 help 13 A general purpose C++ library 14 15 http://www.boost.org/ 16 17if BR2_PACKAGE_BOOST 18 19choice 20 prompt "Layout" 21 default BR2_PACKAGE_BOOST_LAYOUT_SYSTEM 22 help 23 Selects the layout of Boost binary names 24 25config BR2_PACKAGE_BOOST_LAYOUT_SYSTEM 26 bool "system" 27 help 28 Boost binary names do not include the Boost version number 29 or the name and version number of the compiler. 30 31config BR2_PACKAGE_BOOST_LAYOUT_TAGGED 32 bool "tagged" 33 help 34 Boost binary names include the encoded build properties such 35 as variant and threading, but do not include compiler name 36 and version, or Boost version. This option is useful if you 37 build several variants of Boost, using the same compiler. 38 39config BR2_PACKAGE_BOOST_LAYOUT_VERSIONED 40 bool "versioned" 41 help 42 Boost binary names include the Boost version number, name 43 and version of the compiler and encoded build properties. 44 45endchoice 46 47config BR2_PACKAGE_BOOST_LAYOUT 48 string 49 default "system" if BR2_PACKAGE_BOOST_LAYOUT_SYSTEM 50 default "tagged" if BR2_PACKAGE_BOOST_LAYOUT_TAGGED 51 default "versioned" if BR2_PACKAGE_BOOST_LAYOUT_VERSIONED 52 53config BR2_PACKAGE_BOOST_ATOMIC 54 bool "boost-atomic" 55 depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS 56 help 57 C++11-style atomic<>. 58 59config BR2_PACKAGE_BOOST_CHRONO 60 bool "boost-chrono" 61 select BR2_PACKAGE_BOOST_SYSTEM 62 help 63 Useful time utilities. C++11. 64 65config BR2_PACKAGE_BOOST_CONTAINER 66 bool "boost-container" 67 help 68 Standard library containers and extensions. 69 70# see 71# http://www.boost.org/doc/libs/1_59_0/libs/context/doc/html/context/architectures.html 72# for the list of supported architectures. Sparc pretends to be 73# supported, but it doesn't build. 74config BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS 75 bool 76 default y if ((BR2_arm || BR2_armeb) && BR2_ARM_CPU_HAS_ARM) 77 default y if BR2_i386 78 default y if BR2_mips 79 default y if BR2_mipsel 80 default y if BR2_powerpc 81 default y if BR2_x86_64 82 83config BR2_PACKAGE_BOOST_CONTEXT 84 bool "boost-context" 85 depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS 86 depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS \ 87 || BR2_TOOLCHAIN_GCC_AT_LEAST_6 # boost-thread 88 depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 89 select BR2_PACKAGE_BOOST_THREAD if !BR2_TOOLCHAIN_GCC_AT_LEAST_6 90 help 91 C++11 context switching library. 92 93config BR2_PACKAGE_BOOST_CONTRACT 94 bool "boost-contract" 95 # pthread_condattr_setclock 96 depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL 97 select BR2_PACKAGE_BOOST_SYSTEM 98 help 99 Contract programming for C++. 100 101comment "boost-contract needs a toolchain w/ NPTL" 102 depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL 103 104config BR2_PACKAGE_BOOST_COROUTINE 105 bool "boost-coroutine" 106 depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS 107 depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread 108 depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-context, boost-thread 109 select BR2_PACKAGE_BOOST_CHRONO 110 select BR2_PACKAGE_BOOST_CONTEXT 111 select BR2_PACKAGE_BOOST_SYSTEM 112 select BR2_PACKAGE_BOOST_THREAD 113 help 114 deprecated coroutine library, the non-depricated coroutine2 115 library is a header-only library and does not need to be 116 selected. 117 118comment "boost-coroutine needs a toolchain not affected by GCC bug 64735" 119 depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS 120 depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS 121 depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 122 123config BR2_PACKAGE_BOOST_DATE_TIME 124 bool "boost-date_time" 125 help 126 A set of date-time libraries based on generic programming 127 concepts. 128 129config BR2_PACKAGE_BOOST_EXCEPTION 130 bool "boost-exception" 131 help 132 The Boost Exception library supports transporting of arbitrary 133 data in exception objects, and transporting of exceptions 134 between threads. 135 136config BR2_PACKAGE_BOOST_FIBER 137 bool "boost-fiber" 138 depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS 139 depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL 140 # mips support uses the "pause" instruction, only available 141 # since mips32r2/mips64r2. 142 depends on !BR2_MIPS_CPU_MIPS32 && !BR2_MIPS_CPU_MIPS64 143 depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-filesystem 144 depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-context 145 select BR2_PACKAGE_BOOST_CONTEXT 146 select BR2_PACKAGE_BOOST_FILESYSTEM 147 select BR2_PACKAGE_BOOST_SYSTEM 148 help 149 C++11 userland threads library. 150 151comment "boost-fiber needs a toolchain w/ NPTL" 152 depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS 153 depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS 154 depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL 155 156comment "boost-fiber needs a toolchain not affected by GCC bug 64735" 157 depends on BR2_PACKAGE_BOOST_CONTEXT_ARCH_SUPPORTS 158 depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS \ 159 || BR2_TOOLCHAIN_GCC_AT_LEAST_6 160 depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 161 162config BR2_PACKAGE_BOOST_FILESYSTEM 163 bool "boost-filesystem" 164 depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomic 165 select BR2_PACKAGE_BOOST_ATOMIC 166 select BR2_PACKAGE_BOOST_SYSTEM 167 help 168 The Boost Filesystem Library provides portable facilities to 169 query and manipulate paths, files, and directories. 170 171config BR2_PACKAGE_BOOST_GRAPH 172 bool "boost-graph" 173 select BR2_PACKAGE_BOOST_REGEX 174 help 175 The BGL graph interface and graph components are generic, in 176 the same sense as the the Standard Template Library (STL). 177 178config BR2_PACKAGE_BOOST_GRAPH_PARALLEL 179 bool "boost-graph_parallel" 180 help 181 The PBGL graph interface and graph components are generic, in 182 the same sense as the the Standard Template Library (STL). 183 184config BR2_PACKAGE_BOOST_IOSTREAMS 185 bool "boost-iostreams" 186 select BR2_PACKAGE_BZIP2 187 select BR2_PACKAGE_ZLIB 188 help 189 Boost.IOStreams provides a framework for defining streams, 190 stream buffers and i/o filters. 191 192config BR2_PACKAGE_BOOST_JSON 193 bool "boost-json" 194 select BR2_PACKAGE_BOOST_CONTAINER 195 help 196 Boost.JSON is a portable C++ library which provides containers 197 and algorithms that implement JavaScript Object Notation, or 198 simply "JSON", a lightweight data-interchange format. 199 200 To use the library "header-only" this option is not needed. 201 202config BR2_PACKAGE_BOOST_LOCALE 203 bool "boost-locale" 204 # When boost-locale is enabled with icu support, Boost no 205 # longer supports building the libboost_* libraries as static 206 # libraries, causing build failures when other boost features 207 # than boost-locale are enabled. To work around this, we 208 # prevent using boost-locale on static linking configurations 209 # with icu enabled. See 210 # https://svn.boost.org/trac/boost/ticket/9685 for more 211 # details. 212 depends on !(BR2_STATIC_LIBS && BR2_PACKAGE_ICU) 213 depends on !(BR2_TOOLCHAIN_HAS_GCC_BUG_64735 && BR2_PACKAGE_ICU) # boost-thread 214 depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS \ 215 || !BR2_PACKAGE_ICU # boost-thread 216 select BR2_PACKAGE_BOOST_SYSTEM 217 select BR2_PACKAGE_BOOST_THREAD if BR2_PACKAGE_ICU 218 select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE 219 help 220 Provide localization and Unicode handling tools for C++. 221 222comment "boost-locale needs a toolchain w/ dynamic library" 223 depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS 224 depends on BR2_PACKAGE_ICU 225 depends on BR2_STATIC_LIBS 226 227comment "boost-locale needs a toolchain not affected by GCC bug 64735" 228 depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS 229 depends on BR2_PACKAGE_ICU 230 depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 231 232config BR2_PACKAGE_BOOST_LOG 233 bool "boost-log" 234 depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL 235 depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-atomic 236 depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread 237 select BR2_PACKAGE_BOOST_ATOMIC 238 select BR2_PACKAGE_BOOST_DATE_TIME 239 select BR2_PACKAGE_BOOST_FILESYSTEM 240 select BR2_PACKAGE_BOOST_REGEX 241 select BR2_PACKAGE_BOOST_SYSTEM 242 select BR2_PACKAGE_BOOST_THREAD 243 help 244 Logging library. 245 246comment "boost-log needs a toolchain w/ NPTL" 247 depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS 248 depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL 249 250comment "boost-log needs a toolchain not affected by GCC bug 64735" 251 depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 252 253config BR2_PACKAGE_BOOST_MATH 254 bool "boost-math" 255 help 256 Boost.Math includes several contributions in the domain of 257 mathematics: 258 259 The Greatest Common Divisor and Least Common 260 Multiple library provides run-time and compile-time evaluation 261 of the greatest common divisor (GCD) or least common multiple 262 (LCM) of two integers. 263 264 The Special Functions library currently provides eight 265 templated special functions, in namespace boost. 266 267 The Complex Number Inverse Trigonometric Functions are the 268 inverses of trigonometric functions currently present in the 269 C++ standard. 270 271 Quaternions are a relative of complex numbers often used to 272 parameterise rotations in three dimentional space. 273 274 Octonions, like quaternions, are a relative of complex 275 numbers. 276 277config BR2_PACKAGE_BOOST_MPI 278 bool "boost-mpi" 279 help 280 Message Passing Interface library, for use in 281 distributed-memory parallel application programming. 282 283config BR2_PACKAGE_BOOST_NOWIDE 284 bool "boost-nowide" 285 help 286 Library for cross-platform, unicode aware programming. 287 288config BR2_PACKAGE_BOOST_PROGRAM_OPTIONS 289 bool "boost-program_options" 290 help 291 The program_options library allows program developers to 292 obtain program options, that is (name, value) pairs from the 293 user, via conventional methods such as command line and config 294 file. 295 296config BR2_PACKAGE_BOOST_PYTHON 297 bool "boost-python" 298 depends on BR2_PACKAGE_PYTHON || BR2_PACKAGE_PYTHON3 299 help 300 The Boost Python Library is a framework for interfacing Python 301 and C++. It allows you to quickly and seamlessly expose C++ 302 classes functions and objects to Python, and vice-versa, 303 using no special tools -- just your C++ compiler. 304 305config BR2_PACKAGE_BOOST_RANDOM 306 bool "boost-random" 307 select BR2_PACKAGE_BOOST_SYSTEM 308 help 309 A complete system for random number generation. 310 311config BR2_PACKAGE_BOOST_REGEX 312 bool "boost-regex" 313 help 314 A new infrastructure for generic algorithms that builds on top 315 of the new iterator concepts. 316 317config BR2_PACKAGE_BOOST_SERIALIZATION 318 bool "boost-serialization" 319 help 320 Serialization for persistence and marshalling. 321 322config BR2_PACKAGE_BOOST_STACKTRACE 323 bool "boost-stacktrace" 324 depends on !BR2_STATIC_LIBS 325 help 326 Gather, store, copy and print backtraces. 327 328comment "boost-stacktrace needs a toolchain w/ dynamic library" 329 depends on BR2_STATIC_LIBS 330 331config BR2_PACKAGE_BOOST_SYSTEM 332 bool "boost-system" 333 help 334 Operating system support, including the diagnostics support 335 that will be part of the C++0x standard library. 336 337config BR2_PACKAGE_BOOST_TEST 338 bool "boost-test" 339 depends on BR2_USE_MMU # fork() 340 select BR2_PACKAGE_BOOST_SYSTEM 341 select BR2_PACKAGE_BOOST_TIMER 342 help 343 Support for simple program testing, full unit testing, and for 344 program execution monitoring. 345 346config BR2_PACKAGE_BOOST_THREAD 347 bool "boost-thread" 348 depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS 349 depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::current_exception 350 select BR2_PACKAGE_BOOST_CHRONO 351 select BR2_PACKAGE_BOOST_SYSTEM 352 help 353 Portable C++ multi-threading. C++11, C++14. 354 355comment "boost-thread needs a toolchain not affected by GCC bug 64735" 356 depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 357 358config BR2_PACKAGE_BOOST_TIMER 359 bool "boost-timer" 360 select BR2_PACKAGE_BOOST_CHRONO 361 select BR2_PACKAGE_BOOST_SYSTEM 362 help 363 Event timer, progress timer, and progress display classes. 364 365config BR2_PACKAGE_BOOST_TYPE_ERASURE 366 bool "boost-type_erasure" 367 depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread 368 depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread 369 select BR2_PACKAGE_BOOST_SYSTEM 370 select BR2_PACKAGE_BOOST_THREAD 371 help 372 Runtime polymorphism based on concepts. 373 374comment "boost-type_erasure needs a toolchain not affected by GCC bug 64735" 375 depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 376 377config BR2_PACKAGE_BOOST_WAVE 378 bool "boost-wave" 379 # limitation of assembler for coldfire 380 # error: Tried to convert PC relative branch to absolute jump 381 depends on !BR2_m68k_cf 382 depends on BR2_TOOLCHAIN_SUPPORTS_ALWAYS_LOCKFREE_ATOMIC_INTS # boost-thread 383 depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # boost-thread 384 select BR2_PACKAGE_BOOST_DATE_TIME 385 select BR2_PACKAGE_BOOST_FILESYSTEM 386 select BR2_PACKAGE_BOOST_SYSTEM 387 select BR2_PACKAGE_BOOST_THREAD 388 help 389 The Boost.Wave library is a Standards conformant, and highly 390 configurable implementation of the mandated C99/C++ 391 preprocessor functionality packed behind an easy to use 392 iterator interface. 393 394comment "boost-wave needs a toolchain not affected by GCC bug 64735" 395 depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 396 397endif 398