Merge release-4-6 into master
[alexxy/gromacs.git] / src / programs / gmx / CreateLinks.cmake.cmakein
1 # TODO: It would be nicer to have the list generated from the binary,
2 # but this has some complications.  As the same list is also needed for
3 # man page generation, this can wait for now.
4 set(SYMLINK_NAMES
5     do_dssp
6     editconf
7     eneconv
8     genbox
9     genconf
10     genion
11     genrestr
12     make_edi
13     make_ndx
14     mk_angndx
15     trjcat
16     trjconv
17     trjorder
18     xpm2ps
19     g_anadock
20     g_anaeig
21     g_analyze
22     g_angle
23     g_bar
24     g_bond
25     g_bundle
26     g_chi
27     g_cluster
28     g_clustsize
29     g_confrms
30     g_covar
31     g_current
32     g_density
33     g_densmap
34     g_densorder
35     g_dielectric
36     g_dipoles
37     g_disre
38     g_dist
39     g_dos
40     g_dyecoupl
41     g_dyndom
42     g_enemat
43     g_energy
44     g_filter
45     g_gyrate
46     g_h2order
47     g_hbond
48     g_helix
49     g_helixorient
50     g_hydorder
51     g_kinetics
52     g_lie
53     g_mdmat
54     g_mindist
55     g_morph
56     g_msd
57     g_nmeig
58     g_nmens
59     g_nmtraj
60     g_options
61     g_order
62     g_polystat
63     g_potential
64     g_principal
65     g_rama
66     g_rdf
67     g_rms
68     g_rmsdist
69     g_rmsf
70     g_rotacf
71     g_rotmat
72     g_saltbr
73     g_sans
74     g_sas
75     g_saxs
76     g_select
77     g_sgangle
78     g_sham
79     g_sigeps
80     g_sorient
81     g_spatial
82     g_spol
83     g_tcaf
84     g_traj
85     g_vanhove
86     g_velacc
87     g_wham
88     g_wheel
89     )
90
91 if (NOT DEFINED BINARY_DIRECTORY)
92     set(BINARY_DIRECTORY "$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/@BIN_INSTALL_DIR@")
93 endif ()
94 set(BINARY_SUFFIX "@GMX_BINARY_SUFFIX@@CMAKE_EXECUTABLE_SUFFIX@")
95 set(GMX_NATIVE_WINDOWS "@GMX_NATIVE_WINDOWS@")
96
97 foreach (linkname ${SYMLINK_NAMES})
98     set(linkpath ${BINARY_DIRECTORY}/${linkname}${BINARY_SUFFIX})
99     # Based on documentation, CMake only supports symbolic links on Unix,
100     # although NTFS also has those (since Windows Vista; they require admin
101     # permissions to create).
102     if (GMX_NATIVE_WINDOWS)
103         if (NOT QUIETLY)
104             message(STATUS "Installing: Creating alias binary ${linkpath}")
105         endif ()
106         execute_process(
107             COMMAND ${CMAKE_COMMAND} -E copy_if_different
108                 ${BINARY_DIRECTORY}/gmx${BINARY_SUFFIX} ${linkpath})
109     else()
110         if (NOT QUIETLY)
111             message(STATUS "Installing: Creating symbolic link ${linkpath}")
112         endif ()
113         if (EXISTS ${linkpath})
114             FILE(REMOVE ${linkpath})
115         endif ()
116         execute_process(
117             COMMAND ${CMAKE_COMMAND} -E create_symlink
118                 gmx${BINARY_SUFFIX} ${linkpath})
119     endif()
120 endforeach ()