Bug 393

Summary: Fix Windows Platform ..
Product: [JogAmp] Gluegen Reporter: Sven Gothel <sgothel>
Component: coreAssignee: Sven Gothel <sgothel>
Status: VERIFIED FIXED    
Severity: critical    
Priority: P1    
Version: 2   
Hardware: All   
OS: windows   
Type: --- SCM Refs:
7cc4bb2a8bcc4c16b6a12826abbd874bf38f9dc1
Workaround: ---

Description Sven Gothel 2010-04-07 14:50:55 CEST
Currently the Windows platform doesn't pass the junit tests.
Comment 1 Sven Gothel 2010-04-07 20:41:56 CEST
    Fixed junit test: test1
    
    - Create seperate native libraries to reflect a real world example:
    
        test1 - the library to bind to (no more declaring __stdcall @nn functions)
    
        BindingTest1p1 - the dynamic fixed linkage binding test1p1,
                         references dynamic library test1 at linktime.
    
        BindingTest1p2 - the dynamic runtime linkage binding test1p2,
                         loads dynamic library test1 at runtime.
    
    Generic:
    
    - gluegen-cpptasks-base.xml
    
      - target 'gluegen.cpptasks.detect.os'
        Set new property 'system.env.library.path'
            DYLD_LIBRARY_PATH (macosx)
            LD_LIBRARY_PATH   (unix)
            PATH              (windows)
    
      - target 'gluegen.cpptasks.striplibs'
        Strips the symbols out of the native libraries
        in case c.compiler.debug is false.
        Maybe configured with the properties:
            c.strip.tool, c.strip.args
    
    - Using system.env.library.path in junit call
      to find the test1 library in case of runtime linkage and lookup (test1p2).
    
    - Use gluegen.cpptasks.striplibs for all native libs ..
    
    - Added macosx32 in analogy to macosx64, both defaults to true now
    
    - com.jogamp.common.os.WindowsDynamicLinkerImpl:lookupSymbol()
      - Added lookup for __stdcall @nn (stepping alignment 4, max-args: 12)
        in case no undecorated __cdecl symbol is found.
    
    Fixed Windows platform:
    
    - Use proper path.seperator on Windows.
    - test1.dll needs proper soname inside for fixed linkage (test1p1)
      hence the output name must be test1.dll, not libtest1.so