[Libwebsockets] VS2019 static generation

andy at warmcat.com andy at warmcat.com
Thu Feb 18 20:36:34 CET 2021


>v4.0-stable

Does this problem exist on main?

> Then hacking the cmake file but that's not really usable down the line.

It is if you send a patch, crazy idea I know.

I don't see (on main) anywhere that lws sets /MD, suggesting the problem is outside lws.  But I'm looking on a phone atm, did I miss it?

The general approach should be cmake platform-specific stuff adds it, since it knows what to do based on -DCMAKE_BUILD_TYPE=, it's pointless making every cmake project provide that platform-specific knowledge.

Is it possible cmake itself cares between "Release" and "RELEASE"?

-Andy


On February 18, 2021 7:19:27 PM UTC, Brice Hamon <normandviking at gmail.com> wrote:
>Hi guys,
>
>I am recompiling the latest lib v4.0-stable from git, and I am
>executing
>these 2 commands to compile it:
>
>cmake -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON -DCMAKE_BUILD_TYPE=RELEASE
>-DLWS_WITH_MINIMAL_EXAMPLES=0 -DLWS_WITH_SHARED=OFF -DLWS_STATIC_PIC=1
>-DLWS_WITHOUT_TESTAPPS=1 -DCMAKE_BUILD_TYPE=RELEASE
>-DLWS_WITHOUT_DAEMONIZE=1
>-DCMAKE_INSTALL_PREFIX:PATH=c:/3rdparty/libwebsockets -G "Visual Studio
>10"
>..
>
>cmake --build . --target install --config Release
>
>The build succeeds but the files are compiled with the /MD flag even if
>the
>static option is specified.
>
>My goal is to get a static library compiled with the /MT flag instead
>of
>the /MD as I am having linking CRT issues when linking with some other
>program.
>
>I spent some time trying with cmake options with no luck.
>Then hacking the cmake file but that's not really usable down the line.
>
>In despair, I found that lws also generate Visual studio projects. I
>loaded
>them successfully and manually set the option in Release to use /MT and
>recompiled it.
>Then the link with my other program worked nicely.
>
>So my question is, is there a supported option to use different CRT?
>
>It would be great if we could use a CMake option to set up which one to
>use
>like for example:
>-DLWS_USE_CRT_DEBUG=MTd -DLWS_USE_CRT_RELEASE=MT.
>Thank you,
>Brice.


More information about the Libwebsockets mailing list