java: Added Java SWIG binding creation
[contrib/mraa.git] / src / java / CMakeLists.txt
1 FIND_PACKAGE (JNI REQUIRED)
2
3 include_directories (
4   ${JAVA_INCLUDE_PATH}
5   ${JAVA_INCLUDE_PATH2}
6   ${CMAKE_CURRENT_SOURCE_DIR}/..
7 )
8
9 # SWIG treats SWIG_FLAGS as a list and not a string so semicolon seperation is required
10 set_source_files_properties (mraajava.i PROPERTIES SWIG_FLAGS ";-package;mraa;-I${CMAKE_BINARY_DIR}/src")
11 set_source_files_properties (mraajava.i PROPERTIES CPLUSPLUS ON)
12
13 set (CMAKE_CXX_FLAGS "-fpermissive")
14
15 set (JAVAC $ENV{JAVA_HOME}/bin/javac)
16 set (JAR $ENV{JAVA_HOME}/bin/jar)
17
18 swig_add_module (mraajava java mraajava.i ${mraa_LIB_SRCS})
19 swig_link_libraries (mraajava ${JAVA_LIBRARIES})
20
21 add_custom_command (TARGET mraajava
22   POST_BUILD
23   COMMAND cmake -E echo "Compiling java.."
24   COMMAND cmake -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/mraa
25   COMMAND ${JAVAC} *.java -d ${CMAKE_CURRENT_BINARY_DIR}
26   COMMAND cmake -E echo "Creating jar"
27   COMMAND ${JAR} cvf mraa.jar mraa
28 )
29
30 if (DOXYGEN_FOUND)
31   foreach (_file ${DOCFILES})
32     add_dependencies (${SWIG_MODULE_mraajava_REAL_NAME} ${_file}doc_i)
33   endforeach ()
34 endif ()
35
36 install (FILES ${CMAKE_CURRENT_BINARY_DIR}/mraa.jar
37   ${CMAKE_CURRENT_BINARY_DIR}/libmraajava.so
38   DESTINATION lib
39 )