Bug #18

OSX 10.6 lua/ workspace generation issue

Added by Steve Sharp over 2 years ago. Updated over 2 years ago.

Status:Closed Start:11/05/2009
Priority:Normal Due date:
Assigned to:- % Done:

0%

Category:-
Target version:-

Description

Ive been testing the latest version from source and have a couple of issues on a clean install of snow leopard 10.6 :

The wiki docs state that the lua binaries should be placed in bin/<platform>/luaplus/ where as it needs to be bin/<platform>/lua (i would update the wiki page but its not an open one)

Im also having trouble with the project generation script.

Im running :

./jamplus/bin/macosx/jam --workspace -gen=xcode ../Source/Jamfile.jam ../Intermediate/Build

which is generating :

./CreateSolution.sh
  • JamToWorkspace must be called directly from Jam.

Usage: jam --workspace ...

Looking at the script its failing because neither $OS or $OSPLAT are defined which seems a little odd

Thanks
Steve.

History

Updated by Steve Sharp over 2 years ago

ok ive been digging into this a little further :

OSPLAT is empty
OSMINOR is set to MACOSX

I'll keep digging...

Updated by Steve Sharp over 2 years ago

Ok ive found the first part of the issue, the jam.h is missing the defines for x86_64 :

I added :

#if defined( x86_64 ) || \
defined( amd64 ) || \
defined( _M_AMD64 )
#define OSPLAT "OSPLAT=X86_64"
#endif

and it works fine now.

Index: Build/jamplus/src/jam.h ===================================================================
--- Build/jamplus/src/jam.h (revision 107)
+++ Build/jamplus/src/jam.h (working copy)
@ -425,7 +425,13 @
!defined( OS_AS400 ) # define OSPLAT "OSPLAT=X86" # endif
-# endif
# endif

#if defined( x86_64 ) || \
defined( amd64 ) || \
+ defined( _M_AMD64 )
#define OSPLAT "OSPLAT=X86_64"
#endif

  1. ifdef sparc
  2. if !defined( OS_SUNOS )

Updated by Steve Sharp over 2 years ago

ok ive found the last piece to the error :

The create workspace script fails inside ReadTargetInfo because the CreateTargetInfo Files failed due to an incorrect location of the jam executable :

...ild/jamplus/bin/macosx/../scripts/JamToWorkspace.lua:108: in function <...ild/jamplus/bin/macosx/../scripts/JamToWorkspace.lua:84>
[C]: in function 'error'
...ild/jamplus/bin/macosx/../scripts/JamToWorkspace.lua:204: in function 'ReadTargetInfo'
...ild/jamplus/bin/macosx/../scripts/JamToWorkspace.lua:237: in function 'CreateTargetInfoFiles'
...ild/jamplus/bin/macosx/../scripts/JamToWorkspace.lua:720: in function <...ild/jamplus/bin/macosx/../scripts/JamToWorkspace.lua:560>
[C]: in function 'xpcall'
...ild/jamplus/bin/macosx/../scripts/JamToWorkspace.lua:856: in main chunk
[C]: ?

Jam is set to output the executable to : local BIN_PATH = ../bin/$(OSFULL1:L) ; (src/Jamfile.jam, line 307)

However the JamToWorkspace.lua script expects the script to be in : jamExePathNoQuotes = os.path.combine(jamPath, OS:lower() .. OSPLAT:lower(), 'jam')
(bin/scripts/JamToWorkspace.lua, line 800)

So the executable is built to /bin/macosx/jam, however the script is expecting it in /bin/macosxx86_64/jam

locally i have fixed this by changing the jamExePathNoQuotes to : jamExePathNoQuotes = os.path.combine(jamPath, OS:lower() , 'jam')

jamExePathNoQuotes = os.path.combine(jamPath, OS:lower() .. OSPLAT:lower(), 'jam')

Updated by Joshua Jensen over 2 years ago

  • Status changed from New to Resolved

Resolved in recent nightlies.

Updated by Joshua Jensen over 2 years ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF