Bug #91140 | CHECK_CXX_SOURCE_COMPILES Fails All Conditions | ||
---|---|---|---|
Submitted: | 5 Jun 2018 0:38 | Modified: | 5 Jun 2018 10:20 |
Reporter: | Rebeka Fox | Email Updates: | |
Status: | Not a Bug | Impact on me: | |
Category: | Connector / C++ | Severity: | S1 (Critical) |
Version: | Connector/C++ 8.0.11 | OS: | Windows (x64 CMAKE Source) |
Assigned to: | CPU Architecture: | Any | |
Tags: | c++ connector, cmake, community |
[5 Jun 2018 0:38]
Rebeka Fox
[5 Jun 2018 8:41]
MySQL Verification Team
********************************************************************** ** Visual Studio 2017 Developer Command Prompt v15.6.1 ** Copyright (c) 2017 Microsoft Corporation ********************************************************************** [vcvarsall.bat] Environment initialized for: 'x64' C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional>cd\ C:\>cd tmp C:\tmp>cd "mysql-connector-c++-8.0.11-src" C:\tmp\mysql-connector-c++-8.0.11-src>cmake ./ > cmake-output.txt Building on system: Windows-10.0.16299 (AMD64) Using cmake generator: Visual Studio 15 2017 Using 32bit genereator Building version 8.0.11 Building shared connector library Configuring CDK as part of MySQL_CONCPP project WITH_TESTS: OFF CDK include path: C:/tmp/mysql-connector-c++-8.0.11-src/cdk/include;C:/tmp/mysql-connector-c++-8.0.11-src/cdk/include WITH_SSL: Configuring Protobuf build using cmake generator: Visual Studio 15 2017 - setting generic location to: C:/tmp/mysql-connector-c++-8.0.11-src/cdk/protobuf/$(Configuration)/protobuf.lib - setting generic location to: C:/tmp/mysql-connector-c++-8.0.11-src/cdk/protobuf/$(Configuration)/protobuf-lite.lib Protobuf include path: C:/tmp/mysql-connector-c++-8.0.11-src/cdk/protobuf/protobuf-2.6.1/src Merging static libraries into cdk: - protobuf-lite Wrote configuration header: C:/tmp/mysql-connector-c++-8.0.11-src/cdk/include/mysql/cdk/config.h Connector library name: mysqlcppconn8-1-vs14 Install location: C:/Users/gsolorza/MySQL/MySQL Connector C++ 8.0 Connector libraries will be installed at: lib C:\tmp\mysql-connector-c++-8.0.11-src>
[5 Jun 2018 8:42]
MySQL Verification Team
cmake output
Attachment: cmake-output.txt (text/plain), 3.28 KiB.
[5 Jun 2018 8:43]
MySQL Verification Team
Thank you for the bug report. 14>try.vcxproj -> C:\tmp\mysql-connector-c++-8.0.11-src\Debug\try.exe 14>Done building project "try.vcxproj". 15>------ Rebuild All started: Project: ALL_BUILD, Configuration: Debug Win32 ------ 15>Building Custom Rule C:/tmp/mysql-connector-c++-8.0.11-src/CMakeLists.txt 15>CMake does not need to re-run because C:/tmp/mysql-connector-c++-8.0.11-src/CMakeFiles/generate.stamp is up-to-date. ========== Rebuild All: 15 succeeded, 0 failed, 0 skipped ==========
[5 Jun 2018 10:20]
Rebeka Fox
there are a few other errors, but it mostly compiles with a dowloaded copy of cmake, using vc compilers. it can't find a couple headers. i'm sure i can figure that out. it simply will not compile inside of visual studio.
[7 Jun 2018 12:27]
Tor Didriksen
The test code is syntactically wrong, this will pass for Visual Studio: CHECK_CXX_SOURCE_COMPILES( "#include <memory> void test(std::shared_ptr<int>) {}; int main() {return 0;}" HAVE_SHARED_PTR ) However, the test is semantically dubious as well: it sets CMAKE_REQUIRED_FLAGS to -std=c++11, and then tests for std::shared_ptr. Are there *any* C++ compilers which claim to support C++11 which *do not* support shared_ptr? BTW: AFAIK Visual Studio does not support -std=Cxx anyways, so I recommend simply testing for compiler version: MSVC_VERSION >= 1900 supports C++11