From 5a582ac16f3a8ba04d646d4ab8d8b985517f3b44 Mon Sep 17 00:00:00 2001 From: Izaak Beekman Date: Mon, 18 Dec 2017 17:45:21 -0500 Subject: [PATCH] Only build static OR shared libs - Use canonical -DBUILD_SHARED_LIBS=TRUE (CMake) --- base/CMakeLists.txt | 19 +------------------ krylov/CMakeLists.txt | 18 +----------------- prec/CMakeLists.txt | 19 ++----------------- util/CMakeLists.txt | 18 +----------------- 4 files changed, 5 insertions(+), 69 deletions(-) diff --git a/base/CMakeLists.txt b/base/CMakeLists.txt index 5e543441c..f0fd66ea3 100644 --- a/base/CMakeLists.txt +++ b/base/CMakeLists.txt @@ -448,8 +448,7 @@ if (SERIAL_MPI) set(base_source_files ${base_source_files} modules/fakempi.c) endif() -add_library(base SHARED ${base_source_files}) -add_library(base_static STATIC ${base_source_files}) +add_library(base ${base_source_files}) set_target_properties(base PROPERTIES @@ -458,29 +457,13 @@ set_target_properties(base SOVERSION ${PSBLAS_SO_VERSION} OUTPUT_NAME psb_base ) -set_target_properties(base_static - PROPERTIES - Fortran_MODULE_DIRECTORY "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR}/${mod_dir_tail}" - POSITION_INDEPENDENT_CODE TRUE - SOVERSION ${PSBLAS_SO_VERSION} - OUTPUT_NAME psb_base -) target_link_libraries(base PRIVATE ${MPI_C_LIBRARIES} ${MPI_Fortran_LIBRARIES}) -target_link_libraries(base_static PRIVATE ${MPI_C_LIBRARIES} ${MPI_Fortran_LIBRARIES}) install(DIRECTORY "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR}/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" FILES_MATCHING PATTERN "*.mod") -get_target_property(libbase_static base_static OUTPUT_NAME) -set(PSBLAS_LIBS "${CMAKE_INSTALL_LIBDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}${libbase_static}${CMAKE_STATIC_LIBRARY_SUFFIX}") - install(TARGETS base EXPORT PSBLAS_Targets DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ) -install(TARGETS base_static - EXPORT PSBLAS_Targets - ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" - LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" -) diff --git a/krylov/CMakeLists.txt b/krylov/CMakeLists.txt index 6bab1b0f0..7316066eb 100644 --- a/krylov/CMakeLists.txt +++ b/krylov/CMakeLists.txt @@ -131,11 +131,9 @@ psb_zkrylov.f90 psb_zrgmres.f90 ) -add_library(krylov SHARED ${krylov_source_files}) -add_library(krylov_static STATIC ${krylov_source_files}) +add_library(krylov ${krylov_source_files}) target_link_libraries(krylov PRIVATE ${MPI_C_LIBRARIES} ${MPI_Fortran_LIBRARIES} prec) -target_link_libraries(krylov_static PRIVATE ${MPI_C_LIBRARIES} ${MPI_Fortran_LIBRARIES} prec_static) install(DIRECTORY "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR}/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" FILES_MATCHING PATTERN "*.mod") @@ -147,22 +145,8 @@ set_target_properties ( krylov POSITION_INDEPENDENT_CODE TRUE OUTPUT_NAME psb_krylov ) -set_target_properties( krylov_static - PROPERTIES - SOVERSION ${PSBLAS_SO_VERSION} - Fortran_MODULE_DIRECTORY "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR}/${mod_dir_tail}" - POSITION_INDEPENDENT_CODE TRUE - OUTPUT_NAME psb_krylov -) - -get_target_property(libkrylov_static krylov_static OUTPUT_NAME) -set(PSBLAS_LIBS "${CMAKE_INSTALL_LIBDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}${libkrylov_static}${CMAKE_STATIC_LIBRARY_SUFFIX}") install(TARGETS krylov EXPORT PSBLAS_Targets DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ) -install(TARGETS krylov_static EXPORT PSBLAS_Targets - ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" - LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" -) diff --git a/prec/CMakeLists.txt b/prec/CMakeLists.txt index 1fd0a887d..a34af9c1c 100644 --- a/prec/CMakeLists.txt +++ b/prec/CMakeLists.txt @@ -147,11 +147,10 @@ set(prec_source_files ./psb_d_base_prec_mod.f90 ) -add_library(prec SHARED ${prec_source_files}) -add_library(prec_static STATIC ${prec_source_files}) +add_library(prec ${prec_source_files}) + target_link_libraries(prec PRIVATE ${MPI_C_LIBRARIES} ${MPI_Fortran_LIBRARIES} base) -target_link_libraries(prec_static PRIVATE ${MPI_C_LIBRARIES} ${MPI_Fortran_LIBRARIES} base_static) install(DIRECTORY "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR}/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" FILES_MATCHING PATTERN "*.mod") @@ -163,22 +162,8 @@ set_target_properties ( prec POSITION_INDEPENDENT_CODE TRUE OUTPUT_NAME psb_prec ) -set_target_properties( prec_static - PROPERTIES - SOVERSION ${PSBLAS_SO_VERSION} - Fortran_MODULE_DIRECTORY "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR}/${mod_dir_tail}" - POSITION_INDEPENDENT_CODE TRUE - OUTPUT_NAME psb_prec -) - -get_target_property(libprec_static prec_static OUTPUT_NAME) -set(PSBLAS_LIBS "${CMAKE_INSTALL_LIBDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}${libprec_static}${CMAKE_STATIC_LIBRARY_SUFFIX}") install(TARGETS prec EXPORT PSBLAS_Targets DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ) -install(TARGETS prec_static EXPORT PSBLAS_Targets - ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" - LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" -) diff --git a/util/CMakeLists.txt b/util/CMakeLists.txt index d618497a8..201b836ad 100644 --- a/util/CMakeLists.txt +++ b/util/CMakeLists.txt @@ -119,11 +119,9 @@ psb_z_mmio_impl.f90 psb_z_renum_impl.F90 ) -add_library(util SHARED ${util_source_files}) -add_library(util_static STATIC ${util_source_files}) +add_library(util ${util_source_files}) target_link_libraries(util PRIVATE ${MPI_C_LIBRARIES} ${MPI_Fortran_LIBRARIES} base) -target_link_libraries(util_static PRIVATE ${MPI_C_LIBRARIES} ${MPI_Fortran_LIBRARIES} base_static) install(DIRECTORY "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR}/" DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}" FILES_MATCHING PATTERN "*.mod") @@ -135,22 +133,8 @@ set_target_properties ( util POSITION_INDEPENDENT_CODE TRUE OUTPUT_NAME psb_util ) -set_target_properties( util_static - PROPERTIES - SOVERSION ${PSBLAS_SO_VERSION} - Fortran_MODULE_DIRECTORY "${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_INCLUDEDIR}/${mod_dir_tail}" - POSITION_INDEPENDENT_CODE TRUE - OUTPUT_NAME psb_util -) - -get_target_property(libutil_static util_static OUTPUT_NAME) -set(PSBLAS_LIBS "${CMAKE_INSTALL_LIBDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}${libutil_static}${CMAKE_STATIC_LIBRARY_SUFFIX}") install(TARGETS util EXPORT PSBLAS_Targets DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" ) -install(TARGETS util_static EXPORT PSBLAS_Targets - ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" - LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" -)