Talk:Development Environment Setup

From OpenMW Wiki
Jump to navigation Jump to search

Mac instructions

The Mac instructions are not working for me at all (Mac OS X 10.12.5, Xcode 8.3.3, plus I use MacPorts and Homebrew, and even have some Fink stuff around). I have the pre-built dependencies. Here's what I've worked through so far:

First, I ended up with a ld: library not found for -lcrt1.o error, which in turn caused The C compiler "/Developer/usr/bin/cc" is not able to compile a simple test program., which ultimately caused the cmake to fail. This is further than I got before, though, when I wasn't using the pre-built dependencies.

The two tips I found about this (an old one, to run xcode-select --install, and a newer one to add some lines to qdevice.pri) did not resolve the problem.

There's also couldn't understand kern.osversion `16.6.0'. Some threads say it's just a warning and shouldn't matter. Another suggested using gcc from MacPorts, which brings me full circle. <sigh> Not sure what version of gcc this will want (MacPorts provides 4.3 through 4.9, and 5 through 8. The one in my path already is 4.2.1. Homebrew also offers 4.6 through 4.9, 5, and 6.

However, I noticed the gcc in my path was the one in /Developer/usr/bin rather than /usr/bin, so I changed the path to reverse this order. Got a little further; it doesn't produce that kern.osversion warning or -lcrt1.o error now.

But it still died with a We could not find development headers for LIBUNSHIELD error, despite ../openmw-deps/lib/libunshield.1.4.dylib existing with a libunshield.dylib symlink pointing to it, and the build command starting with cmake -D CMAKE_PREFIX_PATH="../openmw-deps/bin;/usr/local/opt/[email protected]/bin" \ ...

I fixed this by adding to the command line:

    -D OMWDEPSINC="../openmw-deps/include" \
    -D OMWDESPLIB="../openmw-deps/lib" \
    -D LIBUNSHIELD_INCLUDE_DIR="$OMWDEPSINC" \
    -D LIBUNSHIELD_LIBRARY="$OMWDEPSLIB" \

But it still spat all kinds of errors along these lines:

-- Found LIBUNSHIELD 
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Could NOT find osgDB (missing:  OSGDB_LIBRARY OSGDB_INCLUDE_DIR) 
-- Could NOT find osgViewer (missing:  OSGVIEWER_LIBRARY OSGVIEWER_INCLUDE_DIR) 
-- Could NOT find osgText (missing:  OSGTEXT_LIBRARY OSGTEXT_INCLUDE_DIR) 
-- Could NOT find osgGA (missing:  OSGGA_LIBRARY OSGGA_INCLUDE_DIR) 
-- Could NOT find osgParticle (missing:  OSGPARTICLE_LIBRARY OSGPARTICLE_INCLUDE_DIR) 
-- Could NOT find osgUtil (missing:  OSGUTIL_LIBRARY OSGUTIL_INCLUDE_DIR) 
-- Could NOT find osgFX (missing:  OSGFX_LIBRARY OSGFX_INCLUDE_DIR) 
-- Could NOT find osg (missing:  OSG_LIBRARY OSG_INCLUDE_DIR) 
-- Could NOT find OpenThreads (missing:  OPENTHREADS_LIBRARY OPENTHREADS_INCLUDE_DIR) 
CMake Error at /opt/local/share/cmake-3.7/Modules/FindPackageHandleStandardArgs.cmake:138 (message):
  Could NOT find OpenSceneGraph (missing: OPENSCENEGRAPH_LIBRARIES
  OPENSCENEGRAPH_INCLUDE_DIR OSGDB_FOUND OSGVIEWER_FOUND OSGTEXT_FOUND
  OSGGA_FOUND OSGPARTICLE_FOUND OSGUTIL_FOUND OSGFX_FOUND OSG_FOUND
  OPENTHREADS_FOUND) (Required is at least version "3.3.4")

The commands I've tried, to "forcibly inform" it where stuff is, only resolved about half of this, so I don't know what it wants. I've tried several variations on the following:

cmake \
    -D CMAKE_PREFIX_PATH="../openmw-deps/bin;/usr/local/opt/[email protected]/bin" \
    -D CMAKE_OSX_SYSROOT="macosx10.12" \
    -D DESIRED_QT_VERSION=5 \
    -D CMAKE_BUILD_TYPE=Debug \
    -D BUILD_MYGUI_PLUGIN=FALSE \
    -D OMWDEPSINC="../openmw-deps/include" \
    -D OMWDESPLIB="../openmw-deps/lib" \
    -D OSG_INCLUDE_DIR="$OWMDEPSINC/osg" \
    -D OSG_LIBRARY="$OWMDEPSLIB" \
    -D LIBUNSHIELD_INCLUDE_DIR="$OMWDEPSINC" \
    -D LIBUNSHIELD_LIBRARY="$OMWDEPSLIB" \
    -D OSGDB_INCLUDE_DIR="$OMWDEPSINC/osgDB" \
    -D OSGDB_LIBRARY="$OSG_LIBRARY" \
    -D OSGVIEWER_INCLUDE_DIR="$OMWDEPSINC/osgViewer" \
    -D OSGVIEWER_LIBRARY="$OSG_LIBRARY" \
    -D OSGTEXT_INCLUDE_DIR="$OWMDEPSINC/osgText" \
    -D OSGTEXT_LIBRARY="$OSG_LIBRARY" \
    -D OSGGA_INCLUDE_DIR="$OWMDEPSINC/osgGA" \
    -D OSGGA_LIBRARY="$OSG_LIBRARY" \
    -D OSGPARTICLE_INCLUDE_DIR="$OWMDEPSINC/osgParticle" \
    -D OSGPARTICLE_LIBRARY="$OSG_LIBRARY" \
    -D OSGUTIL_INCLUDE_DIR="$OWMDEPSINC/osgUtil" \
    -D OSGUTIL_LIBRARY="$OSG_LIBRARY" \
    -D OSGFX_INCLUDE_DIR="$OWMDEPSINC/osgFX" \
    -D OSGFX_LIBRARY="$OSG_LIBRARY" \
    -D OSGDB_INCLUDE_DIR="$OWMDEPSINC/osgDB" \
    -D OSGDB_LIBRARY="$OSG_LIBRARY" \
    -D OPENTHREADS_INCLUDE_DIR="$OWMDEPSINC/OpenThreads" \
    -D OPENTHREADS_LIBRARY="$OMWDEPSLIB" \
    -D OPENSCENEGRAPH_INCLUDE_DIR="$OWMDEPSINC" \
    -D OPENSCENEGRAPH_LIBRARY="$OMWDEPSLIB" \
    -G"Unix Makefiles" \
    ../openmw/

I still get errors like these:

-- Could NOT find osgDB (missing:  OSGDB_LIBRARY) 
-- Could NOT find osgViewer (missing:  OSGVIEWER_LIBRARY) 
-- Could NOT find osgText (missing:  OSGTEXT_LIBRARY) 
-- Could NOT find osgGA (missing:  OSGGA_LIBRARY) 
-- Could NOT find osgParticle (missing:  OSGPARTICLE_LIBRARY) 
-- Could NOT find osgUtil (missing:  OSGUTIL_LIBRARY) 
-- Could NOT find osgFX (missing:  OSGFX_LIBRARY) 
-- Could NOT find osg (missing:  OSG_LIBRARY) 
-- Could NOT find OpenThreads (missing:  OPENTHREADS_LIBRARY) 
CMake Error at /opt/local/share/cmake-3.7/Modules/FindPackageHandleStandardArgs.cmake:138 (message):
  Could NOT find OpenSceneGraph: Found unsuitable version "..", but required
  is at least "3.3.4" (found )

I probably just don't know enough about these particular packages and their details to get this right by rather randomly guessing.

I would actually probably be happy enough with the pre-compiled nightlies for MacOS X, but they're compiled with someone's username in them. When I try to manually run OpenMW in gdb (per Testing#Debugger, so I can do bt and get a backtrace log), I get this:

Reading symbols for shared libraries ........
warning: Could not find object file
  "/Users/nkasyanov/Projects/openmw/openmw-deps/src/boost/bin.v2/libs/system/build/darwin-4.2.1/release/threading-multi/error_code.o" 
  - no debug information available for "error_code.cpp".

and

(gdb) run --no-grab
Starting program: /Volumes/Archive/APP STORAGE/GAMES/The Elder Scrolls Morrowind GotY Ed. - openMW/OpenMW/OpenMW.app/Contents/MacOS/openmw --no-grab
assertion failure on line 243 of "/SourceCache/gdb/gdb-1708/src/gdb/macosx/macosx-nat-inferior-util.c" in function "kern_return_t macosx_inferior_resume_mach(macosx_inferior_status *, int)": macosx_task_valid (s->task)

So, in the end, I'm still not able to produce the kind of error logs they want at bugs.openmw.org.

N. Kasyanov seems to be User:Corristo, so I'll ping his talk page about this thread. Dunno if he's active on the wiki though; might have to go try to find him on the forum or the bug tracker.

— Darklocq  ¢ 06:07, 13 September 2017 (CEST)

MyGUI version

Hi, probably the most minor of minor things, but the site says openmw needs MyGUI 3.2.1, but on my machine (Linux) when I do cmake it says:

 MyGUI 3.2.2 was found but version 3.4.1 is the minimum requirement.  This
 package is REQUIRED and you need to install it or adjust CMake
 configuration in order to continue building OpenMW.

Code version is:

 commit 3a56cc857d048527bb940d8af8218423d0169b55 (HEAD -> master, origin/master, origin/HEAD)
 Merge: eafdaf6d9 b883cc5a1
 Author: psi29a <[email protected]>
 Date:   Sun Feb 19 20:58:46 2023 +0000