cmake_minimum_required(VERSION 3.16)
project(l2_java_jni_bridge LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
find_package(JNI REQUIRED)

add_library(l2_jni_bridge SHARED src/l2_jni_bridge.cpp)
target_include_directories(l2_jni_bridge PRIVATE ${JNI_INCLUDE_DIRS} include)
target_link_directories(l2_jni_bridge PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/lib)
target_link_libraries(l2_jni_bridge PRIVATE l2_tcp_client)
set_target_properties(l2_jni_bridge PROPERTIES
    LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/native
    RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/native
    BUILD_RPATH ${CMAKE_CURRENT_SOURCE_DIR}/lib)
foreach(configuration Debug Release RelWithDebInfo MinSizeRel)
    string(TOUPPER ${configuration} configuration_upper)
    set_target_properties(l2_jni_bridge PROPERTIES
        RUNTIME_OUTPUT_DIRECTORY_${configuration_upper} ${CMAKE_CURRENT_SOURCE_DIR}/native
        LIBRARY_OUTPUT_DIRECTORY_${configuration_upper} ${CMAKE_CURRENT_SOURCE_DIR}/native)
endforeach()
