kroyee / SpeedBlocks

Fast paced tetris game cloned from Cultris II
GNU Lesser General Public License v3.0
11 stars 7 forks source link

CMake superbuild #92

Closed rmcat closed 7 years ago

rmcat commented 7 years ago

Removed boost and the MinGW compatibility fixes. The project can still be built under MinGW with a recent version of g++.

Added the option for a superbuild (see https://github.com/Sarcasm/cmake-superbuild). The option is off by default. The superbuild will clone the git repositories of SFML, TGUI and curl and build each one. Currently, this only works on Windows. On Linux. curl does not build under cmake due to a dependency on openssl. This isn't of much concern since the Linux build process is relatively straightforward. The main problem on Windows was obtaining curl.

mkdir vs2015
cd vs2015
cmake -DBUILD_THIRD_PARTY=ON -G "Visual Studio 14" ..
cmake --build . [--config Release]
mkdir mingw
cd mingw
cmake -DBUILD_THIRD_PARTY=ON -G "MinGW Makefiles" ..
cmake --build .
kroyee commented 7 years ago

Very good. I'll go ahead and update the compiler on my VM.

This PR changes the lines 36-38 back to what they where before. (in CMakeList.txt) I'm not sure if that was intended?

The reason I put them there is if you run cmake-gui under Windows, and you have SFML/TGUI built but it can not be found, you will get a much more clear indication of what you need to set, namely SFML_ROOT/TGUI_ROOT. For some reason it asks you to set the include dir, but when you set it cmake again fails to find the library.

As far as I understand it would be good to keep this even if you have a superbuild option.

rmcat commented 7 years ago

The reason I put them there is if you run cmake-gui under Windows, and you have SFML/TGUI built but it can not be found, you will get a much more clear indication of what you need to set, namely SFML_ROOT/TGUI_ROOT.

Ah I see. I changed it back to how it was before.

For some reason it asks you to set the include dir, but when you set it cmake again fails to find the library.

Is this for Curl? If so, this should be fixed in the latest commit. The find_package(CURL) call overwrites CURL_INCLUDE_DIR and CURL_LIBRARY, so I used CURL_INCLUDE_DIRS and CURL_LIBRARIES instead, which are the variables FindCURL.cmake sets at the end.