X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/d692b72a551d6a3b6cc4a1466bccf6157dc5dba8..630f6085be5dfa41c4fee13930e8a87026a75d78:/tools/cmake/Distrib.cmake diff --git a/tools/cmake/Distrib.cmake b/tools/cmake/Distrib.cmake index 193888351c..72d8a98642 100644 --- a/tools/cmake/Distrib.cmake +++ b/tools/cmake/Distrib.cmake @@ -3,9 +3,7 @@ ######################################### # doc -file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/doc/html/) -install(DIRECTORY "${CMAKE_BINARY_DIR}/doc/html/" - DESTINATION doc/simgrid/html/) +install(DIRECTORY "${CMAKE_BINARY_DIR}/doc/html/" DESTINATION ${CMAKE_INSTALL_DOCDIR}/html/ OPTIONAL) # binaries if(enable_smpi) @@ -13,24 +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(PROGRAMS ${CMAKE_BINARY_DIR}/bin/graphicator DESTINATION bin/) +install(PROGRAMS ${CMAKE_BINARY_DIR}/bin/tesh DESTINATION ${CMAKE_INSTALL_BINDIR}/) install(PROGRAMS ${CMAKE_HOME_DIRECTORY}/tools/MSG_visualization/colorize.pl - DESTINATION bin/ + DESTINATION ${CMAKE_INSTALL_BINDIR}/ RENAME simgrid-colorizer) add_custom_target(simgrid-colorizer ALL @@ -38,7 +34,7 @@ add_custom_target(simgrid-colorizer ALL COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_HOME_DIRECTORY}/tools/MSG_visualization/colorize.pl ${CMAKE_BINARY_DIR}/bin/colorize) 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 @@ -46,7 +42,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 @@ -54,11 +50,11 @@ 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/) +install(TARGETS simgrid DESTINATION ${CMAKE_INSTALL_LIBDIR}/) if(enable_java) set(SIMGRID_JAR_TO_INSTALL "${SIMGRID_JAR}") - install(TARGETS simgrid-java DESTINATION lib/) + install(TARGETS simgrid-java DESTINATION ${CMAKE_INSTALL_LIBDIR}/) install(FILES ${SIMGRID_JAR_TO_INSTALL} DESTINATION java/ RENAME simgrid.jar) @@ -67,21 +63,25 @@ endif() # 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}) ########################################### @@ -139,7 +139,7 @@ endif() ################################################################ ## Build a sain "make dist" target to build a source package ### -## containing only the files that I explicitely state ### +## containing only the files that I explicitly state ### ## (instead of any cruft laying on my disk as CPack does) ### ################################################################ @@ -159,7 +159,6 @@ set(source_to_pack ${S4U_SRC} ${NS3_SRC} ${PLUGINS_SRC} - ${RNGSTREAM_SRC} ${SIMDAG_SRC} ${SIMGRID_SRC} ${SIMIX_SRC} @@ -181,11 +180,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 ### @@ -197,18 +197,19 @@ 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) set(dirs_in_tarball "") +set(PYTHON_SOURCES "include MANIFEST.in") foreach(file ${source_to_pack}) #message(${file}) # 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}") @@ -224,6 +225,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 @@ -294,37 +298,37 @@ 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" + 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 - COMMAND ${CMAKE_COMMAND} -E echo "XXX remove old copy" + 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 + 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 - COMMAND ${CMAKE_COMMAND} -E echo "XXX Test" - COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_build ctest --output-on-failure -j 4 - COMMAND ${CMAKE_COMMAND} -E echo "XXX Install" COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_build ${CMAKE_MAKE_PROGRAM} install - COMMAND ${CMAKE_COMMAND} -E create_symlink - ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_inst/lib/libsimgrid.so - ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_inst/lib/libsimgridtest.so - COMMAND ${CMAKE_COMMAND} -E echo "XXX Install with documentation" - COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_build ${CMAKE_MAKE_PROGRAM} install + COMMAND ${CMAKE_COMMAND} -E echo "XXX Build tests" + COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_build ${CMAKE_MAKE_PROGRAM} -j 4 tests + + COMMAND ${CMAKE_COMMAND} -E echo "XXX Run tests" + COMMAND ${CMAKE_COMMAND} -E chdir ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version}/_build ctest --output-on-failure -j 4 COMMAND ${CMAKE_COMMAND} -E echo "XXX Remove temp directories" COMMAND ${CMAKE_COMMAND} -E remove_directory ${CMAKE_BINARY_TEST_DIR}/${PROJECT_NAME}-${release_version} @@ -340,21 +344,13 @@ if(enable_memcheck) else() add_custom_target(check COMMAND make test) endif() +add_dependencies(check tests) ####################################### ### Fill in the "make xxx-clean" target ### ####################################### add_custom_target(maintainer-clean - COMMAND ${CMAKE_COMMAND} -E remove -f src/config_unit.c - COMMAND ${CMAKE_COMMAND} -E remove -f src/cunit_unit.c - COMMAND ${CMAKE_COMMAND} -E remove -f src/dict_unit.c - COMMAND ${CMAKE_COMMAND} -E remove -f src/dynar_unit.c - COMMAND ${CMAKE_COMMAND} -E remove -f src/ex_unit.c - COMMAND ${CMAKE_COMMAND} -E remove -f src/set_unit.c - COMMAND ${CMAKE_COMMAND} -E remove -f src/simgrid_units_main.c - COMMAND ${CMAKE_COMMAND} -E remove -f src/xbt_str_unit.c - COMMAND ${CMAKE_COMMAND} -E remove -f src/xbt_synchro_unit.c COMMAND ${CMAKE_COMMAND} -E remove -f src/mpif.f90 WORKING_DIRECTORY "${CMAKE_HOME_DIRECTORY}")