# To help us fund GROMACS development, we humbly ask that you cite
# the research papers on the package. Check out http://www.gromacs.org.
-if(NOT SOURCE_IS_SOURCE_DISTRIBUTION)
- if(NOT CMAKE_CROSSCOMPILING)
- # Defaults to off to avoid breaking the build.
- # Can be changed if someone finds a nice solution for cases where the
- # binary does not execute on the compilation host.
- option(GMX_BUILD_MANPAGES "Build man pages" OFF)
- mark_as_advanced(GMX_BUILD_MANPAGES)
- else()
- message(STATUS "Building the man pages is not available when "
- "cross-compiling the developer version from git")
- endif()
-else()
+if(SOURCE_IS_SOURCE_DISTRIBUTION)
# Make sure source package contains all man pages.
if(NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/man1/gmx-view.1")
message(FATAL_ERROR "Man pages are missing from source package.")
endif()
endif()
-if(GMX_BUILD_MANPAGES)
- file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/man1)
- file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/man7)
- file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/man7/gromacs.7.in
- DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/man7)
- # TODO: It could be nicer to not do this as part of the ALL target,
- # but instead on demand as part of make install.
- add_custom_target(man ALL
- gmx -quiet help -export man
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
- COMMENT "Generating man pages for programs"
- VERBATIM)
- install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/man1
- DESTINATION ${MAN_INSTALL_DIR}
- COMPONENT man)
- install(FILES ${CMAKE_CURRENT_BINARY_DIR}/man7/gromacs.7
- DESTINATION ${MAN_INSTALL_DIR}/man7
- COMPONENT man)
+add_custom_target(man
+ ${CMAKE_COMMAND} -E make_directory man1
+ COMMAND ${CMAKE_COMMAND} -E make_directory man7
+ COMMAND ${CMAKE_COMMAND} -E copy "${CMAKE_CURRENT_SOURCE_DIR}/man7/gromacs.7.in" man7/
+ COMMAND gmx -quiet help -export man
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+ COMMENT "Generating man pages"
+ VERBATIM)
+
+set(MAN_PAGE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
+if (GMX_BUILD_HELP)
+ set_target_properties(man PROPERTIES EXCLUDE_FROM_ALL OFF)
set_directory_properties(PROPERTIES
- ADDITIONAL_MAKE_CLEAN_FILES man1)
+ ADDITIONAL_MAKE_CLEAN_FILES "man1;man7/gromacs.7")
+ set(MAN_PAGE_DIR ${CMAKE_CURRENT_BINARY_DIR})
+endif()
# man pages are only available if they are either build or this is a source archive
-elseif(SOURCE_IS_SOURCE_DISTRIBUTION)
- install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/man7/gromacs.7
+if (SOURCE_IS_SOURCE_DISTRIBUTION OR GMX_BUILD_HELP)
+ install(FILES ${MAN_PAGE_DIR}/man7/gromacs.7
DESTINATION ${MAN_INSTALL_DIR}/man7
COMPONENT man)
- install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/man1
+ install(DIRECTORY ${MAN_PAGE_DIR}/man1
DESTINATION ${MAN_INSTALL_DIR}
COMPONENT man)
endif()