argosopentech / MetalTranslate

Customizable machine translation in C++
MIT License
40 stars 7 forks source link

Link to specified external library version #7

Open leedors527 opened 3 weeks ago

leedors527 commented 3 weeks ago
cmake_minimum_required(VERSION 3.10)

project(MetalTranslate)

include(ExternalProject)

set(EXTERNAL_INSTALL_LOCATION ${CMAKE_BINARY_DIR}/external)

# CTranslate2 External Project
ExternalProject_Add(CTranslate2
    GIT_REPOSITORY https://github.com/OpenNMT/CTranslate2
    GIT_TAG 4908b9d
    CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTERNAL_INSTALL_LOCATION} -DWITH_MKL=OFF -DWITH_DNNL=ON
)

# Tokenizer External Project
ExternalProject_Add(Tokenizer
    GIT_REPOSITORY https://github.com/OpenNMT/Tokenizer
    GIT_TAG 559b8e7
    CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${EXTERNAL_INSTALL_LOCATION}
)

# Include directories for CTranslate2 and Tokenizer
include_directories(${EXTERNAL_INSTALL_LOCATION}/include)
link_directories(${EXTERNAL_INSTALL_LOCATION}/lib)

# Ensure CTranslate2 and Tokenizer are built before metaltranslate
add_executable(metaltranslate src/main.cpp)

# Add the MetalTranslate sources
set(TARGET_H
    src/MetalTranslate.h
    src/MetalTranslateConfig.h)

target_sources(metaltranslate PRIVATE src/MetalTranslate.cpp)

# Link the external libraries
add_dependencies(metaltranslate CTranslate2 Tokenizer)
target_link_libraries(metaltranslate ${EXTERNAL_INSTALL_LOCATION}/lib/libctranslate2.so)
target_link_libraries(metaltranslate ${EXTERNAL_INSTALL_LOCATION}/lib/libOpenNMTTokenizer.so)

Please revise CMakelists.txt like this. It was not works previous version on my machine