Giter Site home page Giter Site logo

Comments (9)

Lastique avatar Lastique commented on September 12, 2024

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.

pdimov avatar pdimov commented on September 12, 2024

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.

Lastique avatar Lastique commented on September 12, 2024

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.

Leon0402 avatar Leon0402 commented on September 12, 2024

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.

jeking3 avatar jeking3 commented on September 12, 2024

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.

pdimov avatar pdimov commented on September 12, 2024

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.

jeking3 avatar jeking3 commented on September 12, 2024

@pdimov is there anything that needs to be done here as a result of that?

from uuid.

pdimov avatar pdimov commented on September 12, 2024

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.

jeking3 avatar jeking3 commented on September 12, 2024

Thanks, worked hard to keep this header-only.

from uuid.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.