mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-22 12:23:37 -05:00
0e214efb9c
Using the CMake module GNUInstallDirs to set up standard locations which allows better customisation for packagers building for various distributions. The change does change some internal package file paths and will leave some files in old locations in Windows installations. Running uninstall is probably wise on Windows before installing this new package layout if future clean uninstalls are desired. Linux and other *nix package maintainers can use the CMake variables CMAKE_INSTALL_xxx to vary the install paths of various components. See the CMake GNUInstallDirs module documentation for more details. An example might be for Slackware where package documents are expected to be installed into <install-prefix>/doc/<package-name>-<package-version>/ whereas the GNU default is to install them into <install-prefix>/share/doc/<package-name>/. To achieve this set the CMake variable CMAKE_INSTALL_DOCDIR as follows when configuring: cmake -D CMAKE_INSTALL_DOCDIR:PATH=doc/wsjtx-1.7.1 -D CMAKE_INSTALL_PREFIX= ... git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx@7623 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
231 lines
6.9 KiB
CMake
231 lines
6.9 KiB
CMake
set (LANGUAGES
|
|
en
|
|
)
|
|
|
|
set (common_SRCS
|
|
common/communication.adoc
|
|
common/license.adoc
|
|
common/links.adoc
|
|
)
|
|
|
|
set (UG_SRCS
|
|
docinfo.html
|
|
docinfo.xml
|
|
acknowledgements.adoc
|
|
astro_data.adoc
|
|
config-details.adoc
|
|
controls-functions-center.adoc
|
|
controls-functions-left.adoc
|
|
controls-functions-main-window.adoc
|
|
controls-functions-menus.adoc
|
|
controls-functions-messages.adoc
|
|
controls-functions-status-bar.adoc
|
|
controls-functions-wide-graph.adoc
|
|
cooperating-programs.adoc
|
|
faq.adoc
|
|
font-sizes.adoc
|
|
install-from-source.adoc
|
|
install-linux.adoc
|
|
install-mac.adoc
|
|
install-windows.adoc
|
|
introduction.adoc
|
|
protocols.adoc
|
|
logging.adoc
|
|
make-qso.adoc
|
|
new_features.adoc
|
|
odds_and_ends.adoc
|
|
platform-dependencies.adoc
|
|
protocols.adoc
|
|
settings-advanced.adoc
|
|
settings-audio.adoc
|
|
settings-colors.adoc
|
|
settings-frequencies.adoc
|
|
settings-general.adoc
|
|
settings-radio.adoc
|
|
settings-reporting.adoc
|
|
settings-txmacros.adoc
|
|
support.adoc
|
|
system-requirements.adoc
|
|
transceiver-setup.adoc
|
|
tutorial-example1.adoc
|
|
tutorial-example2.adoc
|
|
tutorial-main-window.adoc
|
|
tutorial-wide-graph-settings.adoc
|
|
utilities.adoc
|
|
vhf-features.adoc
|
|
wsjtx-main.adoc
|
|
wspr.adoc
|
|
)
|
|
|
|
set (UG_IMGS
|
|
images/130610_2343-wav-80.png
|
|
images/AstroData_2.png
|
|
images/Astronomical_data.png
|
|
images/band-settings.png
|
|
images/colors.png
|
|
images/config-menu.png
|
|
images/decode-menu.png
|
|
images/decodes.png
|
|
images/download_samples.png
|
|
images/file-menu.png
|
|
images/freemsg.png
|
|
images/help-menu.png
|
|
images/JT4F.png
|
|
images/JT65B.png
|
|
images/MSK144.png
|
|
images/QRA64.png
|
|
images/WSPR_WideGraphControls.png
|
|
images/WSPR_1a.png
|
|
images/WSPR_2.png
|
|
images/jtalert.png
|
|
images/keyboard-shortcuts.png
|
|
images/log-qso.png
|
|
images/MacAppMenu.png
|
|
images/main-ui.png
|
|
images/main-ui-controls.png
|
|
images/misc-controls-center.png
|
|
images/misc-main-ui.png
|
|
images/mode-menu.png
|
|
images/new-msg-box.png
|
|
images/psk-reporter.png
|
|
images/r3666-config-screen-80.png
|
|
images/r3666-main-ui-80.png
|
|
images/r4148-txmac-ui.png
|
|
images/RadioTab.png
|
|
images/reporting.png
|
|
images/save-menu.png
|
|
images/settings-advanced.png
|
|
images/settings-audio.png
|
|
images/settings-frequencies.png
|
|
images/settings-general.png
|
|
images/setup-menu.png
|
|
images/special-mouse-commands.png
|
|
images/status-bar-a.png
|
|
images/traditional-msg-box.png
|
|
images/tx-macros.png
|
|
images/view-menu.png
|
|
images/wide-graph-controls.png
|
|
|
|
)
|
|
|
|
find_program (ASCIIDOCTOR_EXECUTABLE NAMES asciidoctor)
|
|
if (NOT ASCIIDOCTOR_EXECUTABLE)
|
|
message (FATAL_ERROR "asciidoctor is required to build the documentation
|
|
|
|
Building the documenation may optionally be turned off by setting the CMake
|
|
option WSJT_GENERATE_DOCS to OFF.")
|
|
endif (NOT ASCIIDOCTOR_EXECUTABLE)
|
|
|
|
find_program (FOPUB_EXECUTABLE NAMES fopub)
|
|
|
|
include (CMakeParseArguments)
|
|
|
|
# generate a document from asciidoc text files(s)
|
|
#
|
|
# HTML - generate an HTML document
|
|
# PDF - generate a PDF document
|
|
# SOURCE - top level asciidoc file
|
|
# ASCIIDOCTOR_OPTIONS - asciidoctor command options
|
|
# DEPENDS - dependent files
|
|
function (document)
|
|
cmake_parse_arguments (_args "HTML" "SOURCE;LANG;OUTPUT" "ASCIIDOCTOR_OPTIONS;PDF;DEPENDS" ${ARGN})
|
|
get_filename_component (_source_path ${_args_SOURCE} PATH)
|
|
get_filename_component (_source_name ${_args_SOURCE} NAME)
|
|
get_filename_component (_output_name_we ${_args_SOURCE} NAME_WE)
|
|
|
|
# HTML
|
|
if (${_args_HTML})
|
|
set (_html_file ${CMAKE_CURRENT_BINARY_DIR}/${_output_name_we}_${lang}.html)
|
|
add_custom_command (
|
|
OUTPUT ${_html_file}
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${_source_path}/${lang}
|
|
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ${_args_ASCIIDOCTOR_OPTIONS}
|
|
-b html5
|
|
-a VERSION_MAJOR=${WSJTX_VERSION_MAJOR}
|
|
-a VERSION_MINOR=${WSJTX_VERSION_MINOR}
|
|
-a VERSION_PATCH=${WSJTX_VERSION_PATCH}
|
|
-a VERSION=${wsjtx_VERSION}
|
|
--out-file=${_html_file} ${_source_name}
|
|
DEPENDS ${_args_DEPENDS}
|
|
COMMENT "Generating ${_html_file}"
|
|
)
|
|
list (APPEND _output_files ${_html_file})
|
|
endif (${_args_HTML})
|
|
|
|
# PDF
|
|
if (_args_PDF AND EXISTS ${FOPUB_EXECUTABLE})
|
|
set (_docbook_file ${CMAKE_CURRENT_BINARY_DIR}/${_output_name_we}_${lang}.xml)
|
|
set (_pdf_file_we ${CMAKE_CURRENT_BINARY_DIR}/${_output_name_we}_${lang})
|
|
if (${lang} MATCHES "^(en|es|fr)$") # en-us, fr-ca and es-{mx,co} use US-Letter or equivalent
|
|
set (_usl_commands
|
|
COMMAND ${FOPUB_EXECUTABLE} ARGS ${_docbook_file} ${_args_PDF} -param paper.type USLetter
|
|
COMMAND ${CMAKE_COMMAND} ARGS -E rename ${_pdf_file_we}.pdf '${_pdf_file_we} \(USLetter\).pdf'
|
|
)
|
|
list (APPEND _output_files "${_pdf_file_we} (USLetter).pdf")
|
|
endif ()
|
|
list (APPEND _output_files "${_pdf_file_we}.pdf")
|
|
add_custom_command (
|
|
OUTPUT ${_docbook_file} ${_output_files}
|
|
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${_source_path}/${lang}
|
|
COMMAND ${ASCIIDOCTOR_EXECUTABLE} ARGS ${_args_ASCIIDOCTOR_OPTIONS}
|
|
-b docbook
|
|
-a data-uri!
|
|
-a VERSION_MAJOR=${WSJTX_VERSION_MAJOR}
|
|
-a VERSION_MINOR=${WSJTX_VERSION_MINOR}
|
|
-a VERSION_PATCH=${WSJTX_VERSION_PATCH}
|
|
-a VERSION=${wsjtx_VERSION}
|
|
-D ${CMAKE_CURRENT_BINARY_DIR}
|
|
-o ${_docbook_file} ${_source_name}
|
|
${_usl_commands}
|
|
COMMAND ${FOPUB_EXECUTABLE} ARGS ${_docbook_file} ${_args_PDF} -param paper.type A4
|
|
COMMAND ${CMAKE_COMMAND} ARGS -E rename ${_pdf_file_we}.pdf '${_pdf_file_we}.pdf'
|
|
DEPENDS ${_args_DEPENDS}
|
|
COMMENT "Generating ${_output_files}"
|
|
)
|
|
endif (_args_PDF AND EXISTS ${FOPUB_EXECUTABLE})
|
|
|
|
set (${_args_OUTPUT} ${_output_files} PARENT_SCOPE)
|
|
endfunction (document)
|
|
|
|
set (htmls)
|
|
set (pdfs)
|
|
foreach (lang ${LANGUAGES})
|
|
set (_sources)
|
|
foreach (_src ${UG_SRCS} ${UG_IMGS})
|
|
list (APPEND _sources "user_guide/${lang}/${_src}")
|
|
endforeach ()
|
|
document(
|
|
HTML
|
|
SOURCE user_guide/wsjtx-main.adoc
|
|
LANG "${lang}"
|
|
OUTPUT html
|
|
ASCIIDOCTOR_OPTIONS -d book -a data-uri -a toc=left -a max-width=1024px
|
|
DEPENDS ${common_SRCS} ${_sources}
|
|
)
|
|
document(
|
|
PDF -param body.font.master 11 -param body.font.family "'Noto Sans, Helvetica, sans-serif'" -param title.font.family "'Noto Serif, Times New Roman, serif'" -param page.margin.inner 1cm -param page.margin.outer 1cm -param page.margin.top 0.75cm -param page.margin.bottom 0.5cm -param generate.toc 0
|
|
SOURCE user_guide/wsjtx-main.adoc
|
|
LANG "${lang}"
|
|
OUTPUT pdf
|
|
ASCIIDOCTOR_OPTIONS -d book
|
|
DEPENDS ${common_SRCS} ${_sources}
|
|
)
|
|
list (APPEND htmls "${html}")
|
|
list (APPEND pdfs "${pdf}")
|
|
endforeach ()
|
|
|
|
add_custom_target (docs ALL DEPENDS ${htmls} ${pdfs})
|
|
|
|
foreach (_html ${htmls})
|
|
get_filename_component (_path ${_html} PATH)
|
|
get_filename_component (_nwe ${_html} NAME_WE)
|
|
get_filename_component (_ext ${_html} EXT)
|
|
string (REGEX REPLACE "_en$" "" _nwe ${_nwe})
|
|
install (FILES
|
|
${_html}
|
|
DESTINATION ${CMAKE_INSTALL_DOCDIR}
|
|
RENAME ${_nwe}-${wsjtx_VERSION}${_ext}
|
|
#COMPONENT runtime
|
|
)
|
|
endforeach ()
|