Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use same objects for linking to shared and static libraries. #876

Closed
wants to merge 16 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
5f738b9
AMD: Use same objects for linking to shared and static libraries.
mmuetzel Oct 18, 2024
c8a02d1
SuiteSparse_config: Use same objects for linking to shared and static…
mmuetzel Nov 13, 2024
c5de430
BTF: Use same objects for linking to shared and static libraries.
mmuetzel Nov 13, 2024
98e893d
CAMD: Use same objects for linking to shared and static libraries.
mmuetzel Nov 13, 2024
6f2d243
CCOLAMD: Use same objects for linking to shared and static libraries.
mmuetzel Nov 13, 2024
2b5e293
CHOLMOD: Use same objects for linking to shared and static libraries.
mmuetzel Nov 13, 2024
acbd5ec
COLAMD: Use same objects for linking to shared and static libraries.
mmuetzel Nov 13, 2024
dfc703c
CSparse: Use same objects for linking to shared and static libraries.
mmuetzel Nov 13, 2024
5a96664
CXSparse: Use same objects for linking to shared and static libraries.
mmuetzel Nov 13, 2024
d80b100
KLU: Use same objects for linking to shared and static libraries.
mmuetzel Nov 13, 2024
24ef04e
LDL: Use same objects for linking to shared and static libraries.
mmuetzel Nov 13, 2024
de09594
ParU: Use same objects for linking to shared and static libraries.
mmuetzel Nov 13, 2024
0e219ea
RBio: Use same objects for linking to shared and static libraries.
mmuetzel Nov 13, 2024
c06de5c
SPEX: Use same objects for linking to shared and static libraries.
mmuetzel Nov 13, 2024
955e30c
SPQR: Use same objects for linking to shared and static libraries.
mmuetzel Nov 13, 2024
be9faa1
UMFPACK: Use same objects for linking to shared and static libraries.
mmuetzel Nov 13, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
21 changes: 12 additions & 9 deletions AMD/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -66,13 +66,7 @@ configure_file ( "Config/amd_version.tex.in" "${PROJECT_SOURCE_DIR}/Doc/amd_vers
NEWLINE_STYLE LF )

#-------------------------------------------------------------------------------
# include directories
#-------------------------------------------------------------------------------

include_directories ( Source Include )

#-------------------------------------------------------------------------------
# dynamic amd library properties
# object library
#-------------------------------------------------------------------------------

if ( SUITESPARSE_HAS_FORTRAN )
Expand All @@ -81,8 +75,15 @@ else ( )
file ( GLOB AMD_SOURCES "Source/*.c" )
endif ( )

add_library ( amd_obj OBJECT ${AMD_SOURCES} )
target_include_directories ( amd_obj PRIVATE Source Include )

#-------------------------------------------------------------------------------
# dynamic amd library properties
#-------------------------------------------------------------------------------

if ( BUILD_SHARED_LIBS )
add_library ( AMD SHARED ${AMD_SOURCES} )
add_library ( AMD SHARED $<TARGET_OBJECTS:amd_obj> )
set_target_properties ( AMD PROPERTIES
VERSION ${AMD_VERSION_MAJOR}.${AMD_VERSION_MINOR}.${AMD_VERSION_SUB}
C_STANDARD 11
Expand All @@ -107,7 +108,7 @@ endif ( )
#-------------------------------------------------------------------------------

if ( BUILD_STATIC_LIBS )
add_library ( AMD_static STATIC ${AMD_SOURCES} )
add_library ( AMD_static STATIC $<TARGET_OBJECTS:amd_obj> )
set_target_properties ( AMD_static PROPERTIES
C_STANDARD 11
C_STANDARD_REQUIRED ON
Expand Down Expand Up @@ -135,6 +136,8 @@ endif ( )
#-------------------------------------------------------------------------------

# SuiteSparseConfig:
target_include_directories ( amd_obj PRIVATE
"$<TARGET_PROPERTY:SuiteSparse::SuiteSparseConfig,INTERFACE_INCLUDE_DIRECTORIES>" )
if ( BUILD_SHARED_LIBS )
target_link_libraries ( AMD PRIVATE SuiteSparse::SuiteSparseConfig )
target_include_directories ( AMD PUBLIC
Expand Down
15 changes: 9 additions & 6 deletions BTF/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -59,19 +59,20 @@ configure_file ( "Config/btf.h.in" "${PROJECT_SOURCE_DIR}/Include/btf.h"
NEWLINE_STYLE LF )

#-------------------------------------------------------------------------------
# include directories
# object library
#-------------------------------------------------------------------------------

include_directories ( Source Include )
file ( GLOB BTF_SOURCES "Source/*.c" )

add_library ( btf_obj OBJECT ${BTF_SOURCES} )
target_include_directories ( btf_obj PRIVATE Source Include )

#-------------------------------------------------------------------------------
# dynamic btf library properties
#-------------------------------------------------------------------------------

file ( GLOB BTF_SOURCES "Source/*.c" )

if ( BUILD_SHARED_LIBS )
add_library ( BTF SHARED ${BTF_SOURCES} )
add_library ( BTF SHARED $<TARGET_OBJECTS:btf_obj> )

set_target_properties ( BTF PROPERTIES
VERSION ${BTF_VERSION_MAJOR}.${BTF_VERSION_MINOR}.${BTF_VERSION_SUB}
Expand All @@ -96,7 +97,7 @@ endif ( )
#-------------------------------------------------------------------------------

if ( BUILD_STATIC_LIBS )
add_library ( BTF_static STATIC ${BTF_SOURCES} )
add_library ( BTF_static STATIC $<TARGET_OBJECTS:btf_obj> )

set_target_properties ( BTF_static PROPERTIES
C_STANDARD 11
Expand All @@ -123,6 +124,8 @@ endif ( )
#-------------------------------------------------------------------------------

# SuiteSparseConfig:
target_include_directories ( btf_obj PRIVATE
"$<TARGET_PROPERTY:SuiteSparse::SuiteSparseConfig,INTERFACE_INCLUDE_DIRECTORIES>" )
if ( BUILD_SHARED_LIBS )
target_include_directories ( BTF PUBLIC
"$<TARGET_PROPERTY:SuiteSparse::SuiteSparseConfig,INTERFACE_INCLUDE_DIRECTORIES>" )
Expand Down
16 changes: 10 additions & 6 deletions CAMD/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -62,19 +62,20 @@ configure_file ( "Config/camd_version.tex.in"
NEWLINE_STYLE LF )

#-------------------------------------------------------------------------------
# include directories
# object library
#-------------------------------------------------------------------------------

include_directories ( Source Include )
file ( GLOB CAMD_SOURCES "Source/*.c" )

add_library ( camd_obj OBJECT ${CAMD_SOURCES} )
target_include_directories ( camd_obj PRIVATE Source Include )

#-------------------------------------------------------------------------------
# dynamic camd library properties
#-------------------------------------------------------------------------------

file ( GLOB CAMD_SOURCES "Source/*.c" )

if ( BUILD_SHARED_LIBS )
add_library ( CAMD SHARED ${CAMD_SOURCES} )
add_library ( CAMD SHARED $<TARGET_OBJECTS:camd_obj> )

set_target_properties ( CAMD PROPERTIES
VERSION ${CAMD_VERSION_MAJOR}.${CAMD_VERSION_MINOR}.${CAMD_VERSION_SUB}
Expand All @@ -99,7 +100,7 @@ endif ( )
#-------------------------------------------------------------------------------

if ( BUILD_STATIC_LIBS )
add_library ( CAMD_static STATIC ${CAMD_SOURCES} )
add_library ( CAMD_static STATIC $<TARGET_OBJECTS:camd_obj> )

set_target_properties ( CAMD_static PROPERTIES
C_STANDARD 11
Expand All @@ -125,6 +126,9 @@ endif ( )
# add the library dependencies
#-------------------------------------------------------------------------------

target_include_directories ( camd_obj PRIVATE
"$<TARGET_PROPERTY:SuiteSparse::SuiteSparseConfig,INTERFACE_INCLUDE_DIRECTORIES>" )

if ( BUILD_SHARED_LIBS )
target_link_libraries ( CAMD PRIVATE SuiteSparse::SuiteSparseConfig )
target_include_directories ( CAMD PUBLIC
Expand Down
15 changes: 9 additions & 6 deletions CCOLAMD/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -59,19 +59,20 @@ configure_file ( "Config/ccolamd.h.in"
NEWLINE_STYLE LF )

#-------------------------------------------------------------------------------
# include directories
# object library
#-------------------------------------------------------------------------------

include_directories ( Source Include )
file ( GLOB CCOLAMD_SOURCES "Source/*.c" )

add_library ( ccolamd_obj OBJECT ${CCOLAMD_SOURCES} )
target_include_directories ( ccolamd_obj PRIVATE Source Include )

#-------------------------------------------------------------------------------
# dynamic ccolamd library properties
#-------------------------------------------------------------------------------

file ( GLOB CCOLAMD_SOURCES "Source/*.c" )

if ( BUILD_SHARED_LIBS )
add_library ( CCOLAMD SHARED ${CCOLAMD_SOURCES} )
add_library ( CCOLAMD SHARED $<TARGET_OBJECTS:ccolamd_obj> )

set_target_properties ( CCOLAMD PROPERTIES
VERSION ${CCOLAMD_VERSION_MAJOR}.${CCOLAMD_VERSION_MINOR}.${CCOLAMD_VERSION_SUB}
Expand All @@ -96,7 +97,7 @@ endif ( )
#-------------------------------------------------------------------------------

if ( BUILD_STATIC_LIBS )
add_library ( CCOLAMD_static STATIC ${CCOLAMD_SOURCES} )
add_library ( CCOLAMD_static STATIC $<TARGET_OBJECTS:ccolamd_obj> )

set_target_properties ( CCOLAMD_static PROPERTIES
OUTPUT_NAME ccolamd
Expand All @@ -122,6 +123,8 @@ endif ( )
# add the library dependencies
#-------------------------------------------------------------------------------

target_include_directories ( ccolamd_obj PRIVATE
"$<TARGET_PROPERTY:SuiteSparse::SuiteSparseConfig,INTERFACE_INCLUDE_DIRECTORIES>" )
if ( BUILD_SHARED_LIBS )
target_link_libraries ( CCOLAMD PRIVATE SuiteSparse::SuiteSparseConfig )
target_include_directories ( CCOLAMD PUBLIC
Expand Down
44 changes: 30 additions & 14 deletions CHOLMOD/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -359,22 +359,23 @@ configure_file ( "Config/cholmod_version.tex.in"
NEWLINE_STYLE LF )

#-------------------------------------------------------------------------------
# include directories
# object library
#-------------------------------------------------------------------------------

include_directories ( Check Cholesky Utility MatrixOps Modify Partition
Supernodal Include ${PROJECT_SOURCE_DIR} )
file ( GLOB CHOLMOD_SOURCES "Check/cholmod_*.c" "Cholesky/cholmod_*.c"
"Utility/cholmod_*.c" "MatrixOps/cholmod_*.c" "Modify/cholmod_*.c"
"Partition/cholmod_*.c" "Supernodal/cholmod_*.c" )

add_library ( cholmod_obj OBJECT ${CHOLMOD_SOURCES} )
target_include_directories ( cholmod_obj PRIVATE Check Cholesky Utility
MatrixOps Modify Partition Supernodal Include ${PROJECT_SOURCE_DIR} )

#-------------------------------------------------------------------------------
# dynamic cholmod library properties
#-------------------------------------------------------------------------------

file ( GLOB CHOLMOD_SOURCES "Check/cholmod_*.c" "Cholesky/cholmod_*.c"
"Utility/cholmod_*.c" "MatrixOps/cholmod_*.c" "Modify/cholmod_*.c"
"Partition/cholmod_*.c" "Supernodal/cholmod_*.c" )

if ( BUILD_SHARED_LIBS )
add_library ( CHOLMOD SHARED ${CHOLMOD_SOURCES} )
add_library ( CHOLMOD SHARED $<TARGET_OBJECTS:cholmod_obj> )

set_target_properties ( CHOLMOD PROPERTIES
VERSION ${CHOLMOD_VERSION_MAJOR}.${CHOLMOD_VERSION_MINOR}.${CHOLMOD_VERSION_SUB}
Expand Down Expand Up @@ -405,7 +406,7 @@ endif ( )
#-------------------------------------------------------------------------------

if ( BUILD_STATIC_LIBS )
add_library ( CHOLMOD_static STATIC ${CHOLMOD_SOURCES} )
add_library ( CHOLMOD_static STATIC $<TARGET_OBJECTS:cholmod_obj> )

set_target_properties ( CHOLMOD_static PROPERTIES
C_STANDARD 11
Expand Down Expand Up @@ -439,6 +440,8 @@ endif ( )
#-------------------------------------------------------------------------------

# SuiteSparseConfig:
target_include_directories ( cholmod_obj PRIVATE
"$<TARGET_PROPERTY:SuiteSparse::SuiteSparseConfig,INTERFACE_INCLUDE_DIRECTORIES>" )
if ( BUILD_SHARED_LIBS )
target_link_libraries ( CHOLMOD PRIVATE SuiteSparse::SuiteSparseConfig )
target_include_directories ( CHOLMOD PUBLIC
Expand All @@ -453,6 +456,8 @@ if ( BUILD_STATIC_LIBS )
endif ( )

# AMD:
target_include_directories ( cholmod_obj PRIVATE
"$<TARGET_PROPERTY:SuiteSparse::AMD,INTERFACE_INCLUDE_DIRECTORIES>" )
if ( BUILD_SHARED_LIBS )
target_link_libraries ( CHOLMOD PRIVATE SuiteSparse::AMD )
endif ( )
Expand All @@ -465,6 +470,8 @@ if ( BUILD_STATIC_LIBS )
endif ( )

# COLAMD:
target_include_directories ( cholmod_obj PRIVATE
"$<TARGET_PROPERTY:SuiteSparse::COLAMD,INTERFACE_INCLUDE_DIRECTORIES>" )
if ( BUILD_SHARED_LIBS )
target_link_libraries ( CHOLMOD PRIVATE SuiteSparse::COLAMD )
endif ( )
Expand All @@ -478,6 +485,8 @@ endif ( )

# CAMD and CCOLAMD:
if ( CHOLMOD_CAMD )
target_include_directories ( cholmod_obj PRIVATE
"$<TARGET_PROPERTY:SuiteSparse::CAMD,INTERFACE_INCLUDE_DIRECTORIES>" )
if ( BUILD_SHARED_LIBS )
target_link_libraries ( CHOLMOD PRIVATE SuiteSparse::CAMD )
endif ( )
Expand All @@ -490,6 +499,8 @@ if ( CHOLMOD_CAMD )
endif ( )
endif ( )

target_include_directories ( cholmod_obj PRIVATE
"$<TARGET_PROPERTY:SuiteSparse::CCOLAMD,INTERFACE_INCLUDE_DIRECTORIES>" )
if ( BUILD_SHARED_LIBS )
target_link_libraries ( CHOLMOD PRIVATE SuiteSparse::CCOLAMD )
endif ( )
Expand All @@ -508,6 +519,7 @@ if ( CHOLMOD_HAS_OPENMP )
message ( STATUS "OpenMP C libraries: ${OpenMP_C_LIBRARIES}" )
message ( STATUS "OpenMP C include: ${OpenMP_C_INCLUDE_DIRS}" )
message ( STATUS "OpenMP C flags: ${OpenMP_C_FLAGS}" )
target_link_libraries ( cholmod_obj PRIVATE OpenMP::OpenMP_C )
if ( BUILD_SHARED_LIBS )
target_link_libraries ( CHOLMOD PRIVATE OpenMP::OpenMP_C )
endif ( )
Expand Down Expand Up @@ -548,7 +560,7 @@ if ( CHOLMOD_SUPERNODAL )
list ( APPEND CHOLMOD_STATIC_LIBS ${LAPACK_LIBRARIES} )
target_link_libraries ( CHOLMOD_static PRIVATE ${LAPACK_LIBRARIES} )
endif ( )
include_directories ( ${LAPACK_INCLUDE_DIR} )
target_include_directories ( cholmod_obj PRIVATE ${LAPACK_INCLUDE_DIR} )

# BLAS:
message ( STATUS "BLAS libraries: ${BLAS_LIBRARIES}" )
Expand All @@ -561,14 +573,15 @@ if ( CHOLMOD_SUPERNODAL )
list ( APPEND CHOLMOD_STATIC_LIBS ${BLAS_LIBRARIES} )
target_link_libraries ( CHOLMOD_static PRIVATE ${BLAS_LIBRARIES} )
endif ( )
include_directories ( ${BLAS_INCLUDE_DIRS} )
target_include_directories ( cholmod_obj PRIVATE ${BLAS_INCLUDE_DIRS} )
endif ( )

# METIS and the Partition module:
if ( CHOLMOD_PARTITION )
include_directories ( SuiteSparse_metis/GKlib )
include_directories ( SuiteSparse_metis/libmetis )
include_directories ( SuiteSparse_metis/include )
target_include_directories ( cholmod_obj PRIVATE
SuiteSparse_metis/GKlib
SuiteSparse_metis/libmetis
SuiteSparse_metis/include )
endif ( )

# CHOLMOD_CUDA
Expand All @@ -582,6 +595,8 @@ if ( CHOLMOD_HAS_CUDA )
# if ( BUILD_STATIC_LIBS )
# target_compile_definitions ( CHOLMOD_static PUBLIC "CHOLMOD_HAS_CUDA" )
# endif ( )
target_link_libraries ( cholmod_obj PRIVATE
CUDA::nvrtc CUDA::cudart_static CUDA::cublas )
if ( BUILD_SHARED_LIBS )
target_link_libraries ( CHOLMOD PRIVATE CUDA::nvrtc CUDA::cudart_static CUDA::cublas )
target_include_directories ( CHOLMOD INTERFACE
Expand Down Expand Up @@ -610,6 +625,7 @@ if ( CHOLMOD_HAS_CUDA )
set ( CMAKE_EXTRA_INCLUDE_FILES ${_orig_CMAKE_EXTRA_INCLUDE_FILES} )

if ( NOT HAVE_COMPAR_FN_T )
target_compile_definitions ( cholmod_obj PRIVATE NCOMPAR_FN_T )
if ( BUILD_SHARED_LIBS )
target_compile_definitions ( CHOLMOD PRIVATE NCOMPAR_FN_T )
endif ( )
Expand Down
30 changes: 8 additions & 22 deletions CHOLMOD/GPU/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,7 @@ message ( STATUS "nvcc flags for CUDA: ${CMAKE_CUDA_FLAGS}" )
file ( GLOB CHOLMOD_CUDA_SOURCES "cholmod_gpu.c" "cholmod_l_gpu.c"
"cholmod_gpu_kernels.cu" )

if ( BUILD_SHARED_LIBS )
target_sources ( CHOLMOD PRIVATE ${CHOLMOD_CUDA_SOURCES} )
endif ( )

if ( BUILD_STATIC_LIBS )
target_sources ( CHOLMOD_static PRIVATE ${CHOLMOD_CUDA_SOURCES} )
endif ( )
target_sources ( cholmod_obj PRIVATE ${CHOLMOD_CUDA_SOURCES} )

set ( CHOLMOD_CUDA_INCLUDES
../Check
Expand All @@ -45,12 +39,13 @@ set ( CHOLMOD_CUDA_INCLUDES
../Include
../GPU )

include_directories ( ${CHOLMOD_CUDA_INCLUDES} ${CUDAToolkit_INCLUDE_DIRS} )
target_include_directories ( cholmod_obj PRIVATE
${CHOLMOD_CUDA_INCLUDES} ${CUDAToolkit_INCLUDE_DIRS} )
set_target_properties ( cholmod_obj PROPERTIES
POSITION_INDEPENDENT_CODE ON
CUDA_SEPARABLE_COMPILATION ON )

if ( BUILD_SHARED_LIBS )
target_include_directories ( CHOLMOD PRIVATE
${CUDAToolkit_INCLUDE_DIRS}
${CHOLMOD_CUDA_INCLUDES} )
set_target_properties ( CHOLMOD PROPERTIES POSITION_INDEPENDENT_CODE ON )
set_target_properties ( CHOLMOD PROPERTIES CUDA_SEPARABLE_COMPILATION ON )
# target_compile_definitions ( CHOLMOD PUBLIC "CHOLMOD_HAS_CUDA" )
Expand All @@ -60,16 +55,7 @@ if ( BUILD_STATIC_LIBS )
target_include_directories ( CHOLMOD_static PRIVATE
${CUDAToolkit_INCLUDE_DIRS}
${CHOLMOD_CUDA_INCLUDES} )
set_target_properties ( CHOLMOD_static PROPERTIES CUDA_SEPARABLE_COMPILATION on )
set_target_properties ( CHOLMOD_static PROPERTIES POSITION_INDEPENDENT_CODE on )
set_target_properties ( CHOLMOD_static PROPERTIES CUDA_SEPARABLE_COMPILATION ON )
set_target_properties ( CHOLMOD_static PROPERTIES POSITION_INDEPENDENT_CODE ON )
# target_compile_definitions ( CHOLMOD_static PUBLIC "CHOLMOD_HAS_CUDA" )
endif ( )

if ( BUILD_SHARED_LIBS )
target_link_libraries ( CHOLMOD PRIVATE
CUDA::nvrtc CUDA::cudart_static CUDA::cublas )
endif ( )
if ( BUILD_STATIC_LIBS )
target_link_libraries ( CHOLMOD_static PRIVATE
CUDA::nvrtc CUDA::cudart_static CUDA::cublas )
endif ( )
Loading
Loading