cmake_minimum_required(VERSION 2.8.6)
include(UseJava)
-find_path(JAVADOC_PATH NAMES javadoc PATHS NO_DEFAULT_PATHS)
# Rules to build libsimgrid-java
#
if (CMAKE_VERSION VERSION_LESS "2.8.8")
include_directories(${JNI_INCLUDE_DIRS})
- message(WARNING "[Java] Try to workaround missing feature in older CMake. You should better update CMake to version 2.8.8 or above.")
+ message("[Java] Try to workaround missing feature in older CMake. You should better update CMake to version 2.8.8 or above.")
get_directory_property(CHECK_INCLUDES INCLUDE_DIRECTORIES)
else()
get_target_property(COMMON_INCLUDES simgrid-java INCLUDE_DIRECTORIES)
OUTPUT_VARIABLE IS_32_BITS_JVM)
STRING( FIND ${IS_32_BITS_JVM} "Error" POSITION )
if(${POSITION} GREATER -1)
- message(FATAL_ERROR "Java JVM needs to be 32 bits to be able to run with Simgrid on Windows for now")
+ message("POTENTIAL ERROR: Java JVM needs to be 32 bits to be able to run with Simgrid on Windows for now")
endif()
set_target_properties(simgrid-java PROPERTIES
##
if(CMAKE_VERSION VERSION_LESS "2.8.12")
set(CMAKE_JAVA_TARGET_OUTPUT_NAME simgrid)
- add_jar(simgrid-java_pre_jar ${JMSG_JAVA_SRC} ${JSURF_JAVA_GENERATED_SRC})
+ add_jar(simgrid-java_pre_jar ${JMSG_JAVA_SRC})
else()
- add_jar(simgrid-java_pre_jar ${JMSG_JAVA_SRC} ${JSURF_JAVA_GENERATED_SRC} OUTPUT_NAME simgrid)
+ add_jar(simgrid-java_pre_jar ${JMSG_JAVA_SRC} OUTPUT_NAME simgrid)
endif()
set(JAVA_BUNDLE "${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/Scripts/java_bundle.sh")
COMMAND ${JAVA_ARCHIVE} -uvf ${SIMGRID_FULL_JAR} "NATIVE"
COMMAND ${CMAKE_COMMAND} -E remove ${SIMGRID_JAR}_finalized
COMMAND ${CMAKE_COMMAND} -E touch ${SIMGRID_JAR}_finalized
- COMMAND ${JAVADOC_PATH}/javadoc -quiet -d doc ${CMAKE_HOME_DIRECTORY}/src/bindings/java/org/simgrid/*.java ${CMAKE_HOME_DIRECTORY}/src/bindings/java/org/simgrid/*/*.java
- COMMAND ${JAVA_ARCHIVE} -uvf ${SIMGRID_FULL_JAR} doc
+ COMMAND ${Java_JAVADOC_EXECUTABLE} -quiet -d doc/javadoc ${CMAKE_HOME_DIRECTORY}/src/bindings/java/org/simgrid/*.java ${CMAKE_HOME_DIRECTORY}/src/bindings/java/org/simgrid/*/*.java
+ COMMAND ${JAVA_ARCHIVE} -uvf ${SIMGRID_FULL_JAR} doc/javadoc
)
add_custom_target(simgrid-java_jar ALL DEPENDS ${SIMGRID_JAR}_finalized)
+include_directories(${JNI_INCLUDE_DIRS} ${JAVA_INCLUDE_PATH} ${JAVA_INCLUDE_PATH2})
if(enable_maintainer_mode)
set(CMAKE_SWIG_FLAGS "-package" "org.simgrid.surf")
set(CMAKE_SWIG_OUTDIR "${CMAKE_HOME_DIRECTORY}/src/bindings/java/org/simgrid/surf")
set_source_files_properties(${JSURF_SWIG_SRC} PROPERTIES CPLUSPLUS 1)
- include_directories(${JNI_INCLUDE_DIRS})
+
swig_add_module(surf-java java ${JSURF_SWIG_SRC} ${JSURF_JAVA_C_SRC})
- add_custom_command(TARGET surf-java POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_BINARY_DIR}/src/bindings/java/surfJAVA_wrap.cxx" "${CMAKE_HOME_DIRECTORY}/src/bindings/java/surfJAVA_wrap.cxx"
- COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_BINARY_DIR}/src/bindings/java/surfJAVA_wrap.h" "${CMAKE_HOME_DIRECTORY}/src/bindings/java/surfJAVA_wrap.h"
- )
+ if(NOT "${CMAKE_BINARY_DIR}" STREQUAL "${CMAKE_BINARY_DIR}")
+ add_custom_command(TARGET surf-java POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_BINARY_DIR}/src/bindings/java/org/simgrid/surf/surfJAVA_wrap.cxx" "${CMAKE_HOME_DIRECTORY}/src/bindings/java/org/simgrid/surf/surfJAVA_wrap.cxx"
+ COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_BINARY_DIR}/src/bindings/java/org/simgrid/surf/surfJAVA_wrap.h" "${CMAKE_HOME_DIRECTORY}/src/bindings/java/org/simgrid/surf/surfJAVA_wrap.h"
+ )
+ endif()
swig_link_libraries(surf-java simgrid)
else()
- add_library(surf-java SHARED
- ${JSURF_C_SRC})
+ add_library(surf-java SHARED ${JSURF_C_SRC})
target_link_libraries(surf-java simgrid)
- set_source_files_properties("${CMAKE_HOME_DIRECTORY}/src/bindings/java/surfJAVA_wrap.cxx"
- PROPERTIES COMPILE_FLAGS "-fPIC -I\"${JAVA_INCLUDE_PATH}\" -I\"${JAVA_INCLUDE_PATH2}\""
- )
endif()
+set_target_properties(surf-java PROPERTIES SKIP_BUILD_RPATH ON)
+set_target_properties(simgrid-java PROPERTIES SKIP_BUILD_RPATH ON)
+
add_dependencies(simgrid-java surf-java)
add_dependencies(simgrid-java_pre_jar surf-java)