dawikk-stock
Version:
Library to run Stockfish Chess Engine on all mobile platforms
58 lines (45 loc) • 1.47 kB
Plain Text
# android/src/main/cpp/CMakeLists.txt
cmake_minimum_required(VERSION 3.8)
project(dawikk-stockfish)
# Set the path to Stockfish source files
set(STOCKFISH_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../cpp/stockfish)
set(BRIDGE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../cpp/bridge)
# Compiler flags for Stockfish
set (CMAKE_VERBOSE_MAKEFILE ON)
set(CMAKE_CXX_STANDARD 17)
# Define specific flags for ARM architectures
set (NNUE_SMALL_NAME nn-37f18f62d772.nnue)
set (NNUE_BIG_NAME nn-1111cefa1111.nnue)
file(COPY ../cpp/${NNUE_SMALL_NAME} DESTINATION ${CMAKE_BINARY_DIR})
file(COPY ../cpp/${NNUE_BIG_NAME} DESTINATION ${CMAKE_BINARY_DIR})
# Include directories
include_directories(
${STOCKFISH_DIR}
${BRIDGE_DIR}
)
# Find all Stockfish source files
file(GLOB STOCKFISH_SOURCES
${STOCKFISH_DIR}/*.cpp
${STOCKFISH_DIR}/nnue/*.cpp
${STOCKFISH_DIR}/nnue/features/*.cpp
${STOCKFISH_DIR}/syzygy/*.cpp
)
# Exclude main.cpp from Stockfish sources if it exists
list(FILTER STOCKFISH_SOURCES EXCLUDE REGEX "main\\.cpp$")
# Create a shared library
add_library(
stockfish-lib
SHARED
# JNI implementation
${CMAKE_CURRENT_SOURCE_DIR}/src/main/cpp/stockfish_jni.cpp
# Bridge implementation
${BRIDGE_DIR}/stockfish_bridge.cpp
# Stockfish sources
${STOCKFISH_SOURCES}
)
# Link against required libraries
target_link_libraries(
stockfish-lib
android
log
)