File: KrossJNIConfig.cmake

package info (click to toggle)
kross-interpreters 4%3A20.12.1-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,472 kB
  • sloc: cpp: 12,208; java: 560; python: 375; ruby: 323; xml: 53; ansic: 38; makefile: 4
file content (84 lines) | stat: -rw-r--r-- 3,085 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# - Find JNI java libraries.
# This module finds if Java is installed and determines where the
# include files and libraries are. It also determines what the name of
# the library is. This code sets the following variables:
#  JAVA_AWT_LIB_PATH     = the path to the jawt library
#  JAVA_JVM_LIB_PATH     = the path to the jvm library
#  JAVA_INCLUDE_PATH     = the include path to jni.h
#  JAVA_INCLUDE_PATH2    = the include path to jni.h
#  JAVA_AWT_INCLUDE_PATH = the include path to jawt.h

# first we try to use the FindJNI.cmake shipped with cmake
macro_optional_find_package(JNI)
if(JAVA_INCLUDE_PATH AND JAVA_JVM_LIBRARY)
    # seems FindJNI.cmake did detect it successful
    message(STATUS "using FindJNI.cmake")
else(JAVA_INCLUDE_PATH AND JAVA_JVM_LIBRARY)
    # FindJNI.cmake failed to detect our jvm, so we do try some custom stuff now
    message(STATUS "using FindKrossJNI.cmake")

    SET(JAVA_AWT_LIBRARY_DIRECTORIES
        /usr/lib/gcj-4.1/
    )

    SET(JAVA_JVM_LIBRARY_DIRECTORIES)
    FOREACH(dir ${JAVA_AWT_LIBRARY_DIRECTORIES})
        SET(JAVA_JVM_LIBRARY_DIRECTORIES
            ${JAVA_JVM_LIBRARY_DIRECTORIES}
            "${dir}"
            "${dir}/client"
            "${dir}/server"
            )
    ENDFOREACH(dir)

    SET(JAVA_AWT_INCLUDE_DIRECTORIES
        /usr/lib/gcc/i486-linux-gnu/4.1.2/include
    )

    FOREACH(JAVA_PROG "${JAVA_RUNTIME}" "${JAVA_COMPILE}" "${JAVA_ARCHIVE}")
        GET_FILENAME_COMPONENT(jpath "${JAVA_PROG}" PATH)
        FOREACH(JAVA_INC_PATH ../include ../java/include ../share/java/include)
            IF(EXISTS ${jpath}/${JAVA_INC_PATH})
                SET(JAVA_AWT_INCLUDE_DIRECTORIES ${JAVA_AWT_INCLUDE_DIRECTORIES} "${jpath}/${JAVA_INC_PATH}")
            ENDIF(EXISTS ${jpath}/${JAVA_INC_PATH})
        ENDFOREACH(JAVA_INC_PATH)
        FOREACH(JAVA_LIB_PATH 
            ../lib ../jre/lib ../jre/lib/i386 
            ../java/lib ../java/jre/lib ../java/jre/lib/i386 
            ../share/java/lib ../share/java/jre/lib ../share/java/jre/lib/i386)
            IF(EXISTS ${jpath}/${JAVA_LIB_PATH})
                SET(JAVA_AWT_LIBRARY_DIRECTORIES ${JAVA_AWT_LIBRARY_DIRECTORIES} "${jpath}/${JAVA_LIB_PATH}")
            ENDIF(EXISTS ${jpath}/${JAVA_LIB_PATH})
        ENDFOREACH(JAVA_LIB_PATH)
    ENDFOREACH(JAVA_PROG)

    FIND_LIBRARY(JAVA_AWT_LIBRARY jawt
        PATHS ${JAVA_AWT_LIBRARY_DIRECTORIES}
    )
    FIND_LIBRARY(JAVA_JVM_LIBRARY NAMES jvm JavaVM
        PATHS ${JAVA_JVM_LIBRARY_DIRECTORIES}
    )

    # add in the include path
    FIND_PATH(JAVA_INCLUDE_PATH jni.h
        ${JAVA_AWT_INCLUDE_DIRECTORIES}
    )
    FIND_PATH(JAVA_INCLUDE_PATH2 jni_md.h
        ${JAVA_AWT_INCLUDE_DIRECTORIES}
        ${JAVA_INCLUDE_PATH}/win32
        ${JAVA_INCLUDE_PATH}/linux
    )

    FIND_PATH(JAVA_AWT_INCLUDE_PATH jawt.h
        ${JAVA_AWT_INCLUDE_DIRECTORIES} ${JAVA_INCLUDE_PATH}
    )

    MARK_AS_ADVANCED(
        JAVA_AWT_LIBRARY
        JAVA_JVM_LIBRARY
        JAVA_AWT_INCLUDE_PATH
        JAVA_INCLUDE_PATH
        JAVA_INCLUDE_PATH2
    )

endif(JAVA_INCLUDE_PATH AND JAVA_JVM_LIBRARY)