Comments (9)
I'm not the maintainer, but linking with bcrypt is essential. The alternative is wincrypt, but it is deprecated and I don't think is universally available.
I also don't think introducing a dummy compiled library is an adequate solution, as this creates a bunch of other problems. For example, it affects packaging and downstream dependencies for no good reason.
IMHO, this should be solved entirely in CMake and headers. One option is stop defining BOOST_ALL_NO_LIB
. Another is ignore it for linking non-Boost libraries.
from uuid.
Relying on autolink to hide the problem doesn't seem correct; it doesn't work for GCC. But assuming we don't care about GCC, we've had the discussion of whether BOOST_ALL_NO_LIB should apply to non-Boost libraries more than once now, without any results.
I wouldn't be in support of enabling autolink for Boost libraries when using the CMake config files; this causes nothing but trouble (even if it does help to hide errors occasionally.)
from uuid.
Yes, enabling auto-link is just a workaround, something we could consider for 1.78. The proper solution is to find a way to generate CMake config files for header-only libraries while keeping them header-only.
from uuid.
he proper solution is to find a way to generate CMake config files for header-only libraries while keeping them header-only
I would love to see this, so I can use Boost::uuid and others to correctly link all targets. In case of other libraries like Boost libraries, I also need to link other boost libraries explicitly like filesystem, which is confusing.
Should this maybe tracked in a separate issue? Perhaps in boost_install?
from uuid.
I'm guessing someone has a workaround for this, for now - it might be useful to share that to help others in the same situation.
from uuid.
I changed the CMake config files to only define the corresponding library-specific _NO_LIB macro instead of BOOST_ALL_NO_LIB
, which takes care of this and similar issues on compilers that support autolinking. (boostorg/boost_install@258f786)
from uuid.
@pdimov is there anything that needs to be done here as a result of that?
from uuid.
I don't think we can do anything in practice, short of switching to a compiled library, which is unacceptable for many. So, closing.
from uuid.
Thanks, worked hard to keep this header-only.
from uuid.
Related Issues (20)
- Memory sanitizer warning on boost::uuids::to_string() call HOT 5
- The MD5 generated by boost-uuid-1.70.0 and boost-uuid-1.71.0 are different HOT 2
- Constructing UUIDs from 2 64 bit integers HOT 7
- Replace boost::mpl with boost::mp11 HOT 6
- Can generator is shared by multiple threads without locks? HOT 2
- CI: add cmake build jobs (use boost-ci)
- CI: add bigendian test (and coverage report)
- CI: Add coverity scan integration
- Consider removing dependency on Boost.TTI HOT 1
- x86 optimized operators are slower than generic version HOT 2
- Align `uuid` to 16 bytes HOT 7
- time_generator - any opinions about adding it? HOT 12
- #pragma message doesn't show correctly when enabled BOOST_UUID_RANDOM_PROVIDER_SHOW . GCC/Clang HOT 1
- Consider separating the portable header-only random implementation to another package or library HOT 1
- threeway comparision support HOT 4
- basic_random_generator not safe in case a = a HOT 1
- Improve messages of string_generator HOT 1
- [feature request] Please consider supporting UUID v6 v7 v8 as decribed in RFC 9562 HOT 2
- std::data() and std::span support HOT 32
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from uuid.