>From BUILDING.md: Windows Generator
The recommended generator on Windows is Visual Studio 12 2013 Win64: $ cmake -G "Visual Studio 12 2013 Win64" ../src Should we change that? Daniel -----Original Message----- From: Jacob Barrett [mailto:jbarr...@pivotal.io] Sent: Thursday, July 13, 2017 3:06 PM To: dev@geode.apache.org Subject: Re: Geode-Native Windows build VS 2013 is not fully C++11 compliant. The minimum compiler on windows is VS 2015. Sent from my iPhone > On Jul 13, 2017, at 4:32 AM, Daniel Farcovich <daniel.farcov...@amdocs.com> > wrote: > > As I mentioned in the first email I receive compilation errors, for example: > 31>C:\Users\Fdaniel\Source\Repos\geode-native2\src\cppcache\include\geode/utils.hpp(57): > error C2144: syntax error : 'bool' should be preceded by ';' > (C:\Users\Fdaniel\Source\Repos\geode-native2\src\cppcache\src\FunctionServiceImpl. > > The root cause of this error is in the use of "constexpr" in utils.hpp and > build in VS2013. > There are features of c++11 which are not implemented in various VS versions. > Here is a table with the unsupported features, where constexpr is one of them: > https://msdn.microsoft.com/en-us/library/hh567368.aspx#featurelist > > I assume the rest of the errors are of the same reason. > > Although boost has already macros to workaround constexpr (BOOST_CONSTEXPR), > my suggestion is to add a macro to geode_base.hpp for removing constexpr when > it's not supported: > #ifdef _WIN32 > #if _MSC_VER > 1800 //VS2015 and higher #define GF_CONSTEXPR constexpr > #else #define GF_CONSTEXPR #endif #else #define GF_CONSTEXPR constexpr > #endif > > Daniel > > -----Original Message----- > From: Daniel Farcovich > Sent: Thursday, July 13, 2017 10:07 AM > To: 'dev@geode.apache.org' <dev@geode.apache.org> > Subject: RE: Geode-Native Windows build > > Hi Jake and Ernest, > > I tried to build from c:\build > Here is the config command and output: > > c:\build>cmake -DCMAKE_INSTALL_PREFIX=C:\build\out -G "Visual Studio > 12 2013 Win64" -Thost=x64 > C:\Users\Fdaniel\Source\Repos\geode-native2\src > -- The C compiler identification is MSVC 18.0.21005.1 > -- The CXX compiler identification is MSVC 18.0.21005.1 > -- Check for working C compiler: C:/Program Files (x86)/Microsoft > Visual Studio 12.0/VC/bin/amd64/cl.exe > -- Check for working C compiler: C:/Program Files (x86)/Microsoft > Visual Studio 12.0/VC/bin/amd64/cl.exe -- works > -- Detecting C compiler ABI info > -- Detecting C compiler ABI info - done > -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft > Visual Studio 12.0/VC/bin/amd64/cl.exe > -- Check for working CXX compiler: C:/Program Files (x86)/Microsoft > Visual Studio 12.0/VC/bin/amd64/cl.exe -- works > -- Detecting CXX compiler ABI info > -- Detecting CXX compiler ABI info - done > -- Detecting CXX compile features > -- Detecting CXX compile features - done > -- Performing Test CFLAGS_M64_ALLOWED > -- Performing Test CFLAGS_M64_ALLOWED - Failed > -- Performing Test CXXFLAGS_M64_ALLOWED > -- Performing Test CXXFLAGS_M64_ALLOWED - Failed > -- Performing Test CFLAGS_mt_ALLOWED > -- Performing Test CFLAGS_mt_ALLOWED - Failed > -- Found Java: C:/Program Files/Java/jdk1.8.0_74/bin/java.exe (found > suitable version "1.8.0.74", minimum required is "1.8.0.60") found > components: Development > -- Found Geode: > C:\Users\Fdaniel\Source\Repos\geode\geode-assembly\build\install\apach > e-geode\bin\gfsh.bat (found suitable version "1.1.1", minimum required > is "1.0") > -- Found Doxygen: C:/Program Files/doxygen/bin/doxygen.exe (found > suitable version "1.8.13", minimum required is "1.6") > -- Found Git: C:/Program Files/Git/cmd/git.exe (found suitable version > "2.10.2.windows.1", minimum required is "1.7") > -- Looking for include files sys/param.h, sys/mount.h > -- Looking for include files sys/param.h, sys/mount.h - not found > -- Looking for SIGSTKFLT > -- Looking for SIGSTKFLT - not found > -- Looking for SIGPWR > -- Looking for SIGPWR - not found > -- Found Geode: > C:\Users\Fdaniel\Source\Repos\geode\geode-assembly\build\install\apach > e-geode\bin\gfsh.bat (found version "1.1.1") > -- Found Java: C:/Program Files/Java/jdk1.8.0_74/bin/java.exe (found > version "1.8.0.74") > -- Found Doxygen: C:/Program Files/doxygen/bin/doxygen.exe (found > version "1.8.13") > -- Configuring done > -- Generating done > > -- Build files have been written to: C:/build > > > PFA CMakeError.log and CMakeOutput.log after "cmake --build . -- /m" > > Thanks, > Daniel > > -----Original Message----- > From: Jacob Barrett [mailto:jbarr...@pivotal.io] > Sent: Wednesday, July 12, 2017 5:11 PM > To: dev@geode.apache.org > Subject: Re: Geode-Native Windows build > > While we wait for your config output there is something else that might bite > you if it isn't what is biting you now. Some of the third part libraries > built as part of Geode native have deep directory structures. Your deep > directory structure to your sources combine with that may result in paths > over the windows limit. > > Consider using something more shallow on windows, like C:\build. Your source > can be anywhere since CMake builds are outside the source tree. > > -Jake > > > Sent from my iPhone > >> On Jul 12, 2017, at 6:52 AM, Daniel Farcovich <daniel.farcov...@amdocs.com> >> wrote: >> >> Hi, >> I'm failing to build geode native cpp client on windows, although >> followed the instructions on BUILDING.md Looks like there are >> slash/backslash fixes should be done in the paths in cmake files. >> After overcoming cmake failures the build fails on stage "cmake --build . >> -- /m" with compilation errors for example: >> >> 31>C:\Users\Fdaniel\Source\Repos\geode-native2\src\cppcache\include\geode/utils.hpp(57): >> error C2144: syntax error : 'bool' should be preceded by ';' >> (C:\Users\Fdaniel\Source\Repos\geode-native2\src\cppcache\src\FunctionServiceImpl. >> cpp) >> [C:\Users\Fdaniel\Source\Repos\geode-native2\build\cppcache\src\apache-geode-static.vcxproj] >> >> 4>C:\Users\Fdaniel\Source\Repos\geode-native2\src\cppcache\include\geode/utils.hpp(57): >> error C2144: syntax error : 'bool' should be preceded by ';' >> (C:\Users\Fdaniel\Source\Repos\geode-native2\src\cppcache\src\FunctionServiceImpl. >> cpp) >> [C:\Users\Fdaniel\Source\Repos\geode-native2\build\cppcache\src\apache-geode.vcxproj] >> 31>ClCompile: >> >> C:\Users\Fdaniel\Source\Repos\geode-native2\src\cppcache\include\geode/utils.hpp(61) >> : see reference to class template instantiation >> 'apache::geode::client::dereference_equal_to<std::shared_ptr<_Ty>>' being >> compiled >> 4>ClCompile: >> >> C:\Users\Fdaniel\Source\Repos\geode-native2\src\cppcache\include\geode/utils.hpp(61) >> : see reference to class template instantiation >> 'apache::geode::client::dereference_equal_to<std::shared_ptr<_Ty>>' being >> compiled >> >> 31>C:\Users\Fdaniel\Source\Repos\geode-native2\src\cppcache\include\geode/utils.hpp(57): >> error C4430: missing type specifier - int assumed. Note: C++ does not >> support default-int (C:\Users\Fdaniel\Source\Repos\geode-native2\src\cppc >> ache\src\FunctionServiceImpl.cpp) >> [C:\Users\Fdaniel\Source\Repos\geode-native2\build\cppcache\src\apache-geode-static.vcxproj] >> >> 4>C:\Users\Fdaniel\Source\Repos\geode-native2\src\cppcache\include\geode/utils.hpp(57): >> error C4430: missing type specifier - int assumed. Note: C++ does not >> support default-int (C:\Users\Fdaniel\Source\Repos\geode-native2\src\cppc >> ache\src\FunctionServiceImpl.cpp) >> [C:\Users\Fdaniel\Source\Repos\geode-native2\build\cppcache\src\apache-geode.vcxproj] >> >> 31>C:\Users\Fdaniel\Source\Repos\geode-native2\src\cppcache\include\geode/utils.hpp(67): >> error C2144: syntax error : 'bool' should be preceded by ';' >> (C:\Users\Fdaniel\Source\Repos\geode-native2\src\cppcache\src\FunctionServiceImpl. >> cpp) >> [C:\Users\Fdaniel\Source\Repos\geode-native2\build\cppcache\src\apache-geode-static.vcxproj] >> >> 4>C:\Users\Fdaniel\Source\Repos\geode-native2\src\cppcache\include\geode/utils.hpp(67): >> error C2144: syntax error : 'bool' should be preceded by ';' >> (C:\Users\Fdaniel\Source\Repos\geode-native2\src\cppcache\src\FunctionServiceImpl. >> cpp) >> [C:\Users\Fdaniel\Source\Repos\geode-native2\build\cppcache\src\apache-geode.vcxproj] >> 31>ClCompile: >> >> C:\Users\Fdaniel\Source\Repos\geode-native2\src\cppcache\include\geode/utils.hpp(71) >> : see reference to class template instantiation >> 'apache::geode::client::dereference_equal_to<_T*>' being compiled >> 4>ClCompile: >> >> C:\Users\Fdaniel\Source\Repos\geode-native2\src\cppcache\include\geod >> e >> /utils.hpp(71) : see reference to class template instantiation >> 'apache::geode::client::dereference_equal_to<_T*>' being compiled >> >> >> Is the windows native client build stable? >> >> Thanks, >> Daniel >> >> This message and the information contained herein is proprietary and >> confidential and subject to the Amdocs policy statement, >> >> you may review at https://www.amdocs.com/about/email-disclaimer >> <https://www.amdocs.com/about/email-disclaimer> > This message and the information contained herein is proprietary and > confidential and subject to the Amdocs policy statement, > > you may review at https://www.amdocs.com/about/email-disclaimer > <https://www.amdocs.com/about/email-disclaimer> > This message and the information contained herein is proprietary and confidential and subject to the Amdocs policy statement, you may review at https://www.amdocs.com/about/email-disclaimer <https://www.amdocs.com/about/email-disclaimer>