--- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,6 +13,7 @@ include(CMakeDependentOption) include(CheckFunctionExists) +include(GNUInstallDirs) # The current version number set(PASTIX_VERSION_MAJOR 6) @@ -516,7 +517,7 @@ configure_file ( "${CMAKE_CURRENT_SOURCE_DIR}/include/pastix/config.h.in" "${PROJECT_INCLUDE_DIR}/pastix/config.h") -install(FILES "${PROJECT_INCLUDE_DIR}/pastix/config.h" DESTINATION include/pastix) +install(FILES "${PROJECT_INCLUDE_DIR}/pastix/config.h" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/pastix) include_directories("${CMAKE_CURRENT_SOURCE_DIR}") include_directories("${CMAKE_CURRENT_BINARY_DIR}") @@ -844,9 +845,9 @@ # endforeach() install(TARGETS pastix - RUNTIME DESTINATION bin - ARCHIVE DESTINATION lib - LIBRARY DESTINATION lib) + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) # Install header files set(PASTIX_HDRS @@ -861,8 +862,8 @@ ) install(FILES include/pastix.h - DESTINATION include ) -install(FILES ${PASTIX_HDRS} DESTINATION include/pastix ) + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) +install(FILES ${PASTIX_HDRS} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/pastix ) ## Executable and tests enable_testing() @@ -934,8 +935,6 @@ "${CMAKE_CURRENT_SOURCE_DIR}/pastixf.pc.in" PROJECTNAME PASTIX ) -generate_env_file( PROJECTNAME PASTIX ) - ############################################################# # # Build documentation --- a/cmake_modules/morse_cmake/modules/GenPkgConfig.cmake +++ b/cmake_modules/morse_cmake/modules/GenPkgConfig.cmake @@ -196,7 +196,7 @@ # ------------ install(FILES "${CMAKE_BINARY_DIR}/lib/pkgconfig/${fname}.pc" - DESTINATION lib/pkgconfig ) + DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" ) endforeach() @@ -232,7 +232,7 @@ # installation # ------------ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/bin/${LONAME}_env.sh" - DESTINATION bin) + DESTINATION ${CMAKE_INSTALL_BINDIR}) endmacro(generate_env_file) --- a/example/CMakeLists.txt +++ b/example/CMakeLists.txt @@ -36,6 +36,7 @@ simple.c step-by-step.c ) +set (example_install_dir "${CMAKE_INSTALL_DOCDIR}/examples/c") foreach (_file ${EXAMPLES}) get_filename_component(_name_we ${_file} NAME_WE) @@ -43,8 +44,8 @@ target_link_libraries(${_name_we} pastix) target_link_libraries(${_name_we} ${BLAS_LIBRARIES}) - install(TARGETS ${_name_we} RUNTIME DESTINATION examples ) - install(FILES ${_file} DESTINATION examples ) + install(TARGETS ${_name_we} RUNTIME DESTINATION ${example_install_dir} ) + install(FILES ${_file} DESTINATION ${example_install_dir} ) endforeach() ### Install a makefile for user compilation test @@ -58,6 +59,6 @@ "${CMAKE_CURRENT_SOURCE_DIR}/Makefile.in" "${CMAKE_CURRENT_BINARY_DIR}/make/Makefile" @ONLY) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/make/Makefile" - DESTINATION examples) + DESTINATION ${example_install_dir}) include(CTestLists.txt) --- a/example/old/CMakeLists.txt +++ b/example/old/CMakeLists.txt @@ -13,14 +13,15 @@ simple.c step-by-step.c ) +set (example_install_dir "${CMAKE_INSTALL_DOCDIR}/examples/c/old") foreach (_file ${EXAMPLES}) get_filename_component(_name_we ${_file} NAME_WE) add_executable("old_${_name_we}" ${_file}) target_link_libraries("old_${_name_we}" pastix) - install(TARGETS old_${_name_we} RUNTIME DESTINATION examples/old ) - install(FILES ${_file} DESTINATION examples/old ) + install(TARGETS old_${_name_we} RUNTIME DESTINATION ${example_install_dir} ) + install(FILES ${_file} DESTINATION ${example_install_dir} ) endforeach() ### Install a makefile for user compilation test @@ -33,5 +34,5 @@ "${CMAKE_CURRENT_SOURCE_DIR}/Makefile.in" "${CMAKE_CURRENT_BINARY_DIR}/make/Makefile" @ONLY) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/make/Makefile" - DESTINATION examples/old ) + DESTINATION ${example_install_dir} ) --- a/kernels/CMakeLists.txt +++ b/kernels/CMakeLists.txt @@ -149,8 +149,8 @@ ### Install library install(TARGETS pastix_kernels - ARCHIVE DESTINATION lib - LIBRARY DESTINATION lib) + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) ### Add generated files to the global property add_documented_files( --- a/kernels/gpus/CMakeLists.txt +++ b/kernels/gpus/CMakeLists.txt @@ -66,8 +66,8 @@ # ${cuda_generated_files}) # cuda_add_cublas_to_target( pastix_cucores_sm${_smtarget} ) # install(TARGETS pastix_cucores_sm${_smtarget} -# LIBRARY DESTINATION lib -# ARCHIVE DESTINATION lib ) +# LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} +# ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) # # if( NOT CMAKE_BUILD_SHARED_LIBS ) # # target_link_libraries( pastix_cucores pastix_cucores_sm${_smtarget} ) # # endif() @@ -79,7 +79,7 @@ cuda_add_cublas_to_target( pastix_kernels_cuda ) install(TARGETS pastix_kernels_cuda - LIBRARY DESTINATION lib - ARCHIVE DESTINATION lib ) + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ) cuda_build_clean_target() --- a/sopalin/parsec/CMakeLists.txt +++ b/sopalin/parsec/CMakeLists.txt @@ -114,8 +114,8 @@ endif (MPI_C_FOUND) install(TARGETS pastix_parsec - ARCHIVE DESTINATION lib - LIBRARY DESTINATION lib) + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) ### Add non-generated documented files to the global property add_documented_files( --- a/sopalin/starpu/CMakeLists.txt +++ b/sopalin/starpu/CMakeLists.txt @@ -96,8 +96,8 @@ endif (MPI_C_FOUND) install(TARGETS pastix_starpu - ARCHIVE DESTINATION lib - LIBRARY DESTINATION lib) + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) ### Add non-generated documented files to the global property add_documented_files( --- a/spm/CMakeLists.txt +++ b/spm/CMakeLists.txt @@ -139,7 +139,7 @@ configure_file ( "${CMAKE_CURRENT_SOURCE_DIR}/include/spm_config.h.in" "${CMAKE_CURRENT_BINARY_DIR}/include/spm_config.h") -install(FILES "${CMAKE_CURRENT_BINARY_DIR}/include/spm_config.h" DESTINATION include) +install(FILES "${CMAKE_CURRENT_BINARY_DIR}/include/spm_config.h" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) include_directories(include) include_directories("${CMAKE_CURRENT_BINARY_DIR}/include") @@ -231,14 +231,14 @@ endif (MPI_C_FOUND) install(TARGETS spm - ARCHIVE DESTINATION lib - LIBRARY DESTINATION lib) + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) install(FILES include/spm.h include/spm_const.h include/spm_datatypes.h - DESTINATION include ) + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} ) ### Build pkg-config and environment file include(GenPkgConfig) @@ -251,8 +251,6 @@ "${CMAKE_CURRENT_SOURCE_DIR}/tools/spmf.pc.in" PROJECTNAME SPM ) -generate_env_file( PROJECTNAME SPM ) - ### Add documented files to the global property add_documented_files( DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} --- a/spm/cmake_modules/morse_cmake/modules/GenPkgConfig.cmake +++ b/spm/cmake_modules/morse_cmake/modules/GenPkgConfig.cmake @@ -196,7 +196,7 @@ # ------------ install(FILES "${CMAKE_BINARY_DIR}/lib/pkgconfig/${fname}.pc" - DESTINATION lib/pkgconfig ) + DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig" ) endforeach() @@ -232,7 +232,7 @@ # installation # ------------ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/bin/${LONAME}_env.sh" - DESTINATION bin) + DESTINATION ${CMAKE_INSTALL_BINDIR}) endmacro(generate_env_file) --- a/spm/wrappers/fortran90/CMakeLists.txt +++ b/spm/wrappers/fortran90/CMakeLists.txt @@ -12,7 +12,7 @@ # Coherce CMake to install the generated .mod files set(CMAKE_Fortran_MODULE_DIRECTORY ${CMAKE_BINARY_DIR}/mod_files) -install(DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/ DESTINATION include) +install(DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) add_library( spmf src/spm_enums.F90 @@ -30,9 +30,9 @@ target_link_libraries( spmf spm ) install(TARGETS spmf - RUNTIME DESTINATION bin - ARCHIVE DESTINATION lib - LIBRARY DESTINATION lib ) + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ) # # Add examples @@ -41,14 +41,15 @@ spm_driver.f90 spm_user.f90 ) +set ( example_install_dir "${CMAKE_INSTALL_DOCDIR}/examples/fortran" ) foreach (_file ${EXAMPLES}) get_filename_component(_name_we ${_file} NAME_WE) add_executable(${_name_we} examples/${_file}) target_link_libraries(${_name_we} spmf) - install(TARGETS ${_name_we} RUNTIME DESTINATION examples ) - install(FILES examples/${_file} DESTINATION examples ) + install(TARGETS ${_name_we} RUNTIME DESTINATION ${example_install_dir} ) + install(FILES examples/${_file} DESTINATION ${example_install_dir} ) add_test(fortran_${_name_we} ./${_name_we}) --- a/spm/wrappers/python/CMakeLists.txt +++ b/spm/wrappers/python/CMakeLists.txt @@ -9,6 +9,8 @@ # ### +find_package(Python COMPONENTS Interpreter REQUIRED) + # Configure enum.py if (SPM_INT64) set(SPM_PYTHON_INTEGER c_int64) @@ -26,23 +28,20 @@ ${CMAKE_CURRENT_SOURCE_DIR}/spm/__spm__.py ${CMAKE_CURRENT_SOURCE_DIR}/spm/spm.py ${CMAKE_CURRENT_SOURCE_DIR}/spm/enum.py - DESTINATION lib/python/spm ) + DESTINATION "${Python_SITELIB}/spm" ) # Install python examples install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/spm_driver.py ${CMAKE_CURRENT_SOURCE_DIR}/spm_scipy.py - DESTINATION examples + DESTINATION "${CMAKE_INSTALL_DOCDIR}/examples/python" ) ## CTest execution -find_package(PythonInterp QUIET) -if (PYTHONINTERP_FOUND) set( PYTHON_TESTS spm_driver spm_scipy ) foreach(example ${PYTHON_TESTS} ) add_test(python_${example} ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/${example}.py) endforeach() -endif() --- a/wrappers/fortran90/CMakeLists.txt +++ b/wrappers/fortran90/CMakeLists.txt @@ -12,7 +12,7 @@ # Coherce CMake to install the generated .mod files set(CMAKE_Fortran_MODULE_DIRECTORY ${CMAKE_BINARY_DIR}/mod_files) -install(DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/ DESTINATION include) +install(DIRECTORY ${CMAKE_Fortran_MODULE_DIRECTORY}/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) add_library( pastixf src/pastix_enums.F90 @@ -30,9 +30,9 @@ target_link_libraries( pastixf pastix ) install(TARGETS pastixf - RUNTIME DESTINATION bin - ARCHIVE DESTINATION lib - LIBRARY DESTINATION lib ) + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} ) # # Add examples @@ -43,14 +43,15 @@ fstep-by-step.f90 fmultidof.f90 ) +set ( example_install_dir "${CMAKE_INSTALL_DOCDIR}/examples/fortran" ) foreach (_file ${EXAMPLES}) get_filename_component(_name_we ${_file} NAME_WE) add_executable(${_name_we} examples/${_file}) target_link_libraries(${_name_we} pastixf spmf) - install(TARGETS ${_name_we} RUNTIME DESTINATION examples ) - install(FILES examples/${_file} DESTINATION examples ) + install(TARGETS ${_name_we} RUNTIME DESTINATION ${example_install_dir} ) + install(FILES examples/${_file} DESTINATION ${example_install_dir} ) add_test(fortran_${_name_we} ./${_name_we}) @@ -65,10 +66,10 @@ add_executable(${_name_we} examples/${_file}) target_link_libraries(${_name_we} pastixf spmf) -install(TARGETS ${_name_we} RUNTIME DESTINATION examples ) -install(FILES examples/${_file} DESTINATION examples ) -install(FILES examples/test_seq.in DESTINATION examples ) -install(FILES examples/test_mt.in DESTINATION examples ) +install(TARGETS ${_name_we} RUNTIME DESTINATION ${example_install_dir} ) +install(FILES examples/${_file} DESTINATION ${example_install_dir} ) +install(FILES examples/test_seq.in DESTINATION ${example_install_dir} ) +install(FILES examples/test_mt.in DESTINATION ${example_install_dir} ) # Add OpenMP if available find_package(OpenMP) --- a/wrappers/python/CMakeLists.txt +++ b/wrappers/python/CMakeLists.txt @@ -9,6 +9,8 @@ # ### +find_package(Python COMPONENTS Interpreter REQUIRED) + # Configure enum.py if (PASTIX_INT64) set(PASTIX_PYTHON_INTEGER c_int64) @@ -27,7 +29,7 @@ ${CMAKE_CURRENT_SOURCE_DIR}/examples/pypastix/pastix.py ${CMAKE_CURRENT_SOURCE_DIR}/examples/pypastix/enum.py ${CMAKE_CURRENT_SOURCE_DIR}/examples/pypastix/solver.py - DESTINATION lib/python/pypastix ) + DESTINATION "${Python_SITELIB}/pypastix" ) # Install python examples install(FILES @@ -35,12 +37,10 @@ ${CMAKE_CURRENT_SOURCE_DIR}/examples/simple_obj.py ${CMAKE_CURRENT_SOURCE_DIR}/examples/schur.py ${CMAKE_CURRENT_SOURCE_DIR}/examples/schur_obj.py - DESTINATION examples + DESTINATION "${CMAKE_INSTALL_DOCDIR}/examples/python" ) ## CTest execution -find_package(PythonInterp QUIET) -if (PYTHONINTERP_FOUND) set( PYTHON_TESTS simple step-by-step schur simple_obj schur_obj ) @@ -57,5 +57,4 @@ set_tests_properties( python_${example} PROPERTIES ENVIRONMENT "${TEST_ENV_LIST}" ) endforeach() -endif()