1 #########################################
2 ### Fill in the "make install" target ###
3 #########################################
6 file(MAKE_DIRECTORY ${CMAKE_HOME_DIRECTORY}/doc/html/)
7 install(DIRECTORY "${CMAKE_HOME_DIRECTORY}/doc/html/"
8 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/doc/simgrid/html/)
9 install(DIRECTORY "${CMAKE_HOME_DIRECTORY}/doc/HelloWorld/"
10 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/doc/simgrid/HelloWorld/)
15 ${CMAKE_BINARY_DIR}/bin/smpicc
16 ${CMAKE_BINARY_DIR}/bin/smpicxx
17 ${CMAKE_BINARY_DIR}/bin/smpirun
18 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/)
21 ${CMAKE_BINARY_DIR}/bin/smpif90
22 ${CMAKE_BINARY_DIR}/bin/smpiff
23 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/)
27 install(PROGRAMS ${CMAKE_BINARY_DIR}/bin/tesh
28 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/)
30 install(PROGRAMS ${CMAKE_BINARY_DIR}/bin/graphicator
31 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/)
33 install(PROGRAMS ${CMAKE_HOME_DIRECTORY}/tools/MSG_visualization/colorize.pl
34 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/
35 RENAME simgrid-colorizer)
37 add_custom_target(simgrid-colorizer ALL
38 COMMENT "Install ${CMAKE_BINARY_DIR}/bin/colorize"
39 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_HOME_DIRECTORY}/tools/MSG_visualization/colorize.pl ${CMAKE_BINARY_DIR}/bin/colorize
42 install(PROGRAMS ${CMAKE_HOME_DIRECTORY}/tools/simgrid_update_xml.pl
43 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/
44 RENAME simgrid_update_xml)
46 add_custom_target(simgrid_update_xml ALL
47 COMMENT "Install ${CMAKE_BINARY_DIR}/bin/simgrid_update_xml"
48 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_HOME_DIRECTORY}/tools/simgrid_update_xml.pl ${CMAKE_BINARY_DIR}/bin/simgrid_update_xml
52 install(TARGETS simgrid
53 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/)
56 set(SIMGRID_JAR_TO_INSTALL "${SIMGRID_JAR}")
57 install(TARGETS simgrid-java
58 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/)
59 install(FILES ${SIMGRID_JAR_TO_INSTALL}
60 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/java/
67 ${generated_headers_to_install}
69 foreach(file ${HEADERS})
70 get_filename_component(location ${file} PATH)
71 string(REPLACE "${CMAKE_CURRENT_BINARY_DIR}/" "" location "${location}")
73 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/${location})
74 endforeach(file ${HEADERS})
77 foreach(file ${examples_to_install})
78 string(REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/examples/" "" file ${file})
79 get_filename_component(location ${file} PATH)
80 install(FILES "examples/${file}"
81 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/doc/simgrid/examples/${location})
82 endforeach(file ${examples_to_install})
87 file(MAKE_DIRECTORY "${CMAKE_BINARY_DIR}/lib/lua/5.1")
88 add_custom_target(simgrid_lua ALL
90 ${CMAKE_BINARY_DIR}/lib/lua/5.1/simgrid.${LIB_EXE}
93 OUTPUT ${CMAKE_BINARY_DIR}/lib/lua/5.1/simgrid.${LIB_EXE}
94 COMMAND ${CMAKE_COMMAND} -E create_symlink ../../libsimgrid.${LIB_EXE} ${CMAKE_BINARY_DIR}/lib/lua/5.1/simgrid.${LIB_EXE}
96 install(FILES ${CMAKE_BINARY_DIR}/lib/lua/5.1/simgrid.${LIB_EXE}
97 DESTINATION $ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/lib/lua/5.1
101 ###########################################
102 ### Fill in the "make uninstall" target ###
103 ###########################################
105 add_custom_target(uninstall
106 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/doc/simgrid
107 COMMAND ${CMAKE_COMMAND} -E echo "uninstall doc ok"
108 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/lib/libsimgrid*
109 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/lib/lua/5.1/simgrid*
110 COMMAND ${CMAKE_COMMAND} -E echo "uninstall lib ok"
111 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/smpicc
112 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/smpicxx
113 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/smpiff
114 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/smpif90
115 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/smpirun
116 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/tesh
117 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/simgrid-colorizer
118 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/simgrid_update_xml
119 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/graphicator
120 COMMAND ${CMAKE_COMMAND} -E echo "uninstall bin ok"
121 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/instr
122 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/msg
123 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/simdag
124 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/smpi
125 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/simix
126 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/surf
127 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/xbt
128 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/mc
129 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/simgrid
130 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/include/simgrid.h
131 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/include/simgrid_config.h
132 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/include/xbt.h
133 COMMAND ${CMAKE_COMMAND} -E echo "uninstall include ok"
134 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/share/man/man1/simgrid_update_xml.1
135 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/share/man/man1/tesh.1
136 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/share/man/man1/smpicc.1
137 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/share/man/man1/smpicxx.1
138 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/share/man/man1/smpirun.1
139 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/share/man/man1/smpiff.1
140 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/share/man/man1/smpif90.1
143 COMMAND ${CMAKE_COMMAND} -E echo "uninstall man ok"
144 WORKING_DIRECTORY "${CMAKE_INSTALL_PREFIX}"
148 add_custom_command(TARGET uninstall
149 COMMAND ${CMAKE_COMMAND} -E echo "uninstall binding lua ok"
150 COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/lib/lua/5.1/simgrid.${LIB_EXE}
151 WORKING_DIRECTORY "${CMAKE_HOME_DIRECTORY}/"
155 ################################################################
156 ## Build a sain "make dist" target to build a source package ###
157 ## containing only the files that I explicitely state ###
158 ## (instead of any cruft laying on my disk as CPack does) ###
159 ################################################################
161 # This is the complete list of what will be added to the source archive
163 ${headers_to_install}
164 ${source_of_generated_headers}
170 ${JSURF_SWIG_SRC_EXTRA}
189 ${CMAKE_SOURCE_FILES}
190 ${EXAMPLES_CMAKEFILES_TXT}
191 ${TESHSUITE_CMAKEFILES_TXT}
192 ${TOOLS_CMAKEFILES_TXT}
197 ${PLATFORMS_EXAMPLES}
209 ##########################################
210 ### Fill in the "make dist-dir" target ###
211 ##########################################
213 add_custom_target(dist-dir
214 COMMENT "Generating the distribution directory"
215 COMMAND ${CMAKE_COMMAND} -E remove_directory ${PROJECT_NAME}-${release_version}/
216 COMMAND ${CMAKE_COMMAND} -E remove ${PROJECT_NAME}-${release_version}.tar.gz
217 COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_NAME}-${release_version}
218 COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_NAME}-${release_version}/doc/html/
219 COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_HOME_DIRECTORY}/doc/html/ ${PROJECT_NAME}-${release_version}/doc/html/
221 add_dependencies(dist-dir maintainer_files)
223 set(dirs_in_tarball "")
224 foreach(file ${source_to_pack})
226 # This damn prefix is still set somewhere (seems to be in subdirs)
227 string(REPLACE "${CMAKE_HOME_DIRECTORY}/" "" file "${file}")
229 # Create the directory on need
230 get_filename_component(file_location ${file} PATH)
231 string(REGEX MATCH ";${file_location};" OPERATION "${dirs_in_tarball}")
233 set(dirs_in_tarball "${dirs_in_tarball};${file_location};")
236 COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_NAME}-${release_version}/${file_location}/
240 # Actually copy the file
243 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_HOME_DIRECTORY}/${file} ${PROJECT_NAME}-${release_version}/${file_location}
245 endforeach(file ${source_to_pack})
249 COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_HOME_DIRECTORY}/tools/cmake/scripts/Makefile.default ${PROJECT_NAME}-${release_version}/Makefile
250 COMMAND ${CMAKE_COMMAND} -E echo "${GIT_VERSION}" > ${PROJECT_NAME}-${release_version}/.gitversion
253 ######################################
254 ### Fill in the "make dist" target ###
255 ######################################
257 add_custom_target(dist
258 COMMENT "Removing the distribution directory"
259 DEPENDS ${CMAKE_BINARY_DIR}/${PROJECT_NAME}-${release_version}.tar.gz
260 COMMAND ${CMAKE_COMMAND} -E echo ${PROJECT_NAME}-${release_version} > ${CMAKE_BINARY_DIR}/VERSION
261 COMMAND ${CMAKE_COMMAND} -E remove_directory ${PROJECT_NAME}-${release_version}/
265 OUTPUT ${CMAKE_BINARY_DIR}/${PROJECT_NAME}-${release_version}.tar.gz
266 COMMENT "Compressing the archive from the distribution directory"
267 COMMAND ${CMAKE_COMMAND} -E tar cf ${PROJECT_NAME}-${release_version}.tar ${PROJECT_NAME}-${release_version}/
268 COMMAND gzip -9v ${PROJECT_NAME}-${release_version}.tar
269 COMMAND ${CMAKE_COMMAND} -E remove_directory ${PROJECT_NAME}-${release_version}/
271 add_dependencies(dist dist-dir)
273 if(NOT enable_maintainer_mode)
274 add_custom_target(echo-dist
275 COMMAND ${CMAKE_COMMAND} -E echo "WARNING: ----------------------------------------------------"
276 COMMAND ${CMAKE_COMMAND} -E echo "WARNING: Distrib is generated without option maintainer mode "
277 COMMAND ${CMAKE_COMMAND} -E echo "WARNING: ----------------------------------------------------"
279 add_dependencies(dist echo-dist)
282 ###########################################
283 ### Fill in the "make distcheck" target ###
284 ###########################################
286 set(CMAKE_BINARY_TEST_DIR ${CMAKE_BINARY_DIR})
288 # Allow to test the "make dist"
289 add_custom_target(distcheck
290 COMMAND ${CMAKE_COMMAND} -E echo "XXX compare archive with git repository"
291 COMMAND ${CMAKE_HOME_DIRECTORY}/tools/internal/check_dist_archive -batch ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}.tar.gz
293 COMMAND ${CMAKE_COMMAND} -E echo "XXX remove old copy"
294 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}
296 COMMAND ${CMAKE_COMMAND} -E echo "XXX Untar distrib"
297 COMMAND ${CMAKE_COMMAND} -E tar xf ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}.tar.gz ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}
299 COMMAND ${CMAKE_COMMAND} -E echo "XXX create build and install subtrees"
300 COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_build
301 COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_inst
303 COMMAND ${CMAKE_COMMAND} -E echo "XXX Configure"
304 COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_build
306 -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_inst
308 COMMAND ${CMAKE_COMMAND} -E echo "XXX Build"
309 COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_build ${CMAKE_MAKE_PROGRAM}
311 COMMAND ${CMAKE_COMMAND} -E echo "XXX Test"
312 COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_build ctest --output-on-failure
314 COMMAND ${CMAKE_COMMAND} -E echo "XXX Install"
315 COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_build ${CMAKE_MAKE_PROGRAM} install
316 COMMAND ${CMAKE_COMMAND} -E create_symlink
317 ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_inst/lib/libsimgrid.so
318 ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_inst/lib/libsimgridtest.so
320 COMMAND ${CMAKE_COMMAND} -E echo "XXX Install with documentation"
321 COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_build ${CMAKE_MAKE_PROGRAM} install
323 COMMAND ${CMAKE_COMMAND} -E echo "XXX Remove temp directories"
324 COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}
326 add_dependencies(distcheck dist)
328 #######################################
329 ### Fill in the "make check" target ###
330 #######################################
333 add_custom_target(check
334 COMMAND ctest -D ExperimentalMemCheck
337 add_custom_target(check
342 #######################################
343 ### Fill in the "make xxx-clean" target ###
344 #######################################
346 add_custom_target(maintainer-clean
347 COMMAND ${CMAKE_COMMAND} -E remove -f src/config_unit.c
348 COMMAND ${CMAKE_COMMAND} -E remove -f src/cunit_unit.c
349 COMMAND ${CMAKE_COMMAND} -E remove -f src/dict_unit.c
350 COMMAND ${CMAKE_COMMAND} -E remove -f src/dynar_unit.c
351 COMMAND ${CMAKE_COMMAND} -E remove -f src/ex_unit.c
352 COMMAND ${CMAKE_COMMAND} -E remove -f src/set_unit.c
353 COMMAND ${CMAKE_COMMAND} -E remove -f src/simgrid_units_main.c
354 COMMAND ${CMAKE_COMMAND} -E remove -f src/swag_unit.c
355 COMMAND ${CMAKE_COMMAND} -E remove -f src/xbt_sha_unit.c
356 COMMAND ${CMAKE_COMMAND} -E remove -f src/xbt_str_unit.c
357 COMMAND ${CMAKE_COMMAND} -E remove -f src/xbt_strbuff_unit.c
358 COMMAND ${CMAKE_COMMAND} -E remove -f src/xbt_synchro_unit.c
359 WORKING_DIRECTORY "${CMAKE_HOME_DIRECTORY}"
364 ADD_CUSTOM_TARGET(nsis
365 COMMENT "Generating the SimGrid installer for Windows..."
366 DEPENDS simgrid simgrid graphicator simgrid-colorizer simgrid_update_xml
367 COMMAND ${NSIS_PROGRAM} simgrid.nsi
368 WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/