X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/3e1507aae0c6ef620ee4aa68c4f6d32795fc2ea1..c6f0eb24815fa213e716412c814b4791a287a85b:/tools/cmake/Distrib.cmake diff --git a/tools/cmake/Distrib.cmake b/tools/cmake/Distrib.cmake index 10fa30ab7f..6a144b1ddf 100644 --- a/tools/cmake/Distrib.cmake +++ b/tools/cmake/Distrib.cmake @@ -3,7 +3,7 @@ ######################################### # doc -install(DIRECTORY "${CMAKE_BINARY_DIR}/doc/html/" DESTINATION doc/simgrid/html/ OPTIONAL) +install(DIRECTORY "${CMAKE_BINARY_DIR}/doc/html/" DESTINATION ${CMAKE_INSTALL_DOCDIR}/html/ OPTIONAL) # binaries if(enable_smpi) @@ -11,32 +11,22 @@ if(enable_smpi) ${CMAKE_BINARY_DIR}/bin/smpicc ${CMAKE_BINARY_DIR}/bin/smpicxx ${CMAKE_BINARY_DIR}/bin/smpirun - DESTINATION bin/) + DESTINATION ${CMAKE_INSTALL_BINDIR}/) if(SMPI_FORTRAN) install(PROGRAMS ${CMAKE_BINARY_DIR}/bin/smpif90 ${CMAKE_BINARY_DIR}/bin/smpiff - DESTINATION bin/) + DESTINATION ${CMAKE_INSTALL_BINDIR}/) install(PROGRAMS ${CMAKE_BINARY_DIR}/include/smpi/mpi.mod - DESTINATION include/smpi/) + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/smpi/) endif() endif() -install(PROGRAMS ${CMAKE_BINARY_DIR}/bin/tesh DESTINATION bin/) - -install(TARGETS graphicator DESTINATION bin/) - -install(PROGRAMS ${CMAKE_HOME_DIRECTORY}/tools/MSG_visualization/colorize.pl - DESTINATION bin/ - RENAME simgrid-colorizer) - -add_custom_target(simgrid-colorizer ALL - COMMENT "Install ${CMAKE_BINARY_DIR}/bin/colorize" - COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_HOME_DIRECTORY}/tools/MSG_visualization/colorize.pl ${CMAKE_BINARY_DIR}/bin/colorize) +install(PROGRAMS ${CMAKE_BINARY_DIR}/bin/tesh DESTINATION ${CMAKE_INSTALL_BINDIR}/) install(PROGRAMS ${CMAKE_HOME_DIRECTORY}/tools/simgrid_update_xml.pl - DESTINATION bin/ + DESTINATION ${CMAKE_INSTALL_BINDIR}/ RENAME simgrid_update_xml) add_custom_target(simgrid_update_xml ALL @@ -44,7 +34,7 @@ add_custom_target(simgrid_update_xml ALL COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_HOME_DIRECTORY}/tools/simgrid_update_xml.pl ${CMAKE_BINARY_DIR}/bin/simgrid_update_xml) install(PROGRAMS ${CMAKE_HOME_DIRECTORY}/tools/simgrid_convert_TI_traces.py - DESTINATION bin/ + DESTINATION ${CMAKE_INSTALL_BINDIR}/ RENAME simgrid_convert_TI_traces) add_custom_target(simgrid_convert_TI_traces ALL @@ -52,92 +42,36 @@ add_custom_target(simgrid_convert_TI_traces ALL COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_HOME_DIRECTORY}/tools/simgrid_convert_TI_traces.py ${CMAKE_BINARY_DIR}/bin/simgrid_convert_TI_traces) # libraries -install(TARGETS simgrid DESTINATION lib/) - -if(enable_java) - set(SIMGRID_JAR_TO_INSTALL "${SIMGRID_JAR}") - install(TARGETS simgrid-java DESTINATION lib/) - install(FILES ${SIMGRID_JAR_TO_INSTALL} - DESTINATION java/ - RENAME simgrid.jar) -endif() +install(TARGETS simgrid DESTINATION ${CMAKE_INSTALL_LIBDIR}/) +install(TARGETS sthread DESTINATION ${CMAKE_INSTALL_LIBDIR}/) # pkg-config files configure_file("${CMAKE_HOME_DIRECTORY}/tools/pkg-config/simgrid.pc.in" "${PROJECT_BINARY_DIR}/simgrid.pc" @ONLY) -install(FILES "${PROJECT_BINARY_DIR}/simgrid.pc" DESTINATION lib/pkgconfig/) +install(FILES "${PROJECT_BINARY_DIR}/simgrid.pc" DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig/) # include files -foreach(file ${headers_to_install} ${generated_headers_to_install}) +foreach(file ${headers_to_install} ${generated_headers_to_install}) get_filename_component(location ${file} PATH) string(REPLACE "${CMAKE_CURRENT_BINARY_DIR}/" "" location "${location}") - install(FILES ${file} DESTINATION ${location}) + string(REGEX REPLACE "^include/" "" location "${location}") + string(REGEX REPLACE "^include$" "" location "${location}") + # message("installing '${file}' into '${CMAKE_INSTALL_INCLUDEDIR}/${location}'") + install(FILES ${file} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${location}) endforeach() # example files foreach(file ${examples_to_install}) string(REPLACE "${CMAKE_CURRENT_SOURCE_DIR}/examples/" "" file ${file}) get_filename_component(location ${file} PATH) + # message("DOC installing 'examples/${file}' into '${CMAKE_INSTALL_DOCDIR}/examples/${location}'") install(FILES "examples/${file}" - DESTINATION doc/simgrid/examples/${location}) + DESTINATION ${CMAKE_INSTALL_DOCDIR}/examples/${location}) endforeach(file ${examples_to_install}) -########################################### -### Fill in the "make uninstall" target ### -########################################### - -add_custom_target(uninstall - COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/doc/simgrid - COMMAND ${CMAKE_COMMAND} -E echo "uninstall doc ok" - COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/lib/libsimgrid* - COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/lib/lua/5.1/simgrid* - COMMAND ${CMAKE_COMMAND} -E echo "uninstall lib ok" - COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/smpicc - COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/smpicxx - COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/smpiff - COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/smpif90 - COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/smpirun - COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/tesh - COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/simgrid-colorizer - COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/simgrid_update_xml - COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/simgrid_convert_TI_traces - COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/bin/graphicator - COMMAND ${CMAKE_COMMAND} -E echo "uninstall bin ok" - COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/instr - COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/msg - COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/simdag - COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/smpi - COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/simix - COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/surf - COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/xbt - COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/mc - COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_INSTALL_PREFIX}/include/simgrid - COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/include/simgrid.h - COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/include/simgrid/config.h - COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/include/xbt.h - COMMAND ${CMAKE_COMMAND} -E echo "uninstall include ok" - COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/share/man/man1/simgrid_update_xml.1 - COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/share/man/man1/tesh.1 - COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/share/man/man1/smpicc.1 - COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/share/man/man1/smpicxx.1 - COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/share/man/man1/smpirun.1 - COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/share/man/man1/smpiff.1 - COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/share/man/man1/smpif90.1 - - - COMMAND ${CMAKE_COMMAND} -E echo "uninstall man ok" - WORKING_DIRECTORY "${CMAKE_INSTALL_PREFIX}") - -if(SIMGRID_HAVE_LUA) - add_custom_command(TARGET uninstall - COMMAND ${CMAKE_COMMAND} -E echo "uninstall binding lua ok" - COMMAND ${CMAKE_COMMAND} -E remove -f ${CMAKE_INSTALL_PREFIX}/lib/lua/5.1/simgrid.${LIB_EXE} - WORKING_DIRECTORY "${CMAKE_HOME_DIRECTORY}/") -endif() - ################################################################ -## Build a sain "make dist" target to build a source package ### -## containing only the files that I explicitely state ### +## Build a sane "make dist" target to build a source package ### +## containing only the files that I explicitly state ### ## (instead of any cruft laying on my disk as CPack does) ### ################################################################ @@ -145,32 +79,23 @@ endif() set(source_to_pack ${headers_to_install} ${source_of_generated_headers} - ${BINDINGS_SRC} - ${JEDULE_SRC} - ${JMSG_C_SRC} - ${JMSG_JAVA_SRC} - ${LUA_SRC} ${MC_SRC_BASE} ${MC_SRC} ${MC_SIMGRID_MC_SRC} - ${MSG_SRC} ${S4U_SRC} ${NS3_SRC} ${PLUGINS_SRC} - ${RNGSTREAM_SRC} - ${SIMDAG_SRC} + ${DAG_SRC} ${SIMGRID_SRC} - ${SIMIX_SRC} ${SMPI_SRC} - ${SURF_SRC} + ${KERNEL_SRC} ${TRACING_SRC} ${XBT_RL_SRC} ${XBT_SRC} + ${STHREAD_SRC} ${EXTRA_DIST} ${CMAKE_SOURCE_FILES} ${CMAKEFILES_TXT} - ${DOC_FIGS} - ${DOC_IMG} ${DOC_SOURCES} ${DOC_TOOLS} ${PLATFORMS_EXAMPLES} @@ -179,11 +104,12 @@ set(source_to_pack ${examples_src} ${tesh_files} ${teshsuite_src} - ${testsuite_src} ${tools_src} ${txt_files} ${xml_files} ) +list(SORT source_to_pack) +list(REMOVE_DUPLICATES source_to_pack) ########################################## ### Fill in the "make dist-dir" target ### @@ -195,9 +121,6 @@ add_custom_target(dist-dir COMMAND ${CMAKE_COMMAND} -E remove ${PROJECT_NAME}-${release_version}.tar.gz COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_NAME}-${release_version} COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_NAME}-${release_version}/doc/html/ - COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_BINARY_DIR}/doc/html/ ${PROJECT_NAME}-${release_version}/doc/html/ - COMMAND rm -f `grep -rl " Reference" ${PROJECT_NAME}-${release_version}/doc/html/` # Doxygen, go away - COMMAND rm -f `grep -rl "Member List" ${PROJECT_NAME}-${release_version}/doc/html/` # Doxygen, you're getting annoying ) add_dependencies(dist-dir maintainer_files) @@ -207,6 +130,9 @@ foreach(file ${source_to_pack}) # This damn prefix is still set somewhere (seems to be in subdirs) string(REPLACE "${CMAKE_HOME_DIRECTORY}/" "" file "${file}") + # Prepare the list of files to include in the python sdist, one per line + set(PYTHON_SOURCES "${PYTHON_SOURCES}\ninclude ${file}") + # Create the directory on need get_filename_component(file_location ${file} PATH) string(REGEX MATCH ";${file_location};" OPERATION "${dirs_in_tarball}") @@ -222,6 +148,9 @@ foreach(file ${source_to_pack}) TARGET dist-dir COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_HOME_DIRECTORY}/${file} ${PROJECT_NAME}-${release_version}/${file_location}) endforeach(file ${source_to_pack}) +configure_file("${CMAKE_HOME_DIRECTORY}/MANIFEST.in.in" "${CMAKE_BINARY_DIR}/MANIFEST.in" @ONLY IMMEDIATE) +unset(PYTHON_SOURCES) + add_custom_command( TARGET dist-dir @@ -276,14 +205,6 @@ add_custom_command( COMMAND ${CMAKE_COMMAND} -E remove_directory ${PROJECT_NAME}-${release_version}/) add_dependencies(dist dist-dir) -if(NOT enable_maintainer_mode) - add_custom_target(echo-dist - COMMAND ${CMAKE_COMMAND} -E echo "WARNING: ----------------------------------------------------" - COMMAND ${CMAKE_COMMAND} -E echo "WARNING: Distrib is generated without option maintainer mode " - COMMAND ${CMAKE_COMMAND} -E echo "WARNING: ----------------------------------------------------") - add_dependencies(dist echo-dist) -endif() - ########################################### ### Fill in the "make distcheck" target ### ########################################### @@ -291,24 +212,33 @@ endif() set(CMAKE_BINARY_TEST_DIR ${CMAKE_BINARY_DIR}) # Allow to test the "make dist" -add_custom_target(distcheck - COMMAND ${CMAKE_COMMAND} -E echo "XXX compare archive with git repository" +add_custom_target(distcheck-archive + COMMAND ${CMAKE_COMMAND} -E echo "XXX Compare archive with git repository" COMMAND ${CMAKE_HOME_DIRECTORY}/tools/internal/check_dist_archive -batch ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}.tar.gz + ) +add_dependencies(distcheck-archive dist) - COMMAND ${CMAKE_COMMAND} -E echo "XXX remove old copy" +add_custom_target(distcheck-configure + COMMAND ${CMAKE_COMMAND} -E echo "XXX Remove old copy" COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version} COMMAND ${CMAKE_COMMAND} -E echo "XXX Untar distrib" - COMMAND ${CMAKE_COMMAND} -E tar xf ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}.tar.gz ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version} + COMMAND ${CMAKE_COMMAND} -E tar xf ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}.tar.gz - COMMAND ${CMAKE_COMMAND} -E echo "XXX create build and install subtrees" + COMMAND ${CMAKE_COMMAND} -E echo "XXX Create build and install subtrees" COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_build COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_inst COMMAND ${CMAKE_COMMAND} -E echo "XXX Configure" COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_build ${CMAKE_COMMAND} -DCMAKE_INSTALL_PREFIX=${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_inst -Denable_lto=OFF .. - + + COMMAND ${CMAKE_COMMAND} -E echo "XXX Check generated files -- please copy new version if they are different" + COMMAND ${CMAKE_COMMAND} -E compare_files ${CMAKE_HOME_DIRECTORY}/MANIFEST.in ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_build/MANIFEST.in + ) +add_dependencies(distcheck-configure distcheck-archive) + +add_custom_target(distcheck COMMAND ${CMAKE_COMMAND} -E echo "XXX Build" COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_build ${CMAKE_MAKE_PROGRAM} -j 4 @@ -324,7 +254,7 @@ add_custom_target(distcheck COMMAND ${CMAKE_COMMAND} -E echo "XXX Remove temp directories" COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version} ) -add_dependencies(distcheck dist) +add_dependencies(distcheck distcheck-configure) ####################################### ### Fill in the "make check" target ### @@ -337,12 +267,4 @@ else() endif() add_dependencies(check tests) -####################################### -### Fill in the "make xxx-clean" target ### -####################################### - -add_custom_target(maintainer-clean - COMMAND ${CMAKE_COMMAND} -E remove -f src/mpif.f90 - WORKING_DIRECTORY "${CMAKE_HOME_DIRECTORY}") - include(CPack)