63 lines
1.7 KiB
CMake
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 )
|