X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/cfa6998748921e0ed996b9862117b922c3f137da..9e847d7ec0edc4a55c09b251d7f03214c4498166:/buildtools/Cmake/src/CMakeDistrib.txt diff --git a/buildtools/Cmake/src/CMakeDistrib.txt b/buildtools/Cmake/src/CMakeDistrib.txt index 551ef596dd..630aa7965c 100755 --- a/buildtools/Cmake/src/CMakeDistrib.txt +++ b/buildtools/Cmake/src/CMakeDistrib.txt @@ -1,57 +1,114 @@ set(CMAKE_PROJECT_NAME "${PROJECT_NAME}") set(CPACK_PACKAGE_NAME "${PROJECT_NAME}") set(CPACK_PROJECT_NAME "${PROJECT_NAME}") + set(CPACK_PACKAGE_FILE_NAME "simgrid-${release_version}") -set(CPACK_GENERATOR "TBZ2;TGZ") #;TGZ;TZ;ZIP - -foreach(file ${script_to_install}) - get_filename_component(file_location ${file} PATH) - string(REPLACE "${PROJECT_DIRECTORY}/" "/" file_location ${file_location}) - install(FILES ${file} DESTINATION "${file_location}") -endforeach(file ${EXTRA_DIST}) - -foreach(file ${to_svg}) - get_filename_component(file_location ${file} PATH) - string(REPLACE "${PROJECT_DIRECTORY}/" "/" file_location ${file_location}) - install(FILES ${file} DESTINATION "${file_location}") -endforeach(file ${EXTRA_DIST}) - -foreach(file ${TEST_UNITS}) - install(FILES src/${file} DESTINATION "/src/") -endforeach(file ${TEST_UNITS}) - -###copy doc -install(DIRECTORY "${PROJECT_DIRECTORY}/doc/" -DESTINATION "/doc/" -PATTERN ".svn" EXCLUDE -PATTERN ".git" EXCLUDE -PATTERN "*.o" EXCLUDE -PATTERN "*~" EXCLUDE -) +set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY 1) +set(CPACK_GENERATOR "") #;TGZ;TZ;ZIP -###buildtools -install(DIRECTORY "${PROJECT_DIRECTORY}/buildtools/Cmake/" -DESTINATION "/buildtools/Cmake/" -PATTERN ".svn" EXCLUDE -PATTERN ".git" EXCLUDE -PATTERN "*.o" EXCLUDE -PATTERN "*~" EXCLUDE -) +set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CPACK_PACKAGE_FILE_NAME}-src") +set(CPACK_SOURCE_GENERATOR "TGZ") +set(CPACK_SOURCE_FILES "${to_svg}") set(CPACK_SET_DESTDIR on) set(CMAKE_INSTALL_PREFIX ${prefix} CACHE TYPE INTERNAL FORCE) -string(REPLACE ";" "\t" install_HEADERS "${install_HEADERS}") +######################################### +### Fill in the "make install" target ### +######################################### + + + +# doc +install(DIRECTORY "${PROJECT_DIRECTORY}/doc/html/" + DESTINATION "$ENV{DESTDIR}${prefix}/doc/simgrid/html/" + PATTERN ".svn" EXCLUDE + PATTERN ".git" EXCLUDE + PATTERN "*.o" EXCLUDE + PATTERN "*~" EXCLUDE +) + +# binaries +install(PROGRAMS ${CMAKE_BINARY_DIR}/bin/smpicc + ${CMAKE_BINARY_DIR}/bin/smpirun + ${CMAKE_BINARY_DIR}/bin/tesh + DESTINATION $ENV{DESTDIR}${prefix}/bin/) + +install(PROGRAMS tools/MSG_visualization/colorize.pl + DESTINATION $ENV{DESTDIR}${prefix}/bin/ + RENAME simgrid-colorizer) + +# libraries +install(TARGETS simgrid gras + LIBRARY DESTINATION $ENV{DESTDIR}${prefix}/lib/) + +install(FILES ${CMAKE_BINARY_DIR}/lib/libsimgrid_static.a + RENAME libsimgrid.a + DESTINATION $ENV{DESTDIR}${prefix}/lib/) + +if(enable_smpi) + install(TARGETS smpi + LIBRARY DESTINATION $ENV{DESTDIR}${prefix}/lib/) +endif(enable_smpi) + +# include files +foreach(file ${install_HEADERS}) + get_filename_component(location ${file} PATH) + install(FILES ${file} + DESTINATION $ENV{DESTDIR}${prefix}/${location}) +endforeach(file ${install_HEADERS}) + +# example files +foreach(file ${ex_to_svg}) + string(REPLACE "${PROJECT_DIRECTORY}/examples/" "" file ${file}) + get_filename_component(location ${file} PATH) + install(FILES "examples/${file}" + DESTINATION $ENV{DESTDIR}${prefix}/doc/simgrid/examples/${location}) +endforeach(file ${ex_to_svg}) + +# bindings cruft +if(HAVE_JAVA) + install(FILES ${CMAKE_BINARY_DIR}/simgrid.jar + DESTINATION $ENV{DESTDIR}${prefix}/share/) +endif(HAVE_JAVA) + +if(HAVE_LUA) + add_custom_target(absolute_liblink ALL + COMMAND ln -sf $ENV{DESTDIR}${prefix}/lib/libsimgrid.so ${CMAKE_BINARY_DIR}/libsimgrid.so) + install(FILES ${CMAKE_BINARY_DIR}/libsimgrid.so + DESTINATION $ENV{DESTDIR}${prefix}/lib/lua/5.1 + RENAME simgrid.so) +endif(HAVE_LUA) + +if(HAVE_RUBY) + string(REGEX REPLACE "^.*ruby/" "" install_link_ruby "${RUBY_ARCH_DIR}") + install(FILES ${CMAKE_BINARY_DIR}/libsimgrid.so + ${PROJECT_DIRECTORY}/src/bindings/ruby/simgrid.rb + DESTINATION $ENV{DESTDIR}${prefix}/lib/ruby/${install_link_ruby}/) +endif(HAVE_RUBY) + + +######################################################## +### Fill in the BROKEN "make install-simgrid" target ### +######################################################## +### scripts +set(install_bins + ${CMAKE_BINARY_DIR}/bin/smpicc + ${CMAKE_BINARY_DIR}/bin/smpirun + ${CMAKE_BINARY_DIR}/bin/gras_stub_generator + ${CMAKE_BINARY_DIR}/bin/tesh +) + string(REPLACE ";" "\t" install_libs "${install_libs}") set(uninstall_bins "${install_bins}") string(REPLACE "${PROJECT_DIRECTORY}/src/smpi" "${prefix}/bin" uninstall_bins "${uninstall_bins}") string(REPLACE "${PROJECT_DIRECTORY}/tools/gras" "${prefix}/bin" uninstall_bins "${uninstall_bins}") string(REPLACE "${PROJECT_DIRECTORY}/tools/tesh" "${prefix}/bin" uninstall_bins "${uninstall_bins}") -string(REPLACE "${PROJECT_DIRECTORY}/tools/MSG_visualization/colorize.pl" "${prefix}/bin/simgrid_colorizer.pl" uninstall_bins "${uninstall_bins}") +string(REPLACE "${PROJECT_DIRECTORY}/tools/MSG_visualization/colorize.pl" "${prefix}/bin/simgrid-colorizer" uninstall_bins "${uninstall_bins}") string(REPLACE "${PROJECT_DIRECTORY}/src/.libs" "${prefix}/lib" uninstall_libs "${install_libs}") string(REPLACE "./" "${prefix}/" uninstall_HEADERS "${install_HEADERS}") -string(REGEX REPLACE "^.*ruby/" "" install_link_ruby ${RUBY_INCLUDE_PATH}) + add_custom_target(install-simgrid COMMAND mkdir -p $ENV{DESTDIR}${prefix} @@ -61,27 +118,44 @@ COMMAND mkdir -p $ENV{DESTDIR}${prefix}/include COMMAND mkdir -p $ENV{DESTDIR}${prefix}/doc COMMAND mkdir -p $ENV{DESTDIR}${prefix}/doc/simgrid COMMAND mkdir -p $ENV{DESTDIR}${prefix}/doc/simgrid/html +COMMAND mkdir -p $ENV{DESTDIR}${prefix}/include +COMMAND mkdir -p $ENV{DESTDIR}${prefix}/include/xbt +COMMAND mkdir -p $ENV{DESTDIR}${prefix}/include/mc +COMMAND mkdir -p $ENV{DESTDIR}${prefix}/include/msg +COMMAND mkdir -p $ENV{DESTDIR}${prefix}/include/simdag +COMMAND mkdir -p $ENV{DESTDIR}${prefix}/include/smpi +COMMAND mkdir -p $ENV{DESTDIR}${prefix}/include/surf +COMMAND mkdir -p $ENV{DESTDIR}${prefix}/include/gras +COMMAND mkdir -p $ENV{DESTDIR}${prefix}/include/amok +COMMAND mkdir -p $ENV{DESTDIR}${prefix}/include/instr COMMAND cp ${install_bins} $ENV{DESTDIR}${prefix}/bin -COMMAND cp ${PROJECT_DIRECTORY}/tools/MSG_visualization/colorize.pl $ENV{DESTDIR}${prefix}/bin/simgrid_colorizer.pl +COMMAND cp ${PROJECT_DIRECTORY}/tools/MSG_visualization/colorize.pl $ENV{DESTDIR}${prefix}/bin/simgrid-colorizer COMMAND echo "install bin OK" -COMMAND cp ${install_libs} $ENV{DESTDIR}${prefix}/lib + + COMMAND cp ${PROJECT_DIRECTORY}/src/.libs/libsimgrid.so.${release_version} $ENV{DESTDIR}${prefix}/lib + COMMAND ln -sf $ENV{DESTDIR}${prefix}/lib/libsimgrid.so.${release_version} $ENV{DESTDIR}${prefix}/lib/libsimgrid.so + + COMMAND cp ${PROJECT_DIRECTORY}/src/.libs/libsimgrid_static.a $ENV{DESTDIR}${prefix}/lib/libsimgrid.a + + COMMAND cp ${PROJECT_DIRECTORY}/src/.libs/libgras.so.${release_version} $ENV{DESTDIR}${prefix}/lib + COMMAND ln -sf $ENV{DESTDIR}${prefix}/lib/libgras.so.${release_version} $ENV{DESTDIR}${prefix}/lib/libgras.so + + # FIXME: this should be copied only if enable_smpi is true + COMMAND cp ${PROJECT_DIRECTORY}/src/.libs/libsmpi.so.${release_version} $ENV{DESTDIR}${prefix}/lib || true + COMMAND ln -sf $ENV{DESTDIR}${prefix}/lib/libsmpi.so.${release_version} $ENV{DESTDIR}${prefix}/lib/libsmpi.so + COMMAND echo "install lib OK" -COMMAND cp --parents ${install_HEADERS} $ENV{DESTDIR}${prefix} -COMMAND echo "install include OK" -COMMAND cp -rf ${PROJECT_DIRECTORY}/doc/html/ $ENV{DESTDIR}${prefix}/doc/simgrid -COMMAND echo "install doc/html OK" WORKING_DIRECTORY "${PROJECT_DIRECTORY}/" ) -foreach(file ${ex_to_svg}) - string(REPLACE "${PROJECT_DIRECTORY}" "." file "${file}") +foreach(file ${install_HEADERS}) add_custom_command(TARGET install-simgrid - COMMAND cp --parents -f ${file} $ENV{DESTDIR}${prefix}/doc/simgrid/ + COMMAND cp ${file} $ENV{DESTDIR}${prefix}/${file} WORKING_DIRECTORY "${PROJECT_DIRECTORY}" ) -endforeach(file ${ex_to_svg}) +endforeach(file ${install_HEADERS}) add_custom_command(TARGET install-simgrid - COMMAND echo "install doc/examples OK" + COMMAND echo "install include OK" WORKING_DIRECTORY "${PROJECT_DIRECTORY}" ) @@ -129,6 +203,7 @@ if(HAVE_LUA) endif(HAVE_LUA) if(HAVE_RUBY) + string(REGEX REPLACE "^.*ruby/" "" install_link_ruby "${RUBY_ARCH_DIR}") add_custom_command(TARGET install-simgrid COMMAND mkdir -p "$ENV{DESTDIR}${prefix}/lib/ruby/${install_link_ruby}/" COMMAND ln -sf ${prefix}/lib/libsimgrid.so $ENV{DESTDIR}${prefix}/lib/ruby/${install_link_ruby}/libsimgrid.so @@ -144,6 +219,33 @@ if(HAVE_RUBY) ) endif(HAVE_RUBY) +foreach(file ${directory_to_create}) + string(REPLACE "${PROJECT_DIRECTORY}" "." file "${file}") + add_custom_command(TARGET install-simgrid + COMMAND mkdir -p $ENV{DESTDIR}${prefix}/doc/simgrid/${file} + WORKING_DIRECTORY "${PROJECT_DIRECTORY}" + ) +endforeach(file ${directory_to_create}) + +foreach(file ${ex_to_svg}) + string(REPLACE "${PROJECT_DIRECTORY}" "." file "${file}") + add_custom_command(TARGET install-simgrid + COMMAND cp ${file} $ENV{DESTDIR}${prefix}/doc/simgrid/${file} + WORKING_DIRECTORY "${PROJECT_DIRECTORY}" + ) +endforeach(file ${ex_to_svg}) + +add_custom_command(TARGET install-simgrid + COMMAND echo "install doc/examples OK" + WORKING_DIRECTORY "${PROJECT_DIRECTORY}" +) + +add_custom_command(TARGET install-simgrid + COMMAND cp ${PROJECT_DIRECTORY}/doc/html/* $ENV{DESTDIR}${prefix}/doc/simgrid/html/ || true + COMMAND echo "install doc/html OK" + WORKING_DIRECTORY "${PROJECT_DIRECTORY}" +) + add_custom_target(html COMMAND echo "Make the html doc" COMMAND echo "cmake -DBIBTEX2HTML=${BIBTEX2HTML} ./" @@ -155,25 +257,80 @@ COMMAND rm -f ${PROJECT_DIRECTORY}/buildtools/Cmake/src/doc/Makefile WORKING_DIRECTORY "${PROJECT_DIRECTORY}/buildtools/Cmake/src/doc" ) -add_custom_target(dist -COMMAND make package -COMMAND rm -rf _CPack_Packages -#WORKING_DIRECTORY "${PROJECT_DIRECTORY}" + + +#SET(CMAKE_VERBOSE_MAKEFILE 1) + +################################################################ +## Build a sain "make dist" target to build a source package ### +## containing only the files that I explicitely state ### +## (instead of any cruft laying on my disk as CPack does) ### +################################################################ +add_custom_target(dist-dir + COMMAND test -e simgrid-${release_version}/ && chmod -R a+w simgrid-${release_version}/ || true + COMMAND ${CMAKE_COMMAND} -E remove_directory simgrid-${release_version} + COMMAND ${CMAKE_COMMAND} -E make_directory simgrid-${release_version} ) -add_custom_target(check -COMMAND make test -#WORKING_DIRECTORY "${PROJECT_DIRECTORY}" + +set(dirs_in_tarball "") +foreach(file ${to_svg} ${txt_files}) + # This damn prefix is still set somewhere (seems to be in subdirs) + string(REPLACE "${PROJECT_DIRECTORY}/" "" file ${file}) + + # Create the directory on need + get_filename_component(file_location ${file} PATH) + string(REGEX MATCH ";${file_location};" OPERATION "${dirs_in_tarball}") + if(NOT OPERATION) + set(dirs_in_tarball "${dirs_in_tarball};${file_location};") + add_custom_command( + TARGET dist-dir + COMMAND ${CMAKE_COMMAND} -E make_directory simgrid-${release_version}/${file_location}/ + ) + endif(NOT OPERATION) + + # Actually copy the file + add_custom_command( + TARGET dist-dir + COMMAND ${CMAKE_COMMAND} -E copy ${PROJECT_DIRECTORY}/${file} simgrid-${release_version}/${file_location}/ + ) +endforeach(file ${to_svg}) + +add_custom_target(dist + COMMAND ${CMAKE_COMMAND} -E tar cf simgrid-${release_version}.tar simgrid-${release_version}/ + COMMAND gzip -9v simgrid-${release_version}.tar + COMMAND ${CMAKE_COMMAND} -E remove_directory simgrid-${release_version} ) +add_dependencies(dist dist-dir) +# Allow to test the "make dist" add_custom_target(distcheck -COMMAND make package -COMMAND rm -rf _CPack_Packages -COMMAND tar xvf ${CPACK_PACKAGE_FILE_NAME}.tar.bz2 -COMMAND cd ${CPACK_PACKAGE_FILE_NAME} && cmake . -COMMAND cd ${CPACK_PACKAGE_FILE_NAME} && make -COMMAND cd ${CPACK_PACKAGE_FILE_NAME} && make test -COMMAND rm -rf ${CPACK_PACKAGE_FILE_NAME} + COMMAND ${CMAKE_COMMAND} -E make_directory simgrid-${release_version}/_build + COMMAND ${CMAKE_COMMAND} -E make_directory simgrid-${release_version}/_inst + + # This stupid cmake creates a directory in source, killing the purpose of the chmod + # (tricking around) + COMMAND ${CMAKE_COMMAND} -E make_directory simgrid-${release_version}/CMakeFiles +# COMMAND chmod -R a-w simgrid-${release_version}/ # FIXME: we should pass without commenting that line + COMMAND chmod -R a+w simgrid-${release_version}/_build + COMMAND chmod -R a+w simgrid-${release_version}/_inst + COMMAND chmod -R a+w simgrid-${release_version}/CMakeFiles + + COMMAND ${CMAKE_COMMAND} -E chdir simgrid-${release_version}/_build ${CMAKE_COMMAND} build .. -Dprefix=../_inst +# COMMAND ${CMAKE_COMMAND} -E chdir simgrid-${release_version}/_build make dist-dir + COMMAND ${CMAKE_COMMAND} -E chdir simgrid-${release_version}/_build make -j5 || ${CMAKE_COMMAND} -E chdir simgrid-${release_version}/_build make + COMMAND ${CMAKE_COMMAND} -E chdir simgrid-${release_version}/_build make test -j5 + COMMAND ${CMAKE_COMMAND} -E chdir simgrid-${release_version}/_build make clean +# COMMAND ${CMAKE_COMMAND} -E remove_directory simgrid-${release_version}/ +) +add_dependencies(distcheck dist-dir) + +######################################## +### End of "make dist" related stuff ### +######################################## + +add_custom_target(check +COMMAND make test #WORKING_DIRECTORY "${PROJECT_DIRECTORY}" )