-
Notifications
You must be signed in to change notification settings - Fork 96
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
24 lines (15 loc) · 1.17 KB
/
Copy pathCMakeLists.txt
File metadata and controls
24 lines (15 loc) · 1.17 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
FIND_PACKAGE(Java REQUIRED) #Find the java executables
#FIND_PACKAGE(JNI REQUIRED)
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_SOURCE_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 lib)
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/kazmath.jar DESTINATION ${CMAKE_INSTALL_PREFIX}/share/java)