forked from cocaine/cocaine-framework-java
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCMakeLists.txt
70 lines (55 loc) · 2 KB
/
CMakeLists.txt
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
PROJECT (cocaine-framework-java Java)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.6)
SET(DEALER_VERSION 0.9.7)
INCLUDE(cmake/locate_library.cmake)
FIND_PACKAGE(Java)
FIND_PACKAGE(JNI)
INCLUDE(UseJava)
SET (CMAKE_JAVA_TARGET_VERSION ${DEALER_VERSION})
SET (SRC
src/main/java/cocaine/dealer/ArrayHolder.java
src/main/java/cocaine/dealer/DealerImpl.java
src/main/java/cocaine/dealer/Dealer.java
src/main/java/cocaine/dealer/Library.java
src/main/java/cocaine/dealer/Message.java
src/main/java/cocaine/dealer/MessagePolicy.java
src/main/java/cocaine/dealer/Ptr.java
src/main/java/cocaine/dealer/Response.java
src/main/java/cocaine/dealer/ResponseImpl.java
src/main/java/cocaine/dealer/exceptions/AppException.java)
ADD_JAR(cocaine-framework-java ${SRC})
GET_PROPERTY(JARFILE TARGET cocaine-framework-java PROPERTY JAR_FILE)
PROJECT(cocaine-framework-java-lib)
LOCATE_LIBRARY(LIBCOCAINEDEALER "cocaine/dealer/dealer.hpp" "cocaine-dealer")
INCLUDE_DIRECTORIES(
${LIBCOCAINEDEALER_INCLUDE_DIRS}
target/generated
${JAVA_INCLUDE_PATH}
${JAVA_INCLUDE_PATH2}
)
LINK_DIRECTORIES(
${LIBCOCAINE_DEALER_LIBRARY_DIRS})
FILE(GLOB CPP_SOURCES
"src/main/cpp/*.cpp")
ADD_CUSTOM_COMMAND(
OUTPUT target/generated/cocaine_dealer_DealerImpl.h target/generated/cocaine_dealer_ResponseImpl.h
COMMAND ${Java_JAVAH_EXECUTABLE} -jni -d target/generated -classpath ${JARFILE} cocaine.dealer.DealerImpl cocaine.dealer.ResponseImpl
WORKING_DIRECTORY
COMMENT "generating jni header files"
)
ADD_LIBRARY(cocaine-framework-java-lib SHARED
target/generated/cocaine_dealer_DealerImpl.h
target/generated/cocaine_dealer_ResponseImpl.h
${CPP_SOURCES}
)
TARGET_LINK_LIBRARIES(cocaine-framework-java-lib
cocaine-dealer
)
SET_TARGET_PROPERTIES(cocaine-framework-java-lib PROPERTIES
VERSION ${DEALER_VERSION}
OUTPUT_NAME "cocaine-framework-java")
INSTALL_JAR(cocaine-framework-java share/java)
INSTALL(
TARGETS
cocaine-framework-java-lib
LIBRARY DESTINATION lib/jni COMPONENT runtime)