AshamaneProject / AshamaneCore

AshamaneCore Open Source MMO Framework (master = 9.0.2.36949, bfa = 8.3.7.35284, legion = 7.3.5.26972)
GNU General Public License v2.0
321 stars 358 forks source link

boost and cmake #187

Closed Grimmy347 closed 5 years ago

Grimmy347 commented 5 years ago

Description: what version of boost and cmake does this use? I am getting errors when trying to compile in visual studios with things like asio CHANGEME Description of the problem or issue here. Wowhead link will be appreciated.

Current behaviour:

CHANGEME Tell us what happens. If this is a crash, post the crashlog (upload to https://gist.github.com/). Do not post entire log here.

Expected behaviour:

CHANGEME Tell us what should happen instead.

Project(s): <-- Mandatory

TC rev. hash/commit:

CHANGEME Mandatory if Project == compiled master repo from Git, found it in first line of Server.log

Database version

CHANGEME What DB do you use, TDB, ADB, other.

Operating system: CHANGEME OS

Grimmy347 commented 5 years ago

right now I get this when trying to compile13>C:\Program Files\boost\boost/process/detail/windows/async_pipe.hpp(102): error C2039: 'get_io_context': is not a member of 'boost::asio::windows::stream_handle' (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\Program Files\boost\boost/asio/windows/stream_handle.hpp(50): note: see declaration of 'boost::asio::windows::stream_handle' (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\Program Files\boost\boost/process/detail/windows/async_pipe.hpp(102): error C2512: 'boost::asio::windows::stream_handle': no appropriate default constructor available (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\Program Files\boost\boost/process/detail/windows/async_pipe.hpp(102): note: No constructor could take the source type, or constructor overload resolution was ambiguous (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\Program Files\boost\boost/process/detail/windows/async_pipe.hpp(107): error C2039: 'get_io_context': is not a member of 'boost::asio::windows::stream_handle' (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\Program Files\boost\boost/asio/windows/stream_handle.hpp(50): note: see declaration of 'boost::asio::windows::stream_handle' (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\Program Files\boost\boost/process/detail/windows/async_pipe.hpp(107): error C2512: 'boost::asio::windows::stream_handle': no appropriate default constructor available (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\Program Files\boost\boost/process/detail/windows/async_pipe.hpp(107): note: No constructor could take the source type, or constructor overload resolution was ambiguous (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\Program Files\boost\boost/process/detail/windows/async_pipe.hpp(115): error C2039: 'get_io_context': is not a member of 'boost::asio::windows::stream_handle' (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\Program Files\boost\boost/asio/windows/stream_handle.hpp(50): note: see declaration of 'boost::asio::windows::stream_handle' (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\Program Files\boost\boost/process/detail/windows/async_pipe.hpp(115): error C2512: 'boost::asio::windows::stream_handle': no appropriate default constructor available (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\Program Files\boost\boost/process/detail/windows/async_pipe.hpp(115): note: No constructor could take the source type, or constructor overload resolution was ambiguous (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\Program Files\boost\boost/process/detail/windows/async_pipe.hpp(120): error C2039: 'get_io_context': is not a member of 'boost::asio::windows::stream_handle' (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\Program Files\boost\boost/asio/windows/stream_handle.hpp(50): note: see declaration of 'boost::asio::windows::stream_handle' (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\Program Files\boost\boost/process/detail/windows/async_pipe.hpp(120): error C2512: 'boost::asio::windows::stream_handle': no appropriate default constructor available (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\Program Files\boost\boost/process/detail/windows/async_pipe.hpp(120): note: No constructor could take the source type, or constructor overload resolution was ambiguous (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\Program Files\boost\boost/process/detail/windows/async_pipe.hpp(131): error C2039: 'get_io_context': is not a member of 'boost::asio::windows::stream_handle' (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\Program Files\boost\boost/asio/windows/stream_handle.hpp(50): note: see declaration of 'boost::asio::windows::stream_handle' (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\Program Files\boost\boost/process/detail/windows/async_pipe.hpp(133): error C2039: 'get_io_context': is not a member of 'boost::asio::windows::stream_handle' (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\Program Files\boost\boost/asio/windows/stream_handle.hpp(50): note: see declaration of 'boost::asio::windows::stream_handle' (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\Program Files\boost\boost/process/detail/windows/async_pipe.hpp(240): error C2039: 'get_io_context': is not a member of 'boost::asio::windows::stream_handle' (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\Program Files\boost\boost/asio/windows/stream_handle.hpp(50): note: see declaration of 'boost::asio::windows::stream_handle' (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\Program Files\boost\boost/process/detail/windows/async_pipe.hpp(241): error C2039: 'get_io_context': is not a member of 'boost::asio::windows::stream_handle' (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\Program Files\boost\boost/asio/windows/stream_handle.hpp(50): note: see declaration of 'boost::asio::windows::stream_handle' (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\Program Files\boost\boost/process/detail/windows/async_pipe.hpp(240): error C2512: 'boost::asio::windows::stream_handle::stream_handle': no appropriate default constructor available (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\Program Files\boost\boost/process/detail/windows/async_pipe.hpp(241): error C2512: 'boost::asio::windows::stream_handle::stream_handle': no appropriate default constructor available (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\Program Files\boost\boost/process/detail/windows/async_pipe.hpp(340): error C2039: 'get_io_context': is not a member of 'boost::asio::windows::stream_handle' (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\Program Files\boost\boost/asio/windows/stream_handle.hpp(50): note: see declaration of 'boost::asio::windows::stream_handle' (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\Program Files\boost\boost/process/detail/windows/async_pipe.hpp(340): error C2440: '<function-style-cast>': cannot convert from 'boost::winapi::HANDLE_' to 'boost::asio::windows::stream_handle' (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\Program Files\boost\boost/process/detail/windows/async_pipe.hpp(340): note: No constructor could take the source type, or constructor overload resolution was ambiguous (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\Program Files\boost\boost/process/detail/windows/async_pipe.hpp(341): error C2039: 'get_io_context': is not a member of 'boost::asio::windows::stream_handle' (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\Program Files\boost\boost/asio/windows/stream_handle.hpp(50): note: see declaration of 'boost::asio::windows::stream_handle' (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\Program Files\boost\boost/process/detail/windows/async_pipe.hpp(341): error C2440: '<function-style-cast>': cannot convert from 'boost::winapi::HANDLE_' to 'boost::asio::windows::stream_handle' (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\Program Files\boost\boost/process/detail/windows/async_pipe.hpp(341): note: No constructor could take the source type, or constructor overload resolution was ambiguous (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\legionserver\src\common\Utilities\StartProcess.cpp(28): error C2039: 'initializers': is not a member of 'boost::process' 13>C:\Program Files\boost\boost/process/start_dir.hpp(43): note: see declaration of 'boost::process'

Grimmy347 commented 5 years ago

im using cmake 3.15.4 and boost 1.67

Grimmy347 commented 5 years ago

if i try to use a higher version of boost then cmake does not want to recognize my boost version

LukeRekt commented 5 years ago

check if boost path is set to C:/local/boost_1_67_0 instead of C:\local\boost_1_66_0

DJBoxer commented 5 years ago

im using cmake 3.15.4 and boost 1.67

try using cmake 3.15.2 and Boost 1.67 that was working for me in windows. Also your error is related to old version of boost.

you can refer to here for reference (Linux related) but same scenario https://github.com/AshamaneProject/AshamaneCore/issues/169#issuecomment-529101346

Grimmy347 commented 5 years ago

CMake Warning (dev) at dep/boost/CMakeLists.txt:41 (find_package): So when I run cmake with 1.67 it detects boost but I get the following warning.

`Policy CMP0074 is not set: find_package uses _ROOT variables. Run "cmake --help-policy CMP0074" for policy details. Use the cmake_policy command to set the policy and suppress this warning.

Environment variable Boost_ROOT is set to:

C:/local/boost_1_67_0

For compatibility, CMake is ignoring the variable. This warning is for project developers. Use -Wno-dev to suppress it.`

When I run visual studios I get this:

13>C:\local\boost_1_67_0\boost/process/detail/windows/async_pipe.hpp(102): error C2039: 'get_io_context': is not a member of 'boost::asio::windows::stream_handle' (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp) 13>C:\local\boost_1_67_0\boost/asio/windows/stream_handle.hpp(50): note: see declaration of 'boost::asio::windows::stream_handle' (compiling source file C:\legionserver\src\common\Utilities\StartProcess.cpp)

That makes it look like it is using backslash rather than forward slash. In environment variables it is set to : Variable name: Boost_ROOT Variable value: C:/local/boost_1_67_0

Grimmy347 commented 5 years ago

Nice, I had to use a very specific version of boost to get this to work. First I had to restart after updating the system variable. Then I had to delete the copy of ashamanecore and reclone it and then I had to install boost from this exact version: [https://sourceforge.net/projects/boost/files/boost-binaries/1.67.0/boost_1_67_0-msvc-14.1-64.exe/download]

Grimmy347 commented 5 years ago

It should probably be included on the readme what version to use so someone does not have the same issue as me in the future. Thank you so much for the help though!!