Files

63 lines
1.7 KiB
CMake

cmake_minimum_required (VERSION 2.6)
# --- Setup Paths ---
set(RESOURCES_SWIG_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../resources_swig")
set(GENERATED_SRC_DIR "${CMAKE_CURRENT_BINARY_DIR}/src")
set(JAVA_BINDING_OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR} PARENT_SCOPE)
set(SWIG_INTERFACE_FILE "${RESOURCES_SWIG_DIR}/interface/sourcetraildb.i")
set(CMAKE_SWIG_FLAGS -package com.sourcetrail)
# --- Find Java ---
find_package(Java REQUIRED COMPONENTS Runtime Development)
find_package(JNI REQUIRED)
include(UseJava)
# --- Find Swig ---
find_package(SWIG REQUIRED)
include(${SWIG_USE_FILE})
# --- Configure Target ---
set_source_files_properties(${SWIG_INTERFACE_FILE} PROPERTIES CPLUSPLUS ON)
include_directories(
"${RESOURCES_SWIG_DIR}/include"
"${CORE_SOURCE_DIR}/include"
${JNI_INCLUDE_DIRS}
)
swig_add_library(
SharedLibrary
TYPE SHARED
LANGUAGE java
OUTPUT_DIR ${CMAKE_CURRENT_BINARY_DIR}/com/sourcetrail
OUTFILE_DIR ${GENERATED_SRC_DIR}
SOURCES ${SWIG_INTERFACE_FILE} ${RESOURCES_SWIG_DIR}/src/sourcetraildb.cpp
)
swig_link_libraries(SharedLibrary ${JNI_LIBRARIES} ${LIB_CORE_TARGET_NAME})
set_target_properties(SharedLibrary
PROPERTIES OUTPUT_NAME _sourcetraildb)
set(CMAKE_JNI_TARGET TRUE)
add_jar(
${JAVA_BINDING_TARGET_NAME}
OUTPUT_NAME SourcetrailDB
SOURCES
${CMAKE_CURRENT_BINARY_DIR}/com/sourcetrail/DefinitionKind.java
${CMAKE_CURRENT_BINARY_DIR}/com/sourcetrail/ReferenceKind.java
${CMAKE_CURRENT_BINARY_DIR}/com/sourcetrail/sourcetraildb.java
${CMAKE_CURRENT_BINARY_DIR}/com/sourcetrail/sourcetraildbJNI.java
${CMAKE_CURRENT_BINARY_DIR}/com/sourcetrail/SymbolKind.java
)
add_dependencies( ${JAVA_BINDING_TARGET_NAME} SharedLibrary )