How to build on linux? [unstable 2.0, CMake]
Hi,
Originally I used to build this project using the following command line:
qmake-qt4 -r ../doomsday.pro PREFIX=/mnt/games/native_games/doomsday CONFIG+=deng_notools
I have not built it for a while and it appears that the doomsday.pro no longer exists?
I assume that the project has moved away from qmake so I went to the distrib folder and run the following command:
python platform_release.py
This starts configuring as expected but fails with the following problem:
Have I skipped a step? What is the correct procedure for building from source nowadays?
Thanks
Originally I used to build this project using the following command line:
qmake-qt4 -r ../doomsday.pro PREFIX=/mnt/games/native_games/doomsday CONFIG+=deng_notools
I have not built it for a while and it appears that the doomsday.pro no longer exists?
I assume that the project has moved away from qmake so I went to the distrib folder and run the following command:
python platform_release.py
This starts configuring as expected but fails with the following problem:
CMake Error at sdk/libgui/CMakeLists.txt:17 (add_subdirectory):
The source directory
/mnt/games/native_games/games_source/deng-code/doomsday/external/assimp
does not contain a CMakeLists.txt file.
CMake Error at sdk/libgui/CMakeLists.txt:18 (set_property):
set_property could not find TARGET assimp. Perhaps it has not yet been
created.
Have I skipped a step? What is the correct procedure for building from source nowadays?
Thanks
Comments
The platform_release.py script is part of our autobuilder system and probably will not do exactly what you'd like, since it produces a distribution package rather than just doing a build.
Assimp is a Git submodule, so if you are building in a Git repository, you need to git submodule update --init. This will check out the appropriate version of the Assimp library into doomsday/external/assimp.
We haven't updated the wiki with new build instructions yet, since the current stable version is still using the old build mechanism. However, when you have the Assimp sources checked out, it's pretty much a standard CMake build:
Many thanks for your response. The build now gets past the assimp issue but seems to have a new one.
Cmake appears to invoke some python scripts that are expecting some zip files but in linux they appear to be directories?
I get the same issue if I run the autobuild.py in he distrib folder.
Should linux treat the .pack as an extension rather than a folder name?
Did you create a separate build directory and run CMake from there? It should not be trying to overwrite anything the source tree.
cmake ../deng-code/doomsday/CMakeLists.txt
cmake -DCMAKE_INSTALL_PREFIX=$INST_PATH ../doomsday
cmake now functions correctly and a Makefile is created. Now make fails @ 27% with the following errors:
std::function errors seem to be because "--std=c++11" is missing? I am not sure but it looks like part of assimp disables this as part of its build process?
I recommend you set DENG_ENABLE_COTIRE to NO.
On Linux, "ccache" is very helpful if you do repeated builds. Doomsday's CMake config will autodetect if you have ccache installed and use it.
Out of interest is there a way to remove the 35FPS frame rate limiter?