From 524412f52e4cef202f79ae847f06deade39dc4b5 Mon Sep 17 00:00:00 2001 From: Yury Popov Date: Thu, 23 Mar 2023 17:19:52 +0300 Subject: [PATCH 1/6] cmake: do not install internal libs --- src/speechPlayer/CMakeLists.txt | 1 - src/ucd-tools/CMakeLists.txt | 1 - 2 files changed, 2 deletions(-) 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) From 631a8f3fa156bc1aa85625cb45d11b2471636fb8 Mon Sep 17 00:00:00 2001 From: Yury Popov Date: Thu, 23 Mar 2023 17:23:40 +0300 Subject: [PATCH 2/6] cmake: versioned library install --- src/libespeak-ng/CMakeLists.txt | 5 +++++ 1 file changed, 5 insertions(+) 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) From 5161577a6d5724c249489750f0a093e9d30df98e Mon Sep 17 00:00:00 2001 From: Yury Popov Date: Thu, 23 Mar 2023 17:30:39 +0300 Subject: [PATCH 3/6] cmake: install compat binaries --- cmake/config.cmake | 2 ++ src/CMakeLists.txt | 12 ++++++++++-- 2 files changed, 12 insertions(+), 2 deletions(-) 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/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 From 60d60e1fc97bafaad8b9aac38d214060d88401e1 Mon Sep 17 00:00:00 2001 From: Yury Popov Date: Thu, 23 Mar 2023 17:37:07 +0300 Subject: [PATCH 4/6] cmake: install vim data Co-authored-by: Alexander Epaneshnikov --- CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index b1c88ce2..07b2b6e1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -29,3 +29,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 From b1c33e1ff9f9b7eb7fe804b1c3308f446991504f Mon Sep 17 00:00:00 2001 From: Yury Popov Date: Thu, 23 Mar 2023 17:54:29 +0300 Subject: [PATCH 5/6] cmake: install pkgconfig file --- cmake/package.cmake | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) 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 From 25221d73640ccdd597a9cb2180de41db2e5faaf6 Mon Sep 17 00:00:00 2001 From: Yury Popov Date: Thu, 23 Mar 2023 18:04:21 +0300 Subject: [PATCH 6/6] cmake: add manpages --- CMakeLists.txt | 1 + cmake/docs.cmake | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 cmake/docs.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 07b2b6e1..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) 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