Fix zlib usage with TNG
[alexxy/gromacs.git] / docs / install-guide / CMakeLists.txt
1 #
2 # This file is part of the GROMACS molecular simulation package.
3 #
4 # Copyright (c) 2014, by the GROMACS development team, led by
5 # Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
6 # and including many others, as listed in the AUTHORS file in the
7 # top-level source directory and at http://www.gromacs.org.
8 #
9 # GROMACS is free software; you can redistribute it and/or
10 # modify it under the terms of the GNU Lesser General Public License
11 # as published by the Free Software Foundation; either version 2.1
12 # of the License, or (at your option) any later version.
13 #
14 # GROMACS is distributed in the hope that it will be useful,
15 # but WITHOUT ANY WARRANTY; without even the implied warranty of
16 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
17 # Lesser General Public License for more details.
18 #
19 # You should have received a copy of the GNU Lesser General Public
20 # License along with GROMACS; if not, see
21 # http://www.gnu.org/licenses, or write to the Free Software Foundation,
22 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA.
23 #
24 # If you want to redistribute modifications to GROMACS, please
25 # consider that scientific software is very special. Version
26 # control is crucial - bugs must be traceable. We will be happy to
27 # consider code for inclusion in the official distribution, but
28 # derived work must not be called official GROMACS. Details are found
29 # in the README & COPYING files - if they are missing, get the
30 # official version at http://www.gromacs.org.
31 #
32 # To help us fund GROMACS development, we humbly ask that you cite
33 # the research papers on the package. Check out http://www.gromacs.org.
34
35 set(INSTALL_GUIDE_BUILD_IS_POSSIBLE OFF)
36 if(NOT ${CMAKE_BINARY_DIR} STREQUAL ${CMAKE_SOURCE_DIR})
37     # We can only build the install guide outside of the source dir
38     find_package(Pandoc)
39     if(PANDOC_EXECUTABLE)
40         set(INSTALL_GUIDE_BUILD_IS_POSSIBLE ON)
41     endif()
42 endif()
43
44 if(INSTALL_GUIDE_BUILD_IS_POSSIBLE)
45     # Do replacement of CMake variables for version strings, etc.
46     # This defers until build time the configuration of
47     # install-guide.md, which could be faster for all the
48     # configurations that don't make the install guide even though it
49     # was possible.
50     configure_file(configure-install-guide.cmake.in
51         ${CMAKE_CURRENT_BINARY_DIR}/configure-install-guide.cmake
52         @ONLY)
53
54     # Configure the install-guide.md at build time
55     add_custom_command(
56         OUTPUT ${CMAKE_BINARY_DIR}/install-guide.md
57         COMMAND ${CMAKE_COMMAND}
58             -P ${CMAKE_CURRENT_BINARY_DIR}/configure-install-guide.cmake
59         DEPENDS
60             ${CMAKE_CURRENT_BINARY_DIR}/configure-install-guide.cmake
61             ${CMAKE_CURRENT_SOURCE_DIR}/install-guide.md
62         COMMENT "Configuring install guide"
63         VERBATIM
64         )
65
66     # Make the INSTALL file for CPack for the tarball. This gets put
67     # into the tarball via the CPack rules in the top-level
68     # CMakeLists.txt
69     add_custom_command(
70         OUTPUT final/INSTALL
71         COMMAND ${CMAKE_COMMAND} -E make_directory final
72         COMMAND ${PANDOC_EXECUTABLE} -t plain -o final/INSTALL install-guide.md
73         DEPENDS
74             ${CMAKE_BINARY_DIR}/install-guide.md
75         VERBATIM
76         )
77
78     # Make the single-page HTML install guide
79     add_custom_command(
80         OUTPUT ${HTML_OUTPUT_DIR}/install-guide.html
81         COMMAND
82             ${PANDOC_EXECUTABLE} install-guide.md -o ${HTML_OUTPUT_DIR}/install-guide.html -s --toc --css buttondown.css
83         DEPENDS
84             ${CMAKE_BINARY_DIR}/install-guide.md
85         VERBATIM
86         )
87
88     # Make the PDF install guide
89     add_custom_command(
90         OUTPUT ${HTML_OUTPUT_DIR}/install-guide.pdf
91         COMMAND
92             ${PANDOC_EXECUTABLE} install-guide.md -o ${HTML_OUTPUT_DIR}/install-guide.pdf -s --toc
93         DEPENDS
94             ${CMAKE_BINARY_DIR}/install-guide.md
95         VERBATIM
96         )
97
98     # Make the multi-page HTML install guide
99     #
100     # TODO This is currently disabled, because the pandoc-specific
101     # buttondown.css doesn't work with the different kind of output
102     # makeinfo produces. When we understand better how we want to
103     # do generation, decide whether we want multi-page HTML output
104     # and how to make it work well.
105     #
106     # add_custom_command(
107     #     OUTPUT ${HTML_OUTPUT_DIR}/index.html
108     #     COMMAND
109     #         ${PANDOC_EXECUTABLE} install-guide.md -o install-guide.texi -s
110     #     COMMAND
111     #         ${MAKEINFO_EXECUTABLE} install-guide.texi --html -o ${HTML_OUTPUT_DIR}/install-guide --css-ref buttondown.css
112     #     DEPENDS
113     #         ${CMAKE_BINARY_DIR}/install-guide.md
114     #     VERBATIM
115     #     )
116
117     # Add a top-level target for the webpage build to hook onto
118     add_custom_target(install-guide
119         DEPENDS
120             final/INSTALL
121             ${HTML_OUTPUT_DIR}/install-guide.html
122             ${HTML_OUTPUT_DIR}/install-guide.pdf
123         VERBATIM
124         )
125 endif()
126
127 set(INSTALL_GUIDE_BUILD_IS_POSSIBLE ${INSTALL_GUIDE_BUILD_IS_POSSIBLE} PARENT_SCOPE)