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