You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by GitBox <gi...@apache.org> on 2021/07/13 09:12:50 UTC

[GitHub] [pulsar] BewareMyPower opened a new pull request #11302: [C++] Support Windows Debug mode build

BewareMyPower opened a new pull request #11302:
URL: https://github.com/apache/pulsar/pull/11302


   Fixes #11081
   
   ### Motivation
   
   The current `CMakeLists.txt` doesn't work well for Windows build. If the dependencies were installed by Vcpkg, CMake would always find the release version libraries under `vcpkg_installed/<triplet>/lib` and could not find the debug version libraries under `vcpkg_installed/<triplet>/debug/lib`. If `pulsar.dll` was built in release mode while the application was built in debug mode, some link errors might happen.
   
   ### Modifications
   
   Use `find_package` with config mode to find curl and protobuf instead of `find_library` with the explicit library names.  For example, after Protobuf was found successfully, the `Protobuf_LITE_LIBRARIES` would be set with
   
   > optimized;./vcpkg_installed/x64-windows/bin/libprotobuf-lite.dll;debug;./vcpkg_installed/x64-windows/debug/bin/libprotobuf-lited.dll
   
   ZLIB and OpenSSL don't support config mode for `find_package`, so here we set hint path like `ZLIB_ROOT` to force CMake find debug version libraries when `CMAKE_BUILD_TYPE` is `Debug`.
   
   For ZSTD and Snappy, use the correct name for MSVC with Debug mode. 
   
   ### Verifying this change
   
   - [ ] Make sure that the change passes the CI checks.
   
   This change is a trivial rework / code cleanup without any test coverage.
   
   It's hard to test in CI because it's something with linking in runtime. We can test the fixed CMakeLists.txt on Windows local machine with Visual Studio 2017 x64 compiler tools CMD window.
   
   ```bash
   vcpkg install --feature-flags=manifests --triplet x64-windows
   cmake -B ./build -A x64 -DBUILD_PYTHON_WRAPPER=OFF -DBUILD_TESTS=OFF -DVCPKG_TRIPLET=x64-windows -DCMAKE_BUILD_TYPE=Debug -S .
   cmake --build ./build --config Debug
   set PATH=%CD%\vcpkg_installed\x64-windows\debug\bin;%CD%\build\lib\Debug;%PATH%
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@pulsar.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [pulsar] BewareMyPower commented on pull request #11302: [C++] Support Windows Debug mode build

Posted by GitBox <gi...@apache.org>.
BewareMyPower commented on pull request #11302:
URL: https://github.com/apache/pulsar/pull/11302#issuecomment-878939165


   It looks like CMakeLists.txt is not compatible with apachepulsar/pulsar-build:manylinux-cp37-cp37m image, I'll fix it soon.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@pulsar.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [pulsar] merlimat merged pull request #11302: [C++] Support Windows Debug mode build

Posted by GitBox <gi...@apache.org>.
merlimat merged pull request #11302:
URL: https://github.com/apache/pulsar/pull/11302


   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscribe@pulsar.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org