synesissoftware / Pantheios

The C/C++ Diagnostic Logging Sweetspot
Other
37 stars 51 forks source link

Static CMake build - 1.0.1-beta221 #18

Open psadaic opened 1 week ago

psadaic commented 1 week ago

Hi!

Could you please help me out with providing info about how can I build static libs of pantheios (I'm testing with 1.0.1-beta221, STLSoft-1.11-1.11.1-alpha24).

synesissoftware commented 1 week ago

Happy to help. Can you provide a little information on how you've gone so far, and the system on which you're building?

psadaic commented 1 week ago

Sure, here are some details about my testing build environment:

Here is a snippet of my build script:

call "C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Auxiliary\Build\vcvarsall.bat" x86 -vcvars_ver=14.41.34120

set PACKAGE_NAME=Pantheios-1.0.1-beta221
set STLSOFT_VERSION=STLSoft-1.11-1.11.1-alpha24

set ROOT_DIR=%CD%

rmdir /s /q build\%PACKAGE_NAME%\win\x86
mkdir build\%PACKAGE_NAME%\win\x86

set PANTHEIOS_ROOT=%ROOT_DIR%\source\%PACKAGE_NAME%
set STLSOFT=%ROOT_DIR%\source\%STLSOFT_VERSION%

cmake -DCMAKE_CXX_FLAGS_DEBUG="/MT" -DSTLSOFT=%STLSOFT% -DBUILD_EXAMPLES:BOOL=OFF -DBUILD_TESTING:BOOL=OFF -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=%ROOT_DIR%\output\%PACKAGE_NAME%\win\x86 -S source\%PACKAGE_NAME% -B build\%PACKAGE_NAME%\win\x86

cmake --build build\%PACKAGE_NAME%\win\x86

rmdir /s /q output\%PACKAGE_NAME%\win\x86
mkdir output\%PACKAGE_NAME%\win\x86

cmake --install build\%PACKAGE_NAME%\win\x86

xcopy /s source\%PACKAGE_NAME%\include output\%PACKAGE_NAME%\win\x86\include\

I went through the Pantheios source but didn't manage to find solution on how to do a static build. I tried to force static compilation by defining CMAKE_CXX_FLAGS_DEBUG="/MT" variable but compiler just outputs: overriding '/MT' with '/MDd' and proceeds with dynamic build.

I have a cross-platform project currently locked on much older static version of Pantheios which I would love to port to a new version in order to be able to use newer compiler and C++ standard.

mwsis commented 1 week ago

Ok, thanks for the info. We'll take a look.

synesissoftware commented 1 week ago

This'll be coming next few hours ...

psadaic commented 1 week ago

Perfect, looking forward to testing it.

mwsis commented 1 week ago

So far, the following projects have been updated, in the same way, to cater for MT/MTd for VC++:

Currently working on Pantheios itself, and should be released in an hour or so.

Will provide instructions when that's done.

mwsis commented 1 week ago

Just spending a bit of extra effort to update/expand the installation instructions.

But if you want to get going ASAP, just grab the latest from the boilerplate branch (in this account). Will update when official release is good to go.

mwsis commented 1 week ago

@psadaic : btw, would love to hear more about your project, and how Pantheios is being used.

NOTE: after a looong time, Pantheios is on the cusp of being non-beta. And there are a bunch of new features stacked up that will be rolled out in the coming weeks and months. And always happy to hear feature requests and take contributions.

synesissoftware commented 1 week ago

1.0.1-beta222 now released.

The INSTALL.md instructions have been updated and expanded.

Please let us know if any further issues.

psadaic commented 6 days ago

Awesome, thank you! I will be testing it today and will give back feedback as soon as I do.

@mwsis Of course. The project that I mentioned is called Certilia, it is a fully featured solution for digital identification and document signing and verification. One of the components of our system is a middleware software which is used as a bridge between our smart cards and third party applications that request identification or document signing. Considering the mentioned software consist of some sensitive components like for example smart card driver, we were in need of a logging solution that has a small footprint, is efficient and works well on multiple platforms so that is why Pantheios was chosen. For now it is used only for file and console based logging. During the years some of the parts of our middleware software became a bit obsolete so we are currently in a process of a major overhaul of the project so I will be testing the same configuration on multiple platforms, compilers and architectures during the following weeks. Will keep you updated if I come across some issues and feel free to contact me if you need help testing some parts of it.

psadaic commented 6 days ago

Everything seems to be working fine now. Tested with Pantheios-1.0.1-beta222, STLSoft-1.11-1.11.1-alpha25, b64-1.5.5.