1 #########################################
2 ### Fill in the "make install" target ###
3 #########################################
7 #### Generate the manpages
10 set( MANPAGE_DIR ${CMAKE_BINARY_DIR}/manpages )
13 add_custom_target(manpages ALL
14 COMMAND ${CMAKE_COMMAND} -E make_directory ${MANPAGE_DIR}
15 COMMAND pod2man ${CMAKE_HOME_DIRECTORY}/tools/simgrid_update_xml.pl > ${MANPAGE_DIR}/simgrid_update_xml.1
16 COMMENT "Generating manpages"
18 install(FILES ${MANPAGE_DIR}/simgrid_update_xml.1 ${CMAKE_HOME_DIRECTORY}/tools/tesh/tesh.1
19 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/share/man/man1)
24 install(PROGRAMS ${CMAKE_BINARY_DIR}/bin/smpicc
25 ${CMAKE_BINARY_DIR}/bin/smpif2c
26 ${CMAKE_BINARY_DIR}/bin/smpiff
27 ${CMAKE_BINARY_DIR}/bin/smpif90
28 ${CMAKE_BINARY_DIR}/bin/smpirun
29 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/)
31 install(PROGRAMS ${CMAKE_BINARY_DIR}/bin/tesh
32 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/)
34 install(PROGRAMS ${CMAKE_BINARY_DIR}/bin/graphicator
35 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/)
37 install(PROGRAMS ${CMAKE_HOME_DIRECTORY}/tools/MSG_visualization/colorize.pl
38 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/
39 RENAME simgrid-colorizer)
41 add_custom_target(simgrid-colorizer ALL
42 COMMENT "Install ${CMAKE_BINARY_DIR}/bin/colorize"
43 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_HOME_DIRECTORY}/tools/MSG_visualization/colorize.pl ${CMAKE_BINARY_DIR}/bin/colorize
46 install(PROGRAMS ${CMAKE_HOME_DIRECTORY}/tools/simgrid_update_xml.pl
47 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/
48 RENAME simgrid_update_xml)
50 add_custom_target(simgrid_update_xml ALL
51 COMMENT "Install ${CMAKE_BINARY_DIR}/bin/simgrid_update_xml"
52 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_HOME_DIRECTORY}/tools/simgrid_update_xml.pl ${CMAKE_BINARY_DIR}/bin/simgrid_update_xml
56 install(TARGETS simgrid
57 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/)
61 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/)
64 if(enable_lib_static AND NOT WIN32)
65 install(TARGETS simgrid_static
66 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/)
68 install(TARGETS smpi_static
69 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/)
76 ${generated_headers_to_install}
78 foreach(file ${HEADERS})
79 get_filename_component(location ${file} PATH)
80 string(REPLACE "${CMAKE_CURRENT_BINARY_DIR}/" "" location "${location}")
82 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${location})
83 endforeach(file ${HEADERS})
86 foreach(file ${examples_to_install})
87 string(REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/examples/" "" file ${file})
88 get_filename_component(location ${file} PATH)
89 install(FILES "examples/${file}"
90 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/doc/simgrid/examples/${location})
91 endforeach(file ${examples_to_install})
96 file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/lib/lua/5.1")
97 add_custom_target(simgrid_lua ALL
99 ${CMAKE_BINARY_DIR}/lib/lua/5.1/simgrid.${LIB_EXE}
102 OUTPUT ${CMAKE_BINARY_DIR}/lib/lua/5.1/simgrid.${LIB_EXE}
103 COMMAND ${CMAKE_COMMAND} -E create_symlink ../../libsimgrid.${LIB_EXE} ${CMAKE_BINARY_DIR}/lib/lua/5.1/simgrid.${LIB_EXE}
105 install(FILES ${CMAKE_BINARY_DIR}/lib/lua/5.1/simgrid.${LIB_EXE}
106 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/lua/5.1
110 ###########################################
111 ### Fill in the "make uninstall" target ###
112 ###########################################
114 add_custom_target(uninstall
115 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/doc/simgrid
116 COMMAND ${CMAKE_COMMAND} -E echo "uninstall doc ok"
117 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/lib/libsimgrid*
118 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/lib/libsmpi*
119 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/lib/lua/5.1/simgrid*
120 COMMAND ${CMAKE_COMMAND} -E echo "uninstall lib ok"
121 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/smpicc
122 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/smpif2c
123 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/smpiff
124 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/smpif90
125 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/smpirun
126 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/tesh
127 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/simgrid-colorizer
128 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/simgrid_update_xml
129 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/graphicator
130 COMMAND ${CMAKE_COMMAND} -E echo "uninstall bin ok"
131 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/instr
132 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/msg
133 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/simdag
134 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/smpi
135 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/simix
136 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/surf
137 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/xbt
138 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/mc
139 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/simgrid
140 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/include/simgrid_config.h
141 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/include/xbt.h
142 COMMAND ${CMAKE_COMMAND} -E echo "uninstall include ok"
143 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/share/man/man1/simgrid_update_xml.1
144 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/share/man/man1/tesh.1
145 COMMAND ${CMAKE_COMMAND} -E echo "uninstall man ok"
146 WORKING_DIRECTORY "${CMAKE_INSTALL_PREFIX}"
150 add_custom_command(TARGET uninstall
151 COMMAND ${CMAKE_COMMAND} -E echo "uninstall binding lua ok"
152 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/lib/lua/5.1/simgrid.${LIB_EXE}
153 WORKING_DIRECTORY "${CMAKE_HOME_DIRECTORY}/"
157 ################################################################
158 ## Build a sain "make dist" target to build a source package ###
159 ## containing only the files that I explicitely state ###
160 ## (instead of any cruft laying on my disk as CPack does) ###
161 ################################################################
163 # This is the complete list of what will be added to the source archive
165 ${headers_to_install}
166 ${source_of_generated_headers}
184 ${CMAKE_SOURCE_FILES}
185 ${EXAMPLES_CMAKEFILES_TXT}
186 ${TESHSUITE_CMAKEFILES_TXT}
187 ${TESTSUITE_CMAKEFILES_TXT}
188 ${TOOLS_CMAKEFILES_TXT}
193 ${PLATFORMS_EXAMPLES}
205 ##########################################
206 ### Fill in the "make dist-dir" target ###
207 ##########################################
209 add_custom_target(dist-dir
210 COMMENT "Generating the distribution directory"
211 COMMAND ${CMAKE_COMMAND} -E remove_directory ${PROJECT_NAME}-${release_version}/
212 COMMAND ${CMAKE_COMMAND} -E remove ${PROJECT_NAME}-${release_version}.tar.gz
213 COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_NAME}-${release_version}
215 add_dependencies(dist-dir simgrid_documentation)
216 add_dependencies(dist-dir maintainer_files)
218 set(dirs_in_tarball "")
219 foreach(file ${source_to_pack})
221 # This damn prefix is still set somewhere (seems to be in subdirs)
222 string(REPLACE "${CMAKE_HOME_DIRECTORY}/" "" file "${file}")
224 # Create the directory on need
225 get_filename_component(file_location ${file} PATH)
226 string(REGEX MATCH ";${file_location};" OPERATION "${dirs_in_tarball}")
228 set(dirs_in_tarball "${dirs_in_tarball};${file_location};")
231 COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_NAME}-${release_version}/${file_location}/
235 # Actually copy the file
238 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_HOME_DIRECTORY}/${file} ${PROJECT_NAME}-${release_version}/${file_location}/
240 endforeach(file ${source_to_pack})
244 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_HOME_DIRECTORY}/buildtools/Cmake/Scripts/Makefile.default ${PROJECT_NAME}-${release_version}/Makefile
247 ######################################
248 ### Fill in the "make dist" target ###
249 ######################################
251 add_custom_target(dist
252 COMMENT "Removing the distribution directory"
253 DEPENDS ${CMAKE_BINARY_DIR}/${PROJECT_NAME}-${release_version}.tar.gz
254 COMMAND ${CMAKE_COMMAND} -E remove_directory ${PROJECT_NAME}-${release_version}/
258 OUTPUT ${CMAKE_BINARY_DIR}/${PROJECT_NAME}-${release_version}.tar.gz
259 COMMENT "Compressing the archive from the distribution directory"
260 COMMAND ${CMAKE_COMMAND} -E tar cf ${PROJECT_NAME}-${release_version}.tar ${PROJECT_NAME}-${release_version}/
261 COMMAND gzip -9v ${PROJECT_NAME}-${release_version}.tar
262 COMMAND ${CMAKE_COMMAND} -E remove_directory ${PROJECT_NAME}-${release_version}/
264 add_dependencies(dist dist-dir)
266 if(NOT enable_maintainer_mode)
267 add_custom_target(echo-dist
268 COMMAND ${CMAKE_COMMAND} -E echo "WARNING: ----------------------------------------------------"
269 COMMAND ${CMAKE_COMMAND} -E echo "WARNING: Distrib is generated without option maintainer mode "
270 COMMAND ${CMAKE_COMMAND} -E echo "WARNING: ----------------------------------------------------"
272 add_dependencies(dist echo-dist)
275 ###########################################
276 ### Fill in the "make distcheck" target ###
277 ###########################################
279 set(CMAKE_BINARY_TEST_DIR ${CMAKE_BINARY_DIR})
281 # Allow to test the "make dist"
282 add_custom_target(distcheck
283 COMMAND ${CMAKE_COMMAND} -E echo "XXX remove old copy"
284 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}
286 COMMAND ${CMAKE_COMMAND} -E echo "XXX Untar distrib"
287 COMMAND ${CMAKE_COMMAND} -E tar xf ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}.tar.gz ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}
289 COMMAND ${CMAKE_COMMAND} -E echo "XXX create build and install subtrees"
290 COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_build
291 COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_inst
293 COMMAND ${CMAKE_COMMAND} -E echo "XXX Configure"
294 COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_build
296 -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_inst
298 COMMAND ${CMAKE_COMMAND} -E echo "XXX Build"
299 COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_build ${CMAKE_MAKE_PROGRAM}
301 COMMAND ${CMAKE_COMMAND} -E echo "XXX Test"
302 COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_build ctest || true
304 COMMAND ${CMAKE_COMMAND} -E echo "XXX Install"
305 COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_build ${CMAKE_MAKE_PROGRAM} install
306 COMMAND ${CMAKE_COMMAND} -E create_symlink
307 ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_inst/lib/libsimgrid.so
308 ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_inst/lib/libsimgridtest.so
310 COMMAND ${CMAKE_COMMAND} -E echo "XXX Remove temp directories"
311 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}
313 add_dependencies(distcheck dist)
315 #######################################
316 ### Fill in the "make check" target ###
317 #######################################
320 add_custom_target(check
321 COMMAND ctest -D ExperimentalMemCheck
324 add_custom_target(check
329 #######################################
330 ### Fill in the "make xxx-clean" target ###
331 #######################################
333 add_custom_target(maintainer-clean
334 COMMAND ${CMAKE_COMMAND} -E remove -f src/config_unit.c
335 COMMAND ${CMAKE_COMMAND} -E remove -f src/cunit_unit.c
336 COMMAND ${CMAKE_COMMAND} -E remove -f src/dict_unit.c
337 COMMAND ${CMAKE_COMMAND} -E remove -f src/dynar_unit.c
338 COMMAND ${CMAKE_COMMAND} -E remove -f src/ex_unit.c
339 COMMAND ${CMAKE_COMMAND} -E remove -f src/set_unit.c
340 COMMAND ${CMAKE_COMMAND} -E remove -f src/simgrid_units_main.c
341 COMMAND ${CMAKE_COMMAND} -E remove -f src/swag_unit.c
342 COMMAND ${CMAKE_COMMAND} -E remove -f src/xbt_sha_unit.c
343 COMMAND ${CMAKE_COMMAND} -E remove -f src/xbt_str_unit.c
344 COMMAND ${CMAKE_COMMAND} -E remove -f src/xbt_strbuff_unit.c
345 COMMAND ${CMAKE_COMMAND} -E remove -f src/xbt_synchro_unit.c
346 WORKING_DIRECTORY "${CMAKE_HOME_DIRECTORY}"
349 add_custom_target(supernovae-clean
350 COMMAND ${CMAKE_COMMAND} -E remove -f src/supernovae_sg.c
351 COMMAND ${CMAKE_COMMAND} -E remove -f src/supernovae_smpi.c
352 WORKING_DIRECTORY "${CMAKE_HOME_DIRECTORY}"