Talk:Development Environment Setup

From OpenMW Wiki
Jump to: navigation, 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)