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\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>
> 

Reply via email to