FIND_PACKAGE(SWIG REQUIRED) INCLUDE(${SWIG_USE_FILE}) FIND_PACKAGE(JNI) FIND_PACKAGE(Java) if(NOT JNI_INCLUDE_DIRS OR NOT Java_JAVAC_EXECUTABLE OR NOT Java_JAR_EXECUTABLE) message(SEND_ERROR "Could not find required Java componenents. Try setting the JAVA_HOME environment variable (required on e.g. Ubuntu)") endif(NOT JNI_INCLUDE_DIRS OR NOT Java_JAVAC_EXECUTABLE OR NOT Java_JAR_EXECUTABLE) INCLUDE_DIRECTORIES(${JNI_INCLUDE_DIRS}) include_directories(${PROJECT_SOURCE_DIR}/mapscript/swiginc) include_directories(${PROJECT_SOURCE_DIR}/mapscript/) include_directories(${PROJECT_SOURCE_DIR}/mapscript/java) SET (CMAKE_SWIG_OUTDIR "${CMAKE_CURRENT_BINARY_DIR}/edu/umn/gis/mapscript") SET(CMAKE_SWIG_FLAGS -package edu.umn.gis.mapscript) SWIG_ADD_MODULE(javamapscript java ../mapscript.i) # Java mapscript fails to build with -Werror=format-security if(${CMAKE_C_FLAGS} MATCHES "-Werror=format-security") string(REPLACE "-Werror=format-security" "" TMP "${CMAKE_C_FLAGS}") set(CMAKE_C_FLAGS "${TMP}") endif(${CMAKE_C_FLAGS} MATCHES "-Werror=format-security") if(${CMAKE_CXX_FLAGS} MATCHES "-Werror=format-security") string(REPLACE "-Werror=format-security" "" TMP "${CMAKE_CXX_FLAGS}") set(CMAKE_CXX_FLAGS "${TMP}") endif(${CMAKE_CXX_FLAGS} MATCHES "-Werror=format-security") if(${CMAKE_CPP_FLAGS} MATCHES "-Werror=format-security") string(REPLACE "-Werror=format-security" "" TMP "${CMAKE_CPP_FLAGS}") set(CMAKE_CPP_FLAGS "${TMP}") endif(${CMAKE_CPP_FLAGS} MATCHES "-Werror=format-security") SWIG_LINK_LIBRARIES(javamapscript ${MAPSERVER_LIBMAPSERVER}) ADD_CUSTOM_COMMAND(TARGET javamapscript WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} POST_BUILD COMMAND ${Java_JAVAC_EXECUTABLE} edu/umn/gis/mapscript/*.java COMMAND ${Java_JAR_EXECUTABLE} cf mapscript.jar edu COMMENT "Compiling java source files, creating mapscript.jar" ) get_target_property(LOC_MAPSCRIPT_LIB ${SWIG_MODULE_javamapscript_REAL_NAME} LOCATION) install(FILES ${LOC_MAPSCRIPT_LIB} DESTINATION lib/jni) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/mapscript.jar DESTINATION share/java)