diff --git a/CMakeLists.txt b/CMakeLists.txt index b1c88ce2..b3ac06eb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -12,6 +12,7 @@ include(cmake/deps.cmake) include(cmake/config.cmake) add_subdirectory(src) include(cmake/data.cmake) +include(cmake/docs.cmake) include(cmake/package.cmake) include(CPack) @@ -29,3 +30,7 @@ message(STATUS " libpcaudio: ${USE_LIBPCAUDIO} (${PCAUDIO_LIB} ${PCAUDIO_INC})" message(STATUS " klatt: ${USE_KLATT}") message(STATUS " speech-player: ${USE_SPEECHPLAYER}") message(STATUS " async: ${USE_ASYNC}") + +install( + DIRECTORY vim/ftdetect vim/syntax DESTINATION share/vim/vimfiles +) \ No newline at end of file diff --git a/cmake/config.cmake b/cmake/config.cmake index 5e1d47b5..962da414 100644 --- a/cmake/config.cmake +++ b/cmake/config.cmake @@ -12,3 +12,5 @@ if (HAVE_PTHREAD) else() set(USE_ASYNC OFF) endif() + +option(ESPEAK_COMPAT "Install compat binary symlinks" OFF) \ No newline at end of file diff --git a/cmake/docs.cmake b/cmake/docs.cmake new file mode 100644 index 00000000..b7e977f7 --- /dev/null +++ b/cmake/docs.cmake @@ -0,0 +1,28 @@ +find_program(RONN ronn) + +option(ESPEAK_BUILD_MANPAGES "Build manpages" ${RONN}) + +if (RONN AND ESPEAK_BUILD_MANPAGES) + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/espeak-ng.1 + COMMAND ${RONN} --roff -o ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/src/espeak-ng.1.ronn + ) + add_custom_command( + OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/speak-ng.1 + COMMAND ${RONN} --roff -o ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/src/speak-ng.1.ronn + ) + + add_custom_target( + docs ALL + DEPENDS + ${CMAKE_CURRENT_BINARY_DIR}/espeak-ng.1 + ${CMAKE_CURRENT_BINARY_DIR}/speak-ng.1 + ) + + install( + FILES + ${CMAKE_CURRENT_BINARY_DIR}/espeak-ng.1 + ${CMAKE_CURRENT_BINARY_DIR}/speak-ng.1 + DESTINATION share/man/man1 + ) +endif() \ No newline at end of file diff --git a/cmake/package.cmake b/cmake/package.cmake index 29ba8604..113c7fe7 100644 --- a/cmake/package.cmake +++ b/cmake/package.cmake @@ -15,3 +15,21 @@ list(APPEND CPACK_SOURCE_IGNORE_FILES /tools/ /vim/ ) + +set(PACKAGE_NAME ${PROJECT_NAME}) +set(VERSION ${PROJECT_VERSION}) + +set(prefix ${CMAKE_INSTALL_PREFIX}) +set(exec_prefix ${CMAKE_INSTALL_PREFIX}) +set(libdir "\${exec_prefix}/lib") +set(includedir "\${prefix}/include") + +configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}.pc.in + ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc + @ONLY +) + +install( + FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc DESTINATION lib/pkgconfig +) \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index cb16ee51..03b4a7d9 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -19,10 +19,18 @@ endif() if (NOT WIN32) add_custom_target( speak-ng ALL - ${CMAKE_COMMAND} -E create_symlink espeak-ng ${CMAKE_CURRENT_BINARY_DIR}/speak-ng - COMMENT "Link espeak-ng to speak-ng" + COMMAND ${CMAKE_COMMAND} -E create_symlink espeak-ng ${CMAKE_CURRENT_BINARY_DIR}/speak-ng + COMMAND ${CMAKE_COMMAND} -E create_symlink espeak-ng ${CMAKE_CURRENT_BINARY_DIR}/espeak + COMMAND ${CMAKE_COMMAND} -E create_symlink espeak-ng ${CMAKE_CURRENT_BINARY_DIR}/speak + COMMENT "Link espeak-ng to compat names" DEPENDS espeak-ng-bin ) endif() install(TARGETS espeak-ng-bin) install(DIRECTORY include/espeak include/espeak-ng TYPE INCLUDE) + +if (ESPEAK_COMPAT AND NOT WIN32) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/speak-ng DESTINATION bin) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/espeak DESTINATION bin) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/speak DESTINATION bin) +endif() \ No newline at end of file diff --git a/src/libespeak-ng/CMakeLists.txt b/src/libespeak-ng/CMakeLists.txt index fcc596f7..f59bc734 100644 --- a/src/libespeak-ng/CMakeLists.txt +++ b/src/libespeak-ng/CMakeLists.txt @@ -115,4 +115,9 @@ if (MINGW) target_link_options(espeak-ng PRIVATE "-static-libstdc++" "-static") endif() +set_target_properties(espeak-ng PROPERTIES + SOVERSION ${PROJECT_VERSION_MAJOR} + VERSION ${PROJECT_VERSION} +) + install(TARGETS espeak-ng LIBRARY) diff --git a/src/speechPlayer/CMakeLists.txt b/src/speechPlayer/CMakeLists.txt index ed92589c..137dda45 100644 --- a/src/speechPlayer/CMakeLists.txt +++ b/src/speechPlayer/CMakeLists.txt @@ -7,4 +7,3 @@ target_include_directories(speechPlayer PUBLIC include) if(NOT MSVC) target_compile_options(speechPlayer PRIVATE "-fPIC") endif() -install(TARGETS speechPlayer ARCHIVE) diff --git a/src/ucd-tools/CMakeLists.txt b/src/ucd-tools/CMakeLists.txt index 6ff61022..2050c114 100644 --- a/src/ucd-tools/CMakeLists.txt +++ b/src/ucd-tools/CMakeLists.txt @@ -7,4 +7,3 @@ add_library(ucd STATIC src/tostring.c ) target_include_directories(ucd PUBLIC src/include) -install(TARGETS ucd ARCHIVE)