@@ -60,6 +60,31 @@ elseif(WIN32)
60
60
file (GLOB CT2_DLLS ${ctranslate2_fetch_SOURCE_DIR} /bin/*.dll )
61
61
install (FILES ${CT2_DLLS} DESTINATION "obs-plugins/64bit" )
62
62
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
63
88
set (CT2_VERSION "4.1.1" )
64
89
set (CT2_URL "https://github.com/OpenNMT/CTranslate2.git" )
65
90
set (CT2_OPENBLAS_CMAKE_ARGS -DWITH_OPENBLAS=OFF )
@@ -97,9 +122,9 @@ else()
97
122
add_library (ct2::ct2 STATIC IMPORTED GLOBAL )
98
123
add_dependencies (ct2::ct2 ct2_build )
99
124
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 )
100
126
101
127
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 )
104
129
105
130
endif ()
0 commit comments