-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Inconsistent DLL naming in CMake vs. vcxproj builds at v2.10.0? #577
Comments
The repo .vcprox files also have Win32 and x64 (and ARM) builds. I understand a CMake-generated project supports a single platform, but I wonder whether the output directory should be made to still include e.g. "x64" in the path, as before? |
Of course, setting To get TargetName as e.g. "cpprest140d_2_10", I suggest replacing the binary versioning for set_target_properties(cpprest PROPERTIES
OUTPUT_NAME "cpprest_${CPPREST_VERSION_MAJOR}_${CPPREST_VERSION_MINOR}") With something like this: string(SUBSTRING ${CMAKE_VS_PLATFORM_TOOLSET} 1 -1 TOOLSET)
set(CPPREST_VERSION_POSTFIX "_${CPPREST_VERSION_MAJOR}_${CPPREST_VERSION_MINOR}")
foreach(CFG ${CMAKE_CONFIGURATION_TYPES})
string(TOUPPER ${CFG} CFG)
get_target_property(CFG_POSTFIX cpprest ${CFG}_POSTFIX)
if (NOT CFG_POSTFIX)
# forget "NOTFOUND"
set(CFG_POSTFIX)
endif()
set_target_properties(cpprest PROPERTIES
${CFG}_POSTFIX "${TOOLSET}${CFG_POSTFIX}${CPPREST_VERSION_POSTFIX}")
endforeach() (Maybe there's a more concise way of doing that with generator expressions though.) I also found I needed to make one change to improve the INSTALL experience on Windows. Without this change, To avoid that, when configuring cpprestsdk, I override |
…on 2.10.6 Adam Duskett (2): fix compiling with non-glib Linux c libraries fix template whitespace syntax (#715) Alex Moriarty (1): [gcc-8][clang++-6] disable more -Werror warnings (#779) Andreas Stieger (1): Fix gcc8 error/warning -Werror=format-truncation= (#787) Billy O'Neal (13): Delete open() from _http_client_communicator (#819) Unbreak ASIO build on Windows. (#821) Merge pull request #687 from ZekeSnider/certificate-revocation-client-config Add branchless is_alnum borrowed from MSVC++'s std::regex' _Is_word; should be about 5x faster. (#823) Unify handling of tolower operations to avoid locale sensitivity. (#822) Deduplicate some code in HTTP headers. (#825) Various micro perf fixes and cleanup found while implementing CN overrides so far (#818) Workaround Apple clang bugs in constexpr evaluation. (#829) Merge pull request #826 from BillyONeal/dev/bion/clang_format Attempt to repair VS2013 builds. (#833) Implement host override of CN checking in the WinHTTP backend (#824) Avoid saying constexpr for VS2013. (#834) Implement host override of CN checking in the ASIO backend (#832) Billy Robert O'Neal III (4): Add tests for set_validate_certificates(false). Add .clang-format file from vcpkg to cpprestsdk. Set namespace indentation to none. Apply clang-format to the asio implementation. Chris Deering (1): Fix an issue where requests sent via authenticated proxies could not be successfully redirected from one domain to another Gareth Sylvester-Bradley (7): Making crossplat::threadpool::shared_instance() safe to use in cpprest DLL (#611) Add support for retrieving HTTP version of a request in HTTP listener (#565) Fix VS2013 compilation errors (#678) Fix a regression in parsing an HTTP-Version string (#677) Don't use the ``U()`` preprocessor macro in public headers (#693) Fix compilation failure with ``CPPREST_FORCE_PPLX=1`` (resolves #734) (#746) Fix to work with commit 1e4717e5aefb080bfc3edd3b9d6ca6e2546c0111 (#681) Gianfranco Costamagna (3): Fix boost1.63 build failure Fixes: #813 (#815) Update CMakeLists.txt to install the cmake bindings in the right location (#737) Fix another clang build failure (Fixes: #747) (#844) Jan Nils Ferner (1): Fix XML in comment (#705) John Hruby (1): fixed strand Jonathan Gawrych (1): Fix string use after destruct introduced in merge commit b7fa0b1 Marcin Buchwald (1): No need for ostringstream here (#700) Mathy Vanvoorden (1): Make it possible to set the user agent for websockets (#606) René Meusel (1): set the default open() O_CREAT file permissions to 666 (#736) Robert Andrzejuk (1): Fix for compilation with MSVC permissive- (#809) Robert Schumacher (30): Fix UWP issues with min/max macros. Merge pull request #636 from JonathanGawrych/jag/UseProxyAfterDestruct Merge pull request #634 from garethsb-sony/http_server_asio-invalid_unicode Merge branch 'dll-naming' of https://github.com/garethsb-sony/cpprestsdk into garethsb-sony-dll-naming Extract the abi tag to make it more platform independent. Fix warning due to boost 1.66 Merge pull request #638 from jhruby/master Merge pull request #646 from dimarusyy/master Merge pull request #630 from garethsb-sony/dll-naming Fix Windows build regression (do not include sys/time.h) Merge pull request #569 from aduskett/master Fix build regression on Windows (CHECK_INCLUDE_FILES requires C language support) Merge pull request #609 from garethsb-sony/gcc-4.7 Merge pull request #566 from deeringc/auth_proxy_redirect Disable "disable_sni" test due to lack of robust test servers. Merge pull request #612 from garethsb-sony/force_http_listener_asio Merge pull request #624 from garethsb-sony/listen-backlog Fix min/max issues on Windows. Convert http_versions::from_string to use UTF-8 Push version number to 2.10.2 Fix test issues under /permissive- Add root CMakeLists.txt Do not fail on unrecognized content encoding (such as chunked) when compression is enabled. Fix some issues with gcc-5 Remove empty objects when using CMake on Windows Push version to 2.10.3 Update changelog Mint version 2.10.4 Fix incorrect version.h. Fixes #942 Fix compiler errors and mint v2.10.6 Thomas Barnekov (1): Fixed issue with Automatic Proxy detection when using WPAD on Windows 8.1 or higher (#722) VZ (2): Require at least CMake 3.1 due to use of target_sources (#752) Fix handling of timed out connections kept alive in connection pool under Unix (#762) Wu Yongwei (1): Fix a build problem on Clang. (#732) Zeke Snider (1): Don't enable certificate revocation check if client config has validate certificates set to false dimarusyy (1): #643 : ssl proxy port is hard coded to 443 garethsb-sony (14): Patch to get e.g. "cpprest140d_2_10.dll" as described in microsoft/cpprestsdk#577 GCC 4.7 in experimental C++11 mode tokenises '<::' at the beginning of a template argument list or *_cast conversion incorrectly as the digraph '<:' (meaning '[') followed by a single ':'; the former can be resolved by -fpermissive, the latter isn't Workaround for libstdc++ issue with GCC 4.7 (ultimately fixed in GCC 4.9) that means std::this_thread::yield() and std::this_thread::sleep_for() are only conditionally provided; see https://stackoverflow.com/a/12961816 At GCC 4.7, libstdc++ std::map didn't provide emplace(); using insert() is insignificant here At GCC 4.7, C++11 rules for noexcept specification of implicit destructors (and default specification on explicit destructors without exception specifications) aren't perfectly implemented At GCC 4.7, there are several bugs that cause "error: ‘this’ was not captured for this lambda function" to be reported incorrectly VS2013 incorrectly reports "warning C4573: the usage of 'symbol' requires the compiler to capture 'this' but the current default capture mode does not allow it"; the issue and workaround is the same as for GCC 4.7 in commit:5244af7c. Define http_listener_impl and http_server_api if CPPREST_FORCE_HTTP_LISTENER_ASIO is defined Suppress two instances of "warning C4503: 'identifier' : decorated name length exceeded, name was truncated" generated too late for disable to be effective inside push/pop Enable test create_https_listener_get on Windows if CPPREST_FORCE_HTTP_LISTENER_ASIO is defined VS2013 incorrectly reports "warning C4573: the usage of 'symbol' requires the compiler to capture 'this' but the current default capture mode does not allow it"; the issue and workaround is the same as for GCC 4.7 in commit:5244af7c. Add http_listener configuration for the backlog, the maximum length of the queue of pending connections on the port. Default the debug postfix for library filenames to "d" on Windows (it may still be overridden to the empty string) Handle std::range_error (from count_utf16_to_utf8) like web::uri_exception juntek (1): fixes #628 (#629) mobileben (1): #436 Building iOS doesn’t seem to work (#776) sridhar madhugiri (msft) (1): Improve error handling in on_accept (#750)
As was the case for v2.9, at v2.10.0, the TargetName set in the project files in the repo is like "cpprest140d_2_10". E.g. https://github.com/Microsoft/cpprestsdk/blob/master/Release/src/build/vs14/casablanca140.vcxproj#L37
However, after using CMake to generate project files instead, the TargetName in the resulting cpprest.vcxproj is simply "cpprest_2_10", i.e. without the VS version or DebugFileSuffix.
Is this intentional, or should CMake builds include the VS/debug disambiguators in the same way?
Thanks.
The text was updated successfully, but these errors were encountered: