Add Ubuntu build Docker image

Summary

The goal of this PR is to add the possibility to build OpenMW using Docker. Currently only Linux builds are supported. In the future, I will try to add Windows builds (there is Microsoft maintained Windows Docker images on Docker Hub).

There is still room for improvement but it is functional. Thank you for the great work you are doing for the Morrowind community 😄

Why?

Docker provide an easy, clean and idempotent way of building OpenMW, plus you don't have to install all the build dependencies on your machine.

Testing

Building the Docker image.

$> docker build -t openmw .
Sending build context to Docker daemon  4.608kB
Step 1/8 : FROM ubuntu
latest: Pulling from library/ubuntu
f3ef4ff62e0d: Pull complete 
Digest: sha256:a0d9e826ab87bd665cfc640598a871b748b4b70a01a4f3d174d4fb02adad07a9
Status: Downloaded newer image for ubuntu:latest
 ---> 597ce1600cf4
Step 2/8 : LABEL maintainer="Wassim DHIF <wassimdhif@gmail.com>"
 ---> Running in c1427d64c1e4
Removing intermediate container c1427d64c1e4
 ---> 1e80a37ee338
Step 3/8 : ENV NPROC=1
 ---> Running in 7b66ccf4c943
Removing intermediate container 7b66ccf4c943
 ---> c415f969a5b1
Step 4/8 : RUN apt-get update     && apt-get install -y --no-install-recommends software-properties-common apt-utils     && add-apt-repository ppa:openmw/openmw     && apt-get update     && apt-get install -y --no-install-recommends openmw openmw-launcher     && apt-get install -y --no-install-recommends git build-essential cmake     libopenal-dev libopenscenegraph-dev libbullet-dev libsdl2-dev     libmygui-dev libunshield-dev liblz4-dev libtinyxml-dev libqt5opengl5-dev     libboost-filesystem-dev libboost-program-options-dev libboost-iostreams-dev     libavcodec-dev libavformat-dev libavutil-dev libswscale-dev libswresample-dev     librecastnavigation-dev libluajit-5.1-dev
 ---> Running in e697828a75ef
Get:1 http://archive.ubuntu.com/ubuntu focal InRelease [265 kB]
Get:2 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Get:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
Get:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease [101 kB]
Get:5 http://archive.ubuntu.com/ubuntu focal/universe amd64 Packages [11.3 MB]
Get:6 http://archive.ubuntu.com/ubuntu focal/restricted amd64 Packages [33.4 kB]
Get:7 http://archive.ubuntu.com/ubuntu focal/multiverse amd64 Packages [177 kB]
Get:8 http://archive.ubuntu.com/ubuntu focal/main amd64 Packages [1275 kB]
Get:9 http://archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 Packages [33.3 kB]
Get:10 http://archive.ubuntu.com/ubuntu focal-updates/restricted amd64 Packages [632 kB]
Get:11 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [1084 kB]
Get:12 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [1582 kB]
Get:13 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages [1135 kB]
Get:14 http://archive.ubuntu.com/ubuntu focal-backports/universe amd64 Packages [6310 B]
Get:15 http://archive.ubuntu.com/ubuntu focal-backports/main amd64 Packages [2668 B]
Get:16 http://security.ubuntu.com/ubuntu focal-security/restricted amd64 Packages [581 kB]
Get:17 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 Packages [30.1 kB]
Get:18 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages [796 kB]
Fetched 19.3 MB in 2s (10.5 MB/s)
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
  ca-certificates dbus dbus-user-session dconf-gsettings-backend dconf-service
  distro-info-data gir1.2-glib-2.0 gir1.2-packagekitglib-1.0 glib-networking
  glib-networking-common glib-networking-services gpg gpgconf
  gsettings-desktop-schemas iso-codes libapparmor1 libappstream4 libargon2-1
  libassuan0 libbrotli1 libcap2 libcap2-bin libcryptsetup12 libdbus-1-3
  libdconf1 libdevmapper1.02.1 libelf1 libexpat1 libgirepository-1.0-1
  libglib2.0-0 libglib2.0-bin libglib2.0-data libgssapi-krb5-2
  libgstreamer1.0-0 libicu66 libip4tc2 libjson-c4 libk5crypto3 libkeyutils1
  libkmod2 libkrb5-3 libkrb5support0 liblmdb0 libmpdec2 libpackagekit-glib2-18
  libpam-systemd libpolkit-agent-1-0 libpolkit-gobject-1-0 libproxy1v5 libpsl5
  libpython3-stdlib libpython3.8-minimal libpython3.8-stdlib libreadline8
  libsoup2.4-1 libsqlite3-0 libssl1.1 libstemmer0d libxml2 libyaml-0-2
  lsb-release mime-support openssl packagekit policykit-1 python-apt-common
  python3 python3-apt python3-certifi python3-chardet python3-dbus python3-gi
  python3-idna python3-minimal python3-pkg-resources python3-requests
  python3-requests-unixsocket python3-six python3-software-properties
  python3-urllib3 python3.8 python3.8-minimal readline-common systemd
  systemd-sysv systemd-timesyncd tzdata
Suggested packages:
  isoquery krb5-doc krb5-user gstreamer1.0-tools appstream python3-doc
  python3-tk python3-venv python3-apt-dbg python-apt-doc python-dbus-doc
  python3-dbus-dbg python3-setuptools python3-cryptography python3-openssl
  python3-socks python3.8-venv python3.8-doc binutils binfmt-support
  readline-doc systemd-container
Recommended packages:
  gnupg libpam-cap dmsetup shared-mime-info xdg-user-dirs krb5-locales
  publicsuffix file xz-utils packagekit-tools unattended-upgrades
  networkd-dispatcher libnss-systemd
The following NEW packages will be installed:
  apt-utils ca-certificates dbus dbus-user-session dconf-gsettings-backend
  dconf-service distro-info-data gir1.2-glib-2.0 gir1.2-packagekitglib-1.0
  glib-networking glib-networking-common glib-networking-services gpg gpgconf
  gsettings-desktop-schemas iso-codes libapparmor1 libappstream4 libargon2-1
  libassuan0 libbrotli1 libcap2 libcap2-bin libcryptsetup12 libdbus-1-3
  libdconf1 libdevmapper1.02.1 libelf1 libexpat1 libgirepository-1.0-1
  libglib2.0-0 libglib2.0-bin libglib2.0-data libgssapi-krb5-2
  libgstreamer1.0-0 libicu66 libip4tc2 libjson-c4 libk5crypto3 libkeyutils1
  libkmod2 libkrb5-3 libkrb5support0 liblmdb0 libmpdec2 libpackagekit-glib2-18
  libpam-systemd libpolkit-agent-1-0 libpolkit-gobject-1-0 libproxy1v5 libpsl5
  libpython3-stdlib libpython3.8-minimal libpython3.8-stdlib libreadline8
  libsoup2.4-1 libsqlite3-0 libssl1.1 libstemmer0d libxml2 libyaml-0-2
  lsb-release mime-support openssl packagekit policykit-1 python-apt-common
  python3 python3-apt python3-certifi python3-chardet python3-dbus python3-gi
  python3-idna python3-minimal python3-pkg-resources python3-requests
  python3-requests-unixsocket python3-six python3-software-properties
  python3-urllib3 python3.8 python3.8-minimal readline-common
  software-properties-common systemd systemd-sysv systemd-timesyncd tzdata
0 upgraded, 89 newly installed, 0 to remove and 4 not upgraded.
Need to get 31.5 MB of archives.
After this operation, 133 MB of additional disk space will be used.
Get:1 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libssl1.1 amd64 1.1.1f-1ubuntu2.8 [1320 kB]
Get:2 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 libpython3.8-minimal amd64 3.8.10-0ubuntu1~20.04.1 [717 kB]
Get:3 http://archive.ubuntu.com/ubuntu focal/main amd64 libexpat1 amd64 2.2.9-1build1 [73.3 kB]
[]
Setting up libpulse-dev:amd64 (1:13.99.1-1ubuntu3.11) ...
Setting up libsdl2-dev:amd64 (2.0.10+dfsg1-3) ...
Removing intermediate container e697828a75ef
 ---> 0e959a613f60
Step 5/8 : COPY build.sh /build.sh
 ---> 0fc241d8f61d
Step 6/8 : RUN mkdir /openmw
 ---> Running in bfe6e2f3b8f1
Removing intermediate container bfe6e2f3b8f1
 ---> 64a471ce2442
Step 7/8 : WORKDIR /openmw
 ---> Running in a7018f6be878
Removing intermediate container a7018f6be878
 ---> 3be98f23eeb3
Step 8/8 : ENTRYPOINT ["/build.sh"]
 ---> Running in 92c4377594b6
Removing intermediate container 92c4377594b6
 ---> fd76b244b38a
Successfully built fd76b244b38a
Successfully tagged openmw:latest

Building OpenMW

$> docker run -v ~/Projets/openmw:/openmw:Z -e NPROC=2 -it openmw
+ mkdir build
+ cd build
+ cmake ../
-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring OpenMW...
-- Found Git: /usr/bin/git (found version "2.25.1") 
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/libOpenGL.so   
-- Found LZ4: /usr/lib/x86_64-linux-gnu/liblz4.so  
-- Found FFmpeg_AVCODEC 58.54.100
-- Found FFmpeg_AVFORMAT 58.29.100
-- Found FFmpeg_AVUTIL 56.31.100
-- Found FFmpeg_SWSCALE 5.5.100
-- Found FFmpeg_SWRESAMPLE 3.5.100
-- Found FFmpeg: /usr/lib/x86_64-linux-gnu/libavcodec.so;/usr/lib/x86_64-linux-gnu/libavformat.so;/usr/lib/x86_64-linux-gnu/libavutil.so;/usr/lib/x86_64-linux-gnu/libswscale.so;/usr/lib/x86_64-linux-gnu/libswresample.so  found components: AVCODEC AVFORMAT AVUTIL SWSCALE SWRESAMPLE 
-- Found Bullet: LinearMath-float64;Bullet3Common-float64;BulletInverseDynamics-float64;BulletCollision-float64;BulletDynamics-float64;BulletSoftBody-float64 2.88
-- Checking if Bullet uses double precision
-- Bullet uses double precision
-- Found LIBUNSHIELD 
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Found osgDB: /usr/lib/x86_64-linux-gnu/libosgDB.so  
-- Found osgViewer: /usr/lib/x86_64-linux-gnu/libosgViewer.so  
-- Found osgText: /usr/lib/x86_64-linux-gnu/libosgText.so  
-- Found osgGA: /usr/lib/x86_64-linux-gnu/libosgGA.so  
-- Found osgParticle: /usr/lib/x86_64-linux-gnu/libosgParticle.so  
-- Found osgUtil: /usr/lib/x86_64-linux-gnu/libosgUtil.so  
-- Found osgFX: /usr/lib/x86_64-linux-gnu/libosgFX.so  
-- Found osgShadow: /usr/lib/x86_64-linux-gnu/libosgShadow.so  
-- Found osgAnimation: /usr/lib/x86_64-linux-gnu/libosgAnimation.so  
-- Found osg: /usr/lib/x86_64-linux-gnu/libosg.so  
-- Found OpenThreads: /usr/lib/x86_64-linux-gnu/libOpenThreads.so  
-- Found OpenSceneGraph: /usr/lib/x86_64-linux-gnu/libosgDB.so;/usr/lib/x86_64-linux-gnu/libosgViewer.so;/usr/lib/x86_64-linux-gnu/libosgText.so;/usr/lib/x86_64-linux-gnu/libosgGA.so;/usr/lib/x86_64-linux-gnu/libosgParticle.so;/usr/lib/x86_64-linux-gnu/libosgUtil.so;/usr/lib/x86_64-linux-gnu/libosgFX.so;/usr/lib/x86_64-linux-gnu/libosgShadow.so;/usr/lib/x86_64-linux-gnu/libosgAnimation.so;/usr/lib/x86_64-linux-gnu/libosg.so;/usr/lib/x86_64-linux-gnu/libOpenThreads.so (found suitable version "3.6.5", minimum required is "3.4.0") 
-- Found Boost: /usr/include (found suitable version "1.71.0", minimum required is "1.6.2") found components: system filesystem program_options iostreams regex 
-- Found MyGUI 3.2.2
-- Found SDL2 2.0.10
-- Found OpenAL: /usr/lib/x86_64-linux-gnu/libopenal.so  
-- Found LuaJit 
-- Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE) 
-- Configuring done
-- Generating done
-- Build files have been written to: /openmw/build
+ make -j 2
Scanning dependencies of target osg-ffmpeg-videoplayer
Scanning dependencies of target local_tinyxml
[  0%] Building CXX object extern/oics/CMakeFiles/local_tinyxml.dir/tinyxml.cpp.o
[  0%] Building CXX object extern/osg-ffmpeg-videoplayer/CMakeFiles/osg-ffmpeg-videoplayer.dir/videoplayer.cpp.o
[  0%] Building CXX object extern/oics/CMakeFiles/local_tinyxml.dir/tinyxmlparser.cpp.o
[  0%] Building CXX object extern/oics/CMakeFiles/local_tinyxml.dir/tinyxmlerror.cpp.o
[  0%] Building CXX object extern/oics/CMakeFiles/local_tinyxml.dir/tinystr.cpp.o
[  0%] Linking CXX static library liblocal_tinyxml.a
[  0%] Built target local_tinyxml
Scanning dependencies of target osgQt
[  0%] Building CXX object extern/osgQt/CMakeFiles/osgQt.dir/GraphicsWindowQt.cpp.o
[  0%] Building CXX object extern/osg-ffmpeg-videoplayer/CMakeFiles/osg-ffmpeg-videoplayer.dir/videostate.cpp.o
[  0%] Building CXX object extern/osg-ffmpeg-videoplayer/CMakeFiles/osg-ffmpeg-videoplayer.dir/audiodecoder.cpp.o
[  0%] Linking CXX static library libosg-ffmpeg-videoplayer.a
[  1%] Linking CXX static library libosgQt.a
[  1%] Built target osg-ffmpeg-videoplayer
Scanning dependencies of target git-version
[  1%] Built target osgQt
Scanning dependencies of target Recast
-- OpenMW version 0.48.0
[  1%] Built target git-version
[  1%] Building CXX object _deps/recastnavigation-build/Recast/CMakeFiles/Recast.dir/Source/Recast.cpp.o
Scanning dependencies of target Detour
[  1%] Building CXX object _deps/recastnavigation-build/Detour/CMakeFiles/Detour.dir/Source/DetourAlloc.cpp.o
[  1%] Building CXX object _deps/recastnavigation-build/Detour/CMakeFiles/Detour.dir/Source/DetourAssert.cpp.o
[  1%] Building CXX object _deps/recastnavigation-build/Detour/CMakeFiles/Detour.dir/Source/DetourCommon.cpp.o
[  1%] Building CXX object _deps/recastnavigation-build/Detour/CMakeFiles/Detour.dir/Source/DetourNavMesh.cpp.o
[  1%] Building CXX object _deps/recastnavigation-build/Recast/CMakeFiles/Recast.dir/Source/RecastAlloc.cpp.o
[  1%] Building CXX object _deps/recastnavigation-build/Recast/CMakeFiles/Recast.dir/Source/RecastArea.cpp.o
[  1%] Building CXX object _deps/recastnavigation-build/Recast/CMakeFiles/Recast.dir/Source/RecastAssert.cpp.o
[  1%] Building CXX object _deps/recastnavigation-build/Recast/CMakeFiles/Recast.dir/Source/RecastContour.cpp.o
[  2%] Building CXX object _deps/recastnavigation-build/Detour/CMakeFiles/Detour.dir/Source/DetourNavMeshBuilder.cpp.o
[  2%] Building CXX object _deps/recastnavigation-build/Detour/CMakeFiles/Detour.dir/Source/DetourNavMeshQuery.cpp.o
[  2%] Building CXX object _deps/recastnavigation-build/Recast/CMakeFiles/Recast.dir/Source/RecastFilter.cpp.o
[  3%] Building CXX object _deps/recastnavigation-build/Recast/CMakeFiles/Recast.dir/Source/RecastLayers.cpp.o
[  3%] Building CXX object _deps/recastnavigation-build/Recast/CMakeFiles/Recast.dir/Source/RecastMesh.cpp.o
[  3%] Building CXX object _deps/recastnavigation-build/Detour/CMakeFiles/Detour.dir/Source/DetourNode.cpp.o
[  3%] Linking CXX static library libDetour.a
[  3%] Built target Detour
[  3%] Building CXX object _deps/recastnavigation-build/Recast/CMakeFiles/Recast.dir/Source/RecastMeshDetail.cpp.o
[  3%] Building CXX object _deps/recastnavigation-build/Recast/CMakeFiles/Recast.dir/Source/RecastRasterization.cpp.o
[  3%] Building CXX object _deps/recastnavigation-build/Recast/CMakeFiles/Recast.dir/Source/RecastRegion.cpp.o
Scanning dependencies of target oics
[  3%] Building CXX object extern/oics/CMakeFiles/oics.dir/ICSChannel.cpp.o
[  3%] Linking CXX static library libRecast.a
[  3%] Built target Recast
Scanning dependencies of target DetourTileCache
[  3%] Building CXX object _deps/recastnavigation-build/DetourTileCache/CMakeFiles/DetourTileCache.dir/Source/DetourTileCache.cpp.o
[  4%] Building CXX object extern/oics/CMakeFiles/oics.dir/ICSControl.cpp.o
[  4%] Building CXX object _deps/recastnavigation-build/DetourTileCache/CMakeFiles/DetourTileCache.dir/Source/DetourTileCacheBuilder.cpp.o
[  4%] Building CXX object extern/oics/CMakeFiles/oics.dir/ICSInputControlSystem.cpp.o
[  4%] Linking CXX static library libDetourTileCache.a
[  4%] Built target DetourTileCache
Scanning dependencies of target DebugUtils
[  4%] Building CXX object _deps/recastnavigation-build/DebugUtils/CMakeFiles/DebugUtils.dir/Source/DebugDraw.cpp.o
[  4%] Building CXX object _deps/recastnavigation-build/DebugUtils/CMakeFiles/DebugUtils.dir/Source/DetourDebugDraw.cpp.o
[  4%] Building CXX object _deps/recastnavigation-build/DebugUtils/CMakeFiles/DebugUtils.dir/Source/RecastDebugDraw.cpp.o
[  4%] Building CXX object _deps/recastnavigation-build/DebugUtils/CMakeFiles/DebugUtils.dir/Source/RecastDump.cpp.o
[  4%] Linking CXX static library libDebugUtils.a
[  4%] Built target DebugUtils
[  4%] Building CXX object extern/oics/CMakeFiles/oics.dir/ICSInputControlSystem_keyboard.cpp.o
[  4%] Building CXX object extern/oics/CMakeFiles/oics.dir/ICSInputControlSystem_mouse.cpp.o
[  4%] Building CXX object extern/oics/CMakeFiles/oics.dir/ICSInputControlSystem_joystick.cpp.o
Scanning dependencies of target components
[  4%] Linking CXX static library liboics.a
[  4%] Building CXX object components/CMakeFiles/components.dir/lua/luastate.cpp.o
[  4%] Built target oics
[  4%] Building CXX object components/CMakeFiles/components.dir/lua/scriptscontainer.cpp.o
[  5%] Building CXX object components/CMakeFiles/components.dir/lua/utilpackage.cpp.o
[...]
[ 93%] Building CXX object apps/opencs/CMakeFiles/openmw-cs.dir/qrc_resources.cpp.o
[ 93%] Building CXX object apps/opencs/CMakeFiles/openmw-cs.dir/qrc_launcher.cpp.o
[ 94%] Building CXX object apps/openmw/CMakeFiles/openmw.dir/mwmechanics/actor.cpp.o
[ 94%] Linking CXX executable ../../openmw-cs
[ 94%] Building CXX object apps/openmw/CMakeFiles/openmw.dir/mwmechanics/summoning.cpp.o
[ 94%] Built target openmw-cs
[ 94%] Generating ui_installationpage.h
[ 94%] Generating qrc_wizard.cpp
[ 94%] Generating ui_componentselectionpage.h
[ 94%] Generating ui_conclusionpage.h
[ 94%] Generating ui_existinginstallationpage.h
[ 95%] Generating ui_importpage.h
[ 95%] Generating ui_installationtargetpage.h
[ 95%] Generating ui_intropage.h
[ 95%] Generating ui_languageselectionpage.h
[ 95%] Generating ui_methodselectionpage.h
Scanning dependencies of target openmw-wizard
[ 95%] Building CXX object apps/wizard/CMakeFiles/openmw-wizard.dir/openmw-wizard_autogen/mocs_compilation.cpp.o
[ 95%] Building CXX object apps/wizard/CMakeFiles/openmw-wizard.dir/componentselectionpage.cpp.o
[ 95%] Building CXX object apps/openmw/CMakeFiles/openmw.dir/mwmechanics/character.cpp.o
[ 95%] Building CXX object apps/wizard/CMakeFiles/openmw-wizard.dir/conclusionpage.cpp.o
[ 95%] Building CXX object apps/wizard/CMakeFiles/openmw-wizard.dir/existinginstallationpage.cpp.o
[ 95%] Building CXX object apps/openmw/CMakeFiles/openmw.dir/mwmechanics/actors.cpp.o
[ 96%] Building CXX object apps/wizard/CMakeFiles/openmw-wizard.dir/importpage.cpp.o
[ 96%] Building CXX object apps/wizard/CMakeFiles/openmw-wizard.dir/inisettings.cpp.o
[ 96%] Building CXX object apps/wizard/CMakeFiles/openmw-wizard.dir/installationtargetpage.cpp.o
[ 96%] Building CXX object apps/openmw/CMakeFiles/openmw.dir/mwmechanics/objects.cpp.o
[ 96%] Building CXX object apps/wizard/CMakeFiles/openmw-wizard.dir/intropage.cpp.o
[ 96%] Building CXX object apps/openmw/CMakeFiles/openmw.dir/mwmechanics/trading.cpp.o
[ 96%] Building CXX object apps/wizard/CMakeFiles/openmw-wizard.dir/languageselectionpage.cpp.o
[ 96%] Building CXX object apps/openmw/CMakeFiles/openmw.dir/mwmechanics/weaponpriority.cpp.o
[ 96%] Building CXX object apps/wizard/CMakeFiles/openmw-wizard.dir/main.cpp.o
[ 96%] Building CXX object apps/openmw/CMakeFiles/openmw.dir/mwmechanics/spellpriority.cpp.o
[ 96%] Building CXX object apps/wizard/CMakeFiles/openmw-wizard.dir/mainwizard.cpp.o
[ 96%] Building CXX object apps/openmw/CMakeFiles/openmw.dir/mwmechanics/weapontype.cpp.o
[ 97%] Building CXX object apps/openmw/CMakeFiles/openmw.dir/mwmechanics/spellutil.cpp.o
[ 97%] Building CXX object apps/wizard/CMakeFiles/openmw-wizard.dir/methodselectionpage.cpp.o
[ 97%] Building CXX object apps/openmw/CMakeFiles/openmw.dir/mwmechanics/spellabsorption.cpp.o
[ 97%] Building CXX object apps/wizard/CMakeFiles/openmw-wizard.dir/utils/componentlistwidget.cpp.o
[ 97%] Building CXX object apps/wizard/CMakeFiles/openmw-wizard.dir/installationpage.cpp.o
[ 97%] Building CXX object apps/openmw/CMakeFiles/openmw.dir/mwmechanics/spelleffects.cpp.o
[ 98%] Building CXX object apps/wizard/CMakeFiles/openmw-wizard.dir/unshield/unshieldworker.cpp.o
[ 98%] Building CXX object apps/wizard/CMakeFiles/openmw-wizard.dir/qrc_wizard.cpp.o
[ 98%] Linking CXX executable ../../openmw-wizard
[ 98%] Built target openmw-wizard
[ 98%] Building CXX object apps/openmw/CMakeFiles/openmw.dir/mwstate/statemanagerimp.cpp.o
[ 98%] Building CXX object apps/openmw/CMakeFiles/openmw.dir/mwstate/charactermanager.cpp.o
[ 98%] Building CXX object apps/openmw/CMakeFiles/openmw.dir/mwstate/character.cpp.o
[ 98%] Building CXX object apps/openmw/CMakeFiles/openmw.dir/mwstate/quicksavemanager.cpp.o
[ 98%] Building CXX object apps/openmw/CMakeFiles/openmw.dir/mwbase/environment.cpp.o
[ 98%] Building CXX object apps/openmw/CMakeFiles/openmw.dir/main.cpp.o
[ 98%] Building CXX object apps/openmw/CMakeFiles/openmw.dir/engine.cpp.o
[100%] Linking CXX executable ../../openmw
[100%] Built target openmw
Edited by Wassim Dhif

Merge request reports

Loading