95 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
		
		
			
		
	
	
			95 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								macro_optional_find_package(Java ON)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								 find_package(Java COMPONENTS Runtime Development)
							 | 
						||
| 
								 | 
							
								 #find_package(Java COMPONENTS Runtime)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								macro_log_feature (Java_Development_FOUND "Java"
							 | 
						||
| 
								 | 
							
								    "Use Java System"
							 | 
						||
| 
								 | 
							
								    "http://www.java.org" FALSE)
							 | 
						||
| 
								 | 
							
								macro_optional_find_package(JNI ON)
							 | 
						||
| 
								 | 
							
								    macro_log_feature (JNI_FOUND "JNI"
							 | 
						||
| 
								 | 
							
								    "Use Java Native Interface"
							 | 
						||
| 
								 | 
							
								    "http://www.java.org" FALSE)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								if (Java_Development_FOUND)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    include ( UseJava  )
							 | 
						||
| 
								 | 
							
								    include ( UseSWIG  )
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  #  SET(CMAKE_SWIG_FLAGS -package YAP)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    set (CMAKE_SWIG_OUTDIR  ${CMAKE_CURRENT_BINARY_DIR} )
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    SET(SWIG_SOURCES
							 | 
						||
| 
								 | 
							
								      ../yap.i
							 | 
						||
| 
								 | 
							
								      )
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								   #set (CMAKE_JAVA_CLASS_OUTPUT_PATH java)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    SET_SOURCE_FILES_PROPERTIES(${SWIG_SOURCES} PROPERTIES CPLUSPLUS ON)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  include_directories (
							 | 
						||
| 
								 | 
							
								    ${CMAKE_SOURCE_DIR}/CXX
							 | 
						||
| 
								 | 
							
								    ${JAVA_INCLUDE_DIRS}
							 | 
						||
| 
								 | 
							
								    ${JNI_INCLUDE_DIRS}
							 | 
						||
| 
								 | 
							
								      )
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if ( ${C_COMPILER} MATCHES "Clang")
							 | 
						||
| 
								 | 
							
								      set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-missing-prototypes")
							 | 
						||
| 
								 | 
							
								    endif()
							 | 
						||
| 
								 | 
							
								    if ( ${C_COMPILER} MATCHES "GNU")
							 | 
						||
| 
								 | 
							
								      set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-missing-declarations")
							 | 
						||
| 
								 | 
							
								    endif()
							 | 
						||
| 
								 | 
							
								    #SET(CMAKE_SWIG_FLAGS "${CMAKE_SWIG_FLAGS} ")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    SWIG_ADD_MODULE(Native java ${SWIG_SOURCES}
							 | 
						||
| 
								 | 
							
									   )
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									add_dependencies(Native Yap++ )
							 | 
						||
| 
								 | 
							
									 
							 | 
						||
| 
								 | 
							
								    SWIG_LINK_LIBRARIES (Native Yap++ )
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								   set(CMAKE_JNI_TARGET 1)
							 | 
						||
| 
								 | 
							
								    ADD_JAR( NativeJar
							 | 
						||
| 
								 | 
							
								      SOURCES "../../../misc/icons/yap_16x16x32.png"
							 | 
						||
| 
								 | 
							
								      DEPENDS Native
							 | 
						||
| 
								 | 
							
								      PROPERTIES OUTPUT_NAME Native
							 | 
						||
| 
								 | 
							
								      )
							 | 
						||
| 
								 | 
							
								    install_jar(NativeJar ${libpl})
							 | 
						||
| 
								 | 
							
								    	add_dependencies(NativeJar Native )
							 | 
						||
| 
								 | 
							
								    #install_jni_symlink(NativeJar  .)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    ADD_CUSTOM_COMMAND(TARGET NativeJar
							 | 
						||
| 
								 | 
							
								      POST_BUILD
							 | 
						||
| 
								 | 
							
								     COMMAND cmake -E echo "Compiling Java files..."
							 | 
						||
| 
								 | 
							
								     COMMAND ${Java_JAVAC_EXECUTABLE} *.java -cp .
							 | 
						||
| 
								 | 
							
								     COMMAND cmake -E echo "Creating jar file..."
							 | 
						||
| 
								 | 
							
								     COMMAND ${Java_JAR_EXECUTABLE} -ufM Native.jar *.class
							 | 
						||
| 
								 | 
							
								     )
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								   ADD_JAR( JavaYAP
							 | 
						||
| 
								 | 
							
								     SOURCES "JavaYAP.java"
							 | 
						||
| 
								 | 
							
								     ENTRY_POINT JavaYAP
							 | 
						||
| 
								 | 
							
								     INCLUDE_JARS NativeJar )
							 | 
						||
| 
								 | 
							
								   SET(CMAKE_JAVA_COMPILE_FLAGS "-source" "1.8" "-target" "1.8")
							 | 
						||
| 
								 | 
							
								install(    TARGETS Native  
							 | 
						||
| 
								 | 
							
								    RUNTIME DESTINATION ${bindir}
							 | 
						||
| 
								 | 
							
								    ARCHIVE  DESTINATION ${libdir}
							 | 
						||
| 
								 | 
							
								    LIBRARY  DESTINATION ${libdir}
							 | 
						||
| 
								 | 
							
								)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								install_jar(JavaYAP ${libpl})
							 | 
						||
| 
								 | 
							
								#install_jni_symlink(JavaYAP ${libpl})
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								 Endif (Java_Development_FOUND)
							 |