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\apache-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\apache-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\geode > /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>