From c76eef3bff486476f8c2d50a65e968b3fb59b442 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaakko=20Kera=CC=88nen?= Date: Fri, 20 Feb 2015 22:28:14 +0200 Subject: [PATCH] CMake: Compile and install readme documentation --- doomsday/apps/client/CMakeLists.txt | 21 ++++++++------- doomsday/apps/server/CMakeLists.txt | 11 ++------ doomsday/cmake/Macros.cmake | 34 +++++++++++++++++++++--- doomsday/cmake/PlatformMacx.cmake | 1 + doomsday/cmake/PlatformUnix.cmake | 3 ++- doomsday/external/assimp | 2 +- doomsday/tools/shell-text/CMakeLists.txt | 9 +------ 7 files changed, 50 insertions(+), 31 deletions(-) diff --git a/doomsday/apps/client/CMakeLists.txt b/doomsday/apps/client/CMakeLists.txt index db9dce33d9..0f1ac3b7d8 100644 --- a/doomsday/apps/client/CMakeLists.txt +++ b/doomsday/apps/client/CMakeLists.txt @@ -28,24 +28,27 @@ if (APPLE) include_directories (include/macx) list (APPEND HEADERS include/macx/MusicPlayer.h) list (APPEND SOURCES src/macx/MusicPlayer.mm) + + set (readme "${CMAKE_CURRENT_BINARY_DIR}/Read Me.rtf") + deng_add_amedoc (RTF ${readme} ${DENG_SOURCE_DIR}/doc/readme readme.ame) + install (FILES ${readme} DESTINATION .) + list (APPEND SOURCES ${readme}) +else () + # Plain text readme for other platforms. + set (readme "${CMAKE_CURRENT_BINARY_DIR}/readme.txt") + deng_add_amedoc (TXT ${readme} ${DENG_SOURCE_DIR}/doc/readme readme.ame) + list (APPEND SOURCES ${readme}) endif () deng_filter_platform_sources (src ${SOURCES} ${HEADERS} ${API_HEADERS}) if (UNIX) include_directories (include/unix) + if (AMETHYST_FOUND) set (MAN_PAGE ${CMAKE_CURRENT_BINARY_DIR}/doomsday.6) + deng_add_amedoc (MAN ${MAN_PAGE} ${DENG_SOURCE_DIR}/doc/readme readme.ame) list (APPEND src ${MAN_PAGE}) - set (DOC_DIR ${DENG_SOURCE_DIR}/doc/readme) - file (GLOB ameSrc ${DOC_DIR}/*.ame) - add_custom_command ( - OUTPUT ${MAN_PAGE} - COMMAND "${AMETHYST_COMMAND}" -dMAN -dUNIX -odoomsday.6 ${DOC_DIR}/readme.ame - DEPENDS ${ameSrc} - COMMENT "Compiling manual page..." - ) - install (FILES ${MAN_PAGE} DESTINATION share/man/man6) endif () endif () diff --git a/doomsday/apps/server/CMakeLists.txt b/doomsday/apps/server/CMakeLists.txt index 59434d6ad4..036f84bad3 100644 --- a/doomsday/apps/server/CMakeLists.txt +++ b/doomsday/apps/server/CMakeLists.txt @@ -249,15 +249,8 @@ if (UNIX) if (AMETHYST_FOUND) set (MAN_PAGE ${CMAKE_CURRENT_BINARY_DIR}/doomsday-server.6) list (APPEND SOURCES ${MAN_PAGE}) - set (DOC_DIR ${DENG_SOURCE_DIR}/doc/server) - add_custom_command ( - OUTPUT ${MAN_PAGE} - COMMAND "${AMETHYST_COMMAND}" -dMAN -dUNIX -odoomsday-server.6 ${DOC_DIR}/server.ame - DEPENDS ${DOC_DIR}/server.ame ${DOC_DIR}/manpage.ame - COMMENT "Compiling manual page..." - ) - install (FILES ${MAN_PAGE} DESTINATION share/man/man6) - endif () + deng_add_amedoc (MAN ${MAN_PAGE} ${DENG_SOURCE_DIR}/doc/server server.ame) + endif () endif () add_executable (server ${SOURCES} ${HEADERS} ${API_HEADERS} ${SHARED_WITH_CLIENT}) diff --git a/doomsday/cmake/Macros.cmake b/doomsday/cmake/Macros.cmake index eeff4d0740..c95696fe82 100644 --- a/doomsday/cmake/Macros.cmake +++ b/doomsday/cmake/Macros.cmake @@ -93,13 +93,14 @@ endmacro (relaxed_warnings) macro (deng_target_rpath target) if (APPLE) set_target_properties (${target} PROPERTIES - INSTALL_RPATH "@loader_path/../Frameworks" + INSTALL_RPATH "@loader_path/../Frameworks;@executable_path/../${DENG_INSTALL_LIB_DIR}" ) if (${target} MATCHES "test_.*") + # These won't be deployed, so we can use the full path. set_property (TARGET ${target} APPEND PROPERTY INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${DENG_INSTALL_LIB_DIR}" ) - endif () + endif () elseif (UNIX) set_property (TARGET ${target} PROPERTY INSTALL_RPATH @@ -487,7 +488,7 @@ function (deng_install_deployqt target) return () # No need to deploy Qt. endif () get_property (_outName TARGET ${target} PROPERTY OUTPUT_NAME) - if (APPLE) # AND NOT DENG_DEVELOPER) # don't run this on a dev build + if (APPLE AND NOT DENG_DEVELOPER) # dev builds are not deployed elsewhere if (NOT MACDEPLOYQT_COMMAND) message (FATAL_ERROR "macdeployqt not available") endif () @@ -533,3 +534,30 @@ macro (deng_install_library library) endif () endmacro (deng_install_library) +function (deng_add_amedoc type file ameSourceDir mainSrc) + if (AMETHYST_FOUND) + set (pfm ${DENG_AMETHYST_PLATFORM}) + if (type STREQUAL MAN) + set (descText "manual page") + set (pfm UNIX) # man pages are always for Unix + elseif (type STREQUAL RTF) + set (descText "rich text document") + else () + set (descText "text document") + endif () + file (GLOB_RECURSE _ameSrc ${ameSourceDir}/*.ame) + get_filename_component (_name ${file} NAME) + add_custom_command ( + OUTPUT ${file} + COMMAND "${AMETHYST_COMMAND}" -d${type} -d${pfm} + -o${_name} ${ameSourceDir}/${mainSrc} + DEPENDS ${_ameSrc} + COMMENT "Compiling ${descText}..." + ) + if (${type} STREQUAL MAN) + install (FILES ${file} DESTINATION share/man/man6) + else () + install (FILES ${file} DESTINATION ${DENG_INSTALL_DOC_DIR}/doomsday) + endif () + endif () +endfunction (deng_add_amedoc) diff --git a/doomsday/cmake/PlatformMacx.cmake b/doomsday/cmake/PlatformMacx.cmake index 96b89561db..f905caa8ed 100644 --- a/doomsday/cmake/PlatformMacx.cmake +++ b/doomsday/cmake/PlatformMacx.cmake @@ -1,6 +1,7 @@ include (PlatformGenericUnix) set (DENG_PLATFORM_SUFFIX macx) +set (DENG_AMETHYST_PLATFORM MACOSX) add_definitions ( -DMACOSX diff --git a/doomsday/cmake/PlatformUnix.cmake b/doomsday/cmake/PlatformUnix.cmake index 1fbc9a5c55..28002d1eba 100644 --- a/doomsday/cmake/PlatformUnix.cmake +++ b/doomsday/cmake/PlatformUnix.cmake @@ -1,8 +1,9 @@ # Linux / BSD / other Unix include (PlatformGenericUnix) -set (DENG_PLATFORM_SUFFIX x11) set (DENG_X11 ON) +set (DENG_PLATFORM_SUFFIX x11) +set (DENG_AMETHYST_PLATFORM UNIX) add_definitions ( -DDENG_X11 diff --git a/doomsday/external/assimp b/doomsday/external/assimp index 9553de3de6..3fd16b92e3 160000 --- a/doomsday/external/assimp +++ b/doomsday/external/assimp @@ -1 +1 @@ -Subproject commit 9553de3de641eaef50faac384fcc35039aee4735 +Subproject commit 3fd16b92e35bcd21b448d43abc519ac4b540d394 diff --git a/doomsday/tools/shell-text/CMakeLists.txt b/doomsday/tools/shell-text/CMakeLists.txt index dc11698d91..da91d86760 100644 --- a/doomsday/tools/shell-text/CMakeLists.txt +++ b/doomsday/tools/shell-text/CMakeLists.txt @@ -27,15 +27,8 @@ file (GLOB SOURCES src/*.cpp src/*.h) if (AMETHYST_FOUND) if (UNIX) set (MAN_PAGE ${CMAKE_CURRENT_BINARY_DIR}/doomsday-shell-text.6) - set (DOC_DIR ${DENG_SOURCE_DIR}/doc/shell-text) - add_custom_command ( - OUTPUT ${MAN_PAGE} - COMMAND "${AMETHYST_COMMAND}" -dMAN -dUNIX -odoomsday-shell-text.6 ${DOC_DIR}/shell-text.ame - DEPENDS ${DOC_DIR}/shell-text.ame - COMMENT "Compiling manual page..." - ) - install (FILES ${MAN_PAGE} DESTINATION share/man/man6) list (APPEND SOURCES ${MAN_PAGE}) + deng_add_amedoc (MAN ${MAN_PAGE} ${DENG_SOURCE_DIR}/doc/shell-text shell-text.ame) endif () endif ()