Skip to content

Commit 25ca056

Browse files
committed
Update CTranslate2 and cpu_features dependencies
1 parent 3b955e3 commit 25ca056

File tree

1 file changed

+27
-2
lines changed

1 file changed

+27
-2
lines changed

cmake/BuildCTranslate2.cmake

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,31 @@ elseif(WIN32)
6060
file(GLOB CT2_DLLS ${ctranslate2_fetch_SOURCE_DIR}/bin/*.dll)
6161
install(FILES ${CT2_DLLS} DESTINATION "obs-plugins/64bit")
6262
else()
63+
# build cpu_features from source
64+
set(CPU_FEATURES_VERSION "0.9.0")
65+
set(CPU_FEATURES_URL "https://github.com/google/cpu_features.git")
66+
set(CPU_FEATURES_CMAKE_ARGS -DBUILD_TESTS=OFF -DBUILD_SHARED_LIBS=OFF)
67+
68+
ExternalProject_Add(
69+
cpu_features_build
70+
GIT_REPOSITORY ${CPU_FEATURES_URL}
71+
GIT_TAG v${CPU_FEATURES_VERSION}
72+
GIT_PROGRESS 1
73+
BUILD_COMMAND ${CMAKE_COMMAND} --build <BINARY_DIR> --config ${CMAKE_BUILD_TYPE}
74+
CMAKE_GENERATOR ${CMAKE_GENERATOR}
75+
INSTALL_COMMAND ${CMAKE_COMMAND} --install <BINARY_DIR> --config ${CMAKE_BUILD_TYPE}
76+
CMAKE_ARGS -DCMAKE_GENERATOR_PLATFORM=${CMAKE_GENERATOR_PLATFORM} -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
77+
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} ${CPU_FEATURES_CMAKE_ARGS})
78+
ExternalProject_Get_Property(cpu_features_build INSTALL_DIR)
79+
80+
add_library(cpu_features STATIC IMPORTED GLOBAL)
81+
add_dependencies(cpu_features cpu_features_build)
82+
set_target_properties(
83+
cpu_features PROPERTIES IMPORTED_LOCATION
84+
${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}cpu_features${CMAKE_STATIC_LIBRARY_SUFFIX})
85+
set_target_properties(cpu_features PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include)
86+
87+
# build CTranslate2 from source
6388
set(CT2_VERSION "4.1.1")
6489
set(CT2_URL "https://github.com/OpenNMT/CTranslate2.git")
6590
set(CT2_OPENBLAS_CMAKE_ARGS -DWITH_OPENBLAS=OFF)
@@ -97,9 +122,9 @@ else()
97122
add_library(ct2::ct2 STATIC IMPORTED GLOBAL)
98123
add_dependencies(ct2::ct2 ct2_build)
99124
set_target_properties(ct2::ct2 PROPERTIES IMPORTED_LOCATION ${INSTALL_DIR}/${CT2_LIB_INSTALL_LOCATION})
125+
set_target_properties(ct2::ct2 PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include)
100126

101127
add_library(ct2 INTERFACE)
102-
target_link_libraries(ct2 INTERFACE ct2::ct2)
103-
set_target_properties(ct2::ct2 PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include)
128+
target_link_libraries(ct2 INTERFACE ct2::ct2 cpu_features)
104129

105130
endif()

0 commit comments

Comments
 (0)