-cmake_minimum_required (VERSION 3.0)
+cmake_minimum_required (VERSION 3.19)
project(whisper.cpp VERSION 1.0.4)
-set(CMAKE_EXPORT_COMPILE_COMMANDS "on")
-set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
-set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
+# Add path to modules
+list( APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/" )
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
set(WHISPER_STANDALONE ON)
- include(cmake/GitVars.cmake)
- include(cmake/BuildTypes.cmake)
+ include(GitVars)
+ include(BuildTypes)
# configure project version
if (EXISTS "${CMAKE_SOURCE_DIR}/bindings/ios/Makefile-tmpl")
# dependencies
-set(CMAKE_C_STANDARD 11)
-set(CMAKE_CXX_STANDARD 11)
-
find_package(Threads REQUIRED)
# on APPLE - include Accelerate framework
whisper.cpp
)
+include(DefaultTargetOptions)
+
target_include_directories(${TARGET} PUBLIC
.
)
--- /dev/null
+# Set the default compile features and properties for a target.
+
+if (NOT TARGET)
+ message(FATAL_ERROR "TARGET not set before including DefaultTargetOptions")
+endif()
+
+target_compile_features(${TARGET}
+ PRIVATE
+ cxx_std_11
+ )
+
+set_target_properties(${TARGET}
+ PROPERTIES
+ EXPORT_COMPILE_COMMANDS ON
+ RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin"
+ INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib"
+)
emscripten.cpp
)
+include(DefaultTargetOptions)
+
target_link_libraries(${TARGET} PRIVATE
whisper
)
set(TARGET bench)
add_executable(${TARGET} bench.cpp)
+
+include(DefaultTargetOptions)
+
target_link_libraries(${TARGET} PRIVATE whisper ${CMAKE_THREAD_LIBS_INIT})
emscripten.cpp
)
+include(DefaultTargetOptions)
+
target_link_libraries(${TARGET} PRIVATE
whisper
)
# command
set(TARGET command)
add_executable(${TARGET} command.cpp)
+
+ include(DefaultTargetOptions)
+
target_include_directories(${TARGET} PRIVATE ${SDL2_INCLUDE_DIRS})
target_link_libraries(${TARGET} PRIVATE whisper ${SDL2_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
endif ()
set(TARGET main)
add_executable(${TARGET} main.cpp)
+
+include(DefaultTargetOptions)
+
target_link_libraries(${TARGET} PRIVATE whisper ${CMAKE_THREAD_LIBS_INIT})
emscripten.cpp
)
+include(DefaultTargetOptions)
+
target_link_libraries(${TARGET} PRIVATE
whisper
)
# stream
set(TARGET stream)
add_executable(${TARGET} stream.cpp)
+
+ include(DefaultTargetOptions)
+
target_include_directories(${TARGET} PRIVATE ${SDL2_INCLUDE_DIRS})
target_link_libraries(${TARGET} PRIVATE whisper ${SDL2_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
endif ()
gpt-2.cpp
)
+include(DefaultTargetOptions)
+
target_link_libraries(${TARGET} PRIVATE
whisper
)
# TODO: this is temporary
# need to export ggml symbols for MSVC, but too lazy ..
add_executable(${TARGET} talk.cpp gpt-2.cpp ../../ggml.c ../../whisper.cpp)
+
+ include(DefaultTargetOptions)
+
target_include_directories(${TARGET} PRIVATE ${SDL2_INCLUDE_DIRS} ../../)
target_link_libraries(${TARGET} PRIVATE ${SDL2_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
endif ()
emscripten.cpp
)
+include(DefaultTargetOptions)
+
target_link_libraries(${TARGET} PRIVATE
whisper
)