-
Notifications
You must be signed in to change notification settings - Fork 96
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
34 lines (22 loc) · 1.33 KB
/
Copy pathCMakeLists.txt
File metadata and controls
34 lines (22 loc) · 1.33 KB
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
FIND_PACKAGE(Java) #Find the java executables
IF(JAVA_FOUND)
FIND_PACKAGE(JNI)
IF(JNI_FOUND)
MESSAGE("Building JNI wrapper")
SET(JKAZMATH_CLASS kazmath/jkazmath.class)
SET(JKAZMATH_HEADER jni/kazmath_jkazmath.h)
SET(JKAZMATH_JAR kazmath.jar)
FILE(GLOB_RECURSE KAZMATH_C_FILES ${CMAKE_SOURCE_DIR}/kazmath/*.c ${CMAKE_CURRENT_SOURCE_DIR}/jni/*.c)
ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${JKAZMATH_CLASS} COMMAND ${Java_JAVAC_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/kazmath/jkazmath.java -d ${CMAKE_CURRENT_BINARY_DIR})
ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${JKAZMATH_HEADER} COMMAND ${Java_JAVAH_EXECUTABLE} -classpath ${CMAKE_CURRENT_BINARY_DIR} -d jni kazmath.jkazmath DEPENDS ${JKAZMATH_CLASS})
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR}/jni ${JNI_INCLUDE_DIRS} ${CMAKE_SOURCE_DIR}/kazmath)
SET(CMAKE_SHARED_LINKER_FLAGS "-lm -lc")
SET(CMAKE_POSITION_INDEPENDENT_CODE ON)
ADD_LIBRARY(Jkazmath SHARED ${KAZMATH_C_FILES} ${JKAZMATH_HEADER})
ADD_CUSTOM_COMMAND(TARGET Jkazmath POST_BUILD COMMAND ${Java_JAR_EXECUTABLE} cvf kazmath.jar kazmath)
INSTALL(TARGETS Jkazmath LIBRARY DESTINATION ${INSTALL_LIB_DIR})
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/kazmath.jar DESTINATION ${CMAKE_INSTALL_PREFIX}/share/java)
ELSE(JNI_FOUND)
MESSAGE("Not building JNI wrapper. Couldn't find JNI")
ENDIF(JNI_FOUND)
ENDIF(JAVA_FOUND)