diff --git a/AMD/CMakeLists.txt b/AMD/CMakeLists.txt index 4cc7567b4d..cfae55c44d 100644 --- a/AMD/CMakeLists.txt +++ b/AMD/CMakeLists.txt @@ -99,7 +99,7 @@ target_include_directories ( AMD # static amd library properties #------------------------------------------------------------------------------- -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) add_library ( AMD_static STATIC ${AMD_SOURCES} ) set_target_properties ( AMD_static PROPERTIES C_STANDARD 11 @@ -126,7 +126,7 @@ endif ( ) target_link_libraries ( AMD PRIVATE SuiteSparse::SuiteSparseConfig ) target_include_directories ( AMD PUBLIC "$" ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) if ( TARGET SuiteSparse::SuiteSparseConfig_static ) target_link_libraries ( AMD_static PUBLIC SuiteSparse::SuiteSparseConfig_static ) else ( ) @@ -137,7 +137,7 @@ endif ( ) # libm: if ( NOT WIN32 ) target_link_libraries ( AMD PRIVATE m ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) set ( AMD_STATIC_LIBS "${AMD_STATIC_LIBS} -lm" ) target_link_libraries ( AMD_static PUBLIC m ) endif ( ) @@ -155,7 +155,7 @@ install ( TARGETS AMD ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} RUNTIME DESTINATION ${SUITESPARSE_BINDIR} PUBLIC_HEADER DESTINATION ${SUITESPARSE_INCLUDEDIR} ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) install ( TARGETS AMD_static EXPORT AMDTargets ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} diff --git a/BTF/CMakeLists.txt b/BTF/CMakeLists.txt index ec82bed928..67e004dd93 100644 --- a/BTF/CMakeLists.txt +++ b/BTF/CMakeLists.txt @@ -89,7 +89,7 @@ target_include_directories ( BTF # static btf library properties #------------------------------------------------------------------------------- -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) add_library ( BTF_static STATIC ${BTF_SOURCES} ) set_target_properties ( BTF_static PROPERTIES @@ -116,7 +116,7 @@ endif ( ) # SuiteSparseConfig: target_include_directories ( BTF PUBLIC "$" ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) target_include_directories ( BTF_static PUBLIC "$" ) endif ( ) @@ -124,7 +124,7 @@ endif ( ) # libm: if ( NOT WIN32 ) target_link_libraries ( BTF PRIVATE m ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) set ( BTF_STATIC_LIBS "${BTF_STATIC_LIBS} -lm" ) target_link_libraries ( BTF_static PUBLIC m ) endif ( ) @@ -142,7 +142,7 @@ install ( TARGETS BTF ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} RUNTIME DESTINATION ${SUITESPARSE_BINDIR} PUBLIC_HEADER DESTINATION ${SUITESPARSE_INCLUDEDIR} ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) install ( TARGETS BTF_static EXPORT BTFTargets ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} diff --git a/CAMD/CMakeLists.txt b/CAMD/CMakeLists.txt index d2ee4015bf..f3be6cfeee 100644 --- a/CAMD/CMakeLists.txt +++ b/CAMD/CMakeLists.txt @@ -92,7 +92,7 @@ target_include_directories ( CAMD # static camd library properties #------------------------------------------------------------------------------- -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) add_library ( CAMD_static STATIC ${CAMD_SOURCES} ) set_target_properties ( CAMD_static PROPERTIES @@ -119,7 +119,7 @@ endif ( ) target_link_libraries ( CAMD PRIVATE SuiteSparse::SuiteSparseConfig ) target_include_directories ( CAMD PUBLIC "$" ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) if ( TARGET SuiteSparse::SuiteSparseConfig_static ) target_link_libraries ( CAMD_static PUBLIC SuiteSparse::SuiteSparseConfig_static ) else ( ) @@ -130,7 +130,7 @@ endif ( ) # libm: if ( NOT WIN32 ) target_link_libraries ( CAMD PRIVATE m ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) set ( CAMD_STATIC_LIBS "${CAMD_STATIC_LIBS} -lm" ) target_link_libraries ( CAMD_static PUBLIC m ) endif ( ) @@ -148,7 +148,7 @@ install ( TARGETS CAMD ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} RUNTIME DESTINATION ${SUITESPARSE_BINDIR} PUBLIC_HEADER DESTINATION ${SUITESPARSE_INCLUDEDIR} ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) install ( TARGETS CAMD_static EXPORT CAMDTargets ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} diff --git a/CCOLAMD/CMakeLists.txt b/CCOLAMD/CMakeLists.txt index a23e074e71..908619046a 100644 --- a/CCOLAMD/CMakeLists.txt +++ b/CCOLAMD/CMakeLists.txt @@ -89,7 +89,7 @@ target_include_directories ( CCOLAMD # static ccolamd library properties #------------------------------------------------------------------------------- -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) add_library ( CCOLAMD_static STATIC ${CCOLAMD_SOURCES} ) set_target_properties ( CCOLAMD_static PROPERTIES @@ -116,7 +116,7 @@ endif ( ) target_link_libraries ( CCOLAMD PRIVATE SuiteSparse::SuiteSparseConfig ) target_include_directories ( CCOLAMD PUBLIC "$" ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) if ( TARGET SuiteSparse::SuiteSparseConfig_static ) target_link_libraries ( CCOLAMD_static PUBLIC SuiteSparse::SuiteSparseConfig_static ) else ( ) @@ -127,7 +127,7 @@ endif ( ) # libm: if ( NOT WIN32 ) target_link_libraries ( CCOLAMD PRIVATE m ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) set ( CCOLAMD_STATIC_LIBS "${CCOLAMD_STATIC_LIBS} -lm" ) target_link_libraries ( CCOLAMD_static PUBLIC m ) endif ( ) @@ -145,7 +145,7 @@ install ( TARGETS CCOLAMD ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} RUNTIME DESTINATION ${SUITESPARSE_BINDIR} PUBLIC_HEADER DESTINATION ${SUITESPARSE_INCLUDEDIR} ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) install ( TARGETS CCOLAMD_static EXPORT CCOLAMDTargets ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} diff --git a/CHOLMOD/CMakeLists.txt b/CHOLMOD/CMakeLists.txt index 206525b64f..d0e1855975 100644 --- a/CHOLMOD/CMakeLists.txt +++ b/CHOLMOD/CMakeLists.txt @@ -324,7 +324,7 @@ target_include_directories ( CHOLMOD # static cholmod library properties #------------------------------------------------------------------------------- -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) add_library ( CHOLMOD_static STATIC ${CHOLMOD_SOURCES} ) set_target_properties ( CHOLMOD_static PROPERTIES @@ -357,7 +357,7 @@ endif ( ) target_link_libraries ( CHOLMOD PRIVATE SuiteSparse::SuiteSparseConfig ) target_include_directories ( CHOLMOD PUBLIC "$" ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) if ( TARGET SuiteSparse::SuiteSparseConfig_static ) target_link_libraries ( CHOLMOD_static PUBLIC SuiteSparse::SuiteSparseConfig_static ) else ( ) @@ -371,7 +371,7 @@ if ( OPENMP_FOUND ) message ( STATUS "OpenMP C include: ${OpenMP_C_INCLUDE_DIRS} ") message ( STATUS "OpenMP C flags: ${OpenMP_C_FLAGS} ") target_link_libraries ( CHOLMOD PRIVATE ${OpenMP_C_LIBRARIES} ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) target_link_libraries ( CHOLMOD_static PUBLIC ${OpenMP_C_LIBRARIES} ) list ( APPEND CHOLMOD_STATIC_LIBS ${OpenMP_C_LIBRARIES} ) endif ( ) @@ -388,7 +388,7 @@ endif ( ) # libm: if ( NOT WIN32 ) target_link_libraries ( CHOLMOD PRIVATE m ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) list ( APPEND CHOLMOD_STATIC_LIBS "m" ) target_link_libraries ( CHOLMOD_static PUBLIC m ) endif ( ) @@ -397,7 +397,7 @@ endif ( ) # AMD: target_link_libraries ( CHOLMOD PRIVATE SuiteSparse::AMD ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) if ( TARGET SuiteSparse::AMD_static ) target_link_libraries ( CHOLMOD_static PUBLIC SuiteSparse::AMD_static ) else ( ) @@ -407,7 +407,7 @@ endif ( ) # COLAMD: target_link_libraries ( CHOLMOD PRIVATE SuiteSparse::COLAMD ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) if ( TARGET SuiteSparse::COLAMD_static ) target_link_libraries ( CHOLMOD_static PUBLIC SuiteSparse::COLAMD_static ) else ( ) @@ -422,7 +422,7 @@ if ( NOT NSUPERNODAL ) message ( STATUS "LAPACK include: ${LAPACK_INCLUDE_DIRS} ") message ( STATUS "LAPACK linker flags: ${LAPACK_LINKER_FLAGS} ") target_link_libraries ( CHOLMOD PRIVATE ${LAPACK_LIBRARIES} ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) list ( APPEND CHOLMOD_STATIC_LIBS ${LAPACK_LIBRARIES} ) target_link_libraries ( CHOLMOD_static PUBLIC ${LAPACK_LIBRARIES} ) endif ( ) @@ -433,7 +433,7 @@ if ( NOT NSUPERNODAL ) message ( STATUS "BLAS include: ${BLAS_INCLUDE_DIRS} ") message ( STATUS "BLAS linker flags: ${BLAS_LINKER_FLAGS} ") target_link_libraries ( CHOLMOD PRIVATE ${BLAS_LIBRARIES} ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) list ( APPEND CHOLMOD_STATIC_LIBS ${BLAS_LIBRARIES} ) target_link_libraries ( CHOLMOD_static PUBLIC ${BLAS_LIBRARIES} ) endif ( ) @@ -443,7 +443,7 @@ endif ( ) # CAMD and CCOLAMD: if ( NOT NCAMD ) target_link_libraries ( CHOLMOD PRIVATE SuiteSparse::CAMD ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) set ( CHOLMOD_STATIC_MODULES "${CHOLMOD_STATIC_MODULES} CAMD" ) if ( TARGET SuiteSparse::CAMD_static ) target_link_libraries ( CHOLMOD_static PUBLIC SuiteSparse::CAMD_static ) @@ -453,7 +453,7 @@ if ( NOT NCAMD ) endif ( ) target_link_libraries ( CHOLMOD PRIVATE SuiteSparse::CCOLAMD ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) set ( CHOLMOD_STATIC_MODULES "${CHOLMOD_STATIC_MODULES} CCOLAMD" ) if ( TARGET SuiteSparse::CCOLAMD_static ) target_link_libraries ( CHOLMOD_static PUBLIC SuiteSparse::CCOLAMD_static ) @@ -476,7 +476,7 @@ if ( SUITESPARSE_CUDA ) set ( CHOLMOD_STATIC_MODULES "${CHOLMOD_STATIC_MODULES} CHOLMOD_CUDA" ) set ( CHOLMOD_CFLAGS "${CHOLMOD_CFLAGS} -DSUITESPARSE_CUDA" ) target_compile_definitions ( CHOLMOD PUBLIC "SUITESPARSE_CUDA" ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) target_link_libraries ( CHOLMOD_static PUBLIC CHOLMOD_CUDA_static ${CUDA_LIBRARIES} ) target_compile_definitions ( CHOLMOD_static PUBLIC "SUITESPARSE_CUDA" ) endif ( ) @@ -484,7 +484,7 @@ if ( SUITESPARSE_CUDA ) CUDA::nvToolsExt CUDA::cublas ) target_include_directories ( CHOLMOD INTERFACE $ ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) target_link_libraries ( CHOLMOD_static PUBLIC CUDA::nvrtc CUDA::cudart_static CUDA::nvToolsExt CUDA::cublas ) endif ( ) @@ -496,7 +496,7 @@ if ( SUITESPARSE_CUDA ) if ( NOT HAVE_COMPAR_FN_T ) target_compile_definitions ( CHOLMOD PRIVATE NCOMPAR_FN_T ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) target_compile_definitions ( CHOLMOD_static PRIVATE NCOMPAR_FN_T ) endif ( ) endif ( ) @@ -515,7 +515,7 @@ install ( TARGETS CHOLMOD ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} RUNTIME DESTINATION ${SUITESPARSE_BINDIR} PUBLIC_HEADER DESTINATION ${SUITESPARSE_INCLUDEDIR} ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) install ( TARGETS CHOLMOD_static EXPORT CHOLMODTargets ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} diff --git a/CHOLMOD/GPU/CMakeLists.txt b/CHOLMOD/GPU/CMakeLists.txt index 1d96129e8c..24ed3f338b 100644 --- a/CHOLMOD/GPU/CMakeLists.txt +++ b/CHOLMOD/GPU/CMakeLists.txt @@ -41,7 +41,7 @@ set_target_properties ( CHOLMOD_CUDA PROPERTIES OUTPUT_NAME cholmod_cuda SOVERSION ${CHOLMOD_VERSION_MAJOR} ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) add_library ( CHOLMOD_CUDA_static STATIC ${CHOLMOD_CUDA_SOURCES} ) set_target_properties ( CHOLMOD_CUDA_static PROPERTIES @@ -75,7 +75,7 @@ set_target_properties ( CHOLMOD_CUDA PROPERTIES POSITION_INDEPENDENT_CODE ON ) set_target_properties ( CHOLMOD_CUDA PROPERTIES CUDA_SEPARABLE_COMPILATION ON ) target_compile_definitions ( CHOLMOD_CUDA PUBLIC "SUITESPARSE_CUDA" ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) target_include_directories ( CHOLMOD_CUDA_static PRIVATE ${CUDAToolkit_INCLUDE_DIRS} ${CHOLMOD_CUDA_INCLUDES} ) @@ -86,7 +86,7 @@ endif ( ) target_link_libraries ( CHOLMOD_CUDA PRIVATE CUDA::nvrtc CUDA::cudart_static CUDA::nvToolsExt CUDA::cublas ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) target_link_libraries ( CHOLMOD_CUDA_static PUBLIC CUDA::nvrtc CUDA::cudart_static CUDA::nvToolsExt CUDA::cublas ) endif ( ) @@ -103,7 +103,7 @@ install ( TARGETS CHOLMOD_CUDA ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} RUNTIME DESTINATION ${SUITESPARSE_BINDIR} PUBLIC_HEADER DESTINATION ${SUITESPARSE_INCLUDEDIR} ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) install ( TARGETS CHOLMOD_CUDA_static EXPORT CHOLMOD_CUDATargets ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} diff --git a/CMakeLists.txt b/CMakeLists.txt index 013656398e..570cac978a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -61,9 +61,9 @@ option ( NCAMD "ON: do not use CAMD/CCOLAMD. OFF (default): use CAMD/CCOLAMD" O # KLU and UMFPACK options affecting dependencies option ( NCHOLMOD "ON: do not use CHOLMOD in KLU and UMFPACK. OFF (default): use CHOLMOD" OFF ) -# overwrite NSTATIC specifically for GraphBLAS because building the library -# takes a long time -option ( GRAPHBLAS_NSTATIC "ON (default): set NSTATIC for GraphBLAS project. OFF: Use same value of NSTATIC for GraphBLAS like in the other projects" ON ) +# overwrite BUILD_STATIC_LIBS specifically for GraphBLAS because building the +# library takes a long time +option ( GRAPHBLAS_BUILD_STATIC_LIBS "OFF (default): Do not build static libraries for GraphBLAS project. ON: Use same value of BUILD_STATIC_LIBS for GraphBLAS like in the other projects" OFF ) # options to build with libraries installed on the system instead of building # dependencies automatically @@ -223,7 +223,7 @@ endif ( ) if ( "suitesparse_config" IN_LIST SUITESPARSE_ENABLE_PROJECTS ) add_subdirectory ( "SuiteSparse_config" ) add_library ( SuiteSparse::SuiteSparseConfig ALIAS SuiteSparseConfig ) - if ( NOT NSTATIC ) + if ( TARGET SuiteSparseConfig_static ) add_library ( SuiteSparse::SuiteSparseConfig_static ALIAS SuiteSparseConfig_static ) endif ( ) endif ( ) @@ -231,7 +231,7 @@ endif ( ) if ( "mongoose" IN_LIST SUITESPARSE_ENABLE_PROJECTS ) add_subdirectory ( "Mongoose" ) add_library ( SuiteSparse::Mongoose ALIAS Mongoose ) - if ( NOT NSTATIC ) + if ( TARGET Mongoose_static ) add_library ( SuiteSparse::Mongoose_static ALIAS Mongoose_static ) endif ( ) endif ( ) @@ -239,7 +239,7 @@ endif ( ) if ( "amd" IN_LIST SUITESPARSE_ENABLE_PROJECTS ) add_subdirectory ( "AMD" ) add_library ( SuiteSparse::AMD ALIAS AMD ) - if ( NOT NSTATIC ) + if ( TARGET AMD_static ) add_library ( SuiteSparse::AMD_static ALIAS AMD_static ) endif ( ) endif ( ) @@ -247,7 +247,7 @@ endif ( ) if ( "btf" IN_LIST SUITESPARSE_ENABLE_PROJECTS ) add_subdirectory ( "BTF" ) add_library ( SuiteSparse::BTF ALIAS BTF ) - if ( NOT NSTATIC ) + if ( TARGET BTF_static ) add_library ( SuiteSparse::BTF_static ALIAS BTF_static ) endif ( ) endif ( ) @@ -255,7 +255,7 @@ endif ( ) if ( "camd" IN_LIST SUITESPARSE_ENABLE_PROJECTS ) add_subdirectory ( "CAMD" ) add_library ( SuiteSparse::CAMD ALIAS CAMD ) - if ( NOT NSTATIC ) + if ( TARGET CAMD_static ) add_library ( SuiteSparse::CAMD_static ALIAS CAMD_static ) endif ( ) endif ( ) @@ -263,7 +263,7 @@ endif ( ) if ( "ccolamd" IN_LIST SUITESPARSE_ENABLE_PROJECTS ) add_subdirectory ( "CCOLAMD" ) add_library ( SuiteSparse::CCOLAMD ALIAS CCOLAMD ) - if ( NOT NSTATIC ) + if ( TARGET CCOLAMD_static ) add_library ( SuiteSparse::CCOLAMD_static ALIAS CCOLAMD_static ) endif ( ) endif ( ) @@ -271,7 +271,7 @@ endif ( ) if ( "colamd" IN_LIST SUITESPARSE_ENABLE_PROJECTS ) add_subdirectory ( "COLAMD" ) add_library ( SuiteSparse::COLAMD ALIAS COLAMD ) - if ( NOT NSTATIC ) + if ( TARGET COLAMD_static ) add_library ( SuiteSparse::COLAMD_static ALIAS COLAMD_static ) endif ( ) endif ( ) @@ -279,7 +279,7 @@ endif ( ) if ( "cholmod" IN_LIST SUITESPARSE_ENABLE_PROJECTS ) add_subdirectory ( "CHOLMOD" ) add_library ( SuiteSparse::CHOLMOD ALIAS CHOLMOD ) - if ( NOT NSTATIC ) + if ( TARGET CHOLMOD_static ) add_library ( SuiteSparse::CHOLMOD_static ALIAS CHOLMOD_static ) endif ( ) if ( TARGET CHOLMOD_CUDA ) @@ -293,7 +293,7 @@ endif ( ) if ( "cxsparse" IN_LIST SUITESPARSE_ENABLE_PROJECTS ) add_subdirectory ( "CXSparse" ) add_library ( SuiteSparse::CXSparse ALIAS CXSparse ) - if ( NOT NSTATIC ) + if ( TARGET CXSparse_static ) add_library ( SuiteSparse::CXSparse_static ALIAS CXSparse_static ) endif ( ) endif ( ) @@ -301,7 +301,7 @@ endif ( ) if ( "ldl" IN_LIST SUITESPARSE_ENABLE_PROJECTS ) add_subdirectory ( "LDL" ) add_library ( SuiteSparse::LDL ALIAS LDL ) - if ( NOT NSTATIC ) + if ( TARGET LDL_static ) add_library ( SuiteSparse::LDL_static ALIAS LDL_static ) endif ( ) endif ( ) @@ -309,7 +309,7 @@ endif ( ) if ( "klu" IN_LIST SUITESPARSE_ENABLE_PROJECTS ) add_subdirectory ( "KLU" ) add_library ( SuiteSparse::KLU ALIAS KLU ) - if ( NOT NSTATIC ) + if ( TARGET KLU_static ) add_library ( SuiteSparse::KLU_static ALIAS KLU_static ) endif ( ) endif ( ) @@ -317,7 +317,7 @@ endif ( ) if ( "umfpack" IN_LIST SUITESPARSE_ENABLE_PROJECTS ) add_subdirectory ( "UMFPACK" ) add_library ( SuiteSparse::UMFPACK ALIAS UMFPACK ) - if ( NOT NSTATIC ) + if ( TARGET UMFPACK_static ) add_library ( SuiteSparse::UMFPACK_static ALIAS UMFPACK_static ) endif ( ) endif ( ) @@ -325,7 +325,7 @@ endif ( ) if ( "paru" IN_LIST SUITESPARSE_ENABLE_PROJECTS ) add_subdirectory ( "ParU" ) add_library ( SuiteSparse::ParU ALIAS ParU ) - if ( NOT NSTATIC ) + if ( TARGET ParU_static ) add_library ( SuiteSparse::ParU_static ALIAS ParU_static ) endif ( ) endif ( ) @@ -333,7 +333,7 @@ endif ( ) if ( "rbio" IN_LIST SUITESPARSE_ENABLE_PROJECTS ) add_subdirectory ( "RBio" ) add_library ( SuiteSparse::RBio ALIAS RBio ) - if ( NOT NSTATIC ) + if ( TARGET RBio_static ) add_library ( SuiteSparse::RBio_static ALIAS RBio_static ) endif ( ) endif ( ) @@ -341,7 +341,7 @@ endif ( ) if ( "spqr" IN_LIST SUITESPARSE_ENABLE_PROJECTS ) add_subdirectory ( "SPQR" ) add_library ( SuiteSparse::SPQR ALIAS SPQR ) - if ( NOT NSTATIC ) + if ( TARGET SPQR_static ) add_library ( SuiteSparse::SPQR_static ALIAS SPQR_static ) endif ( ) endif ( ) @@ -349,7 +349,7 @@ endif ( ) if ( "spex" IN_LIST SUITESPARSE_ENABLE_PROJECTS ) add_subdirectory ( "SPEX" ) add_library ( SuiteSparse::SPEX ALIAS SPEX ) - if ( NOT NSTATIC ) + if ( TARGET SPEX_static ) add_library ( SuiteSparse::SPEX_static ALIAS SPEX_static ) endif ( ) endif ( ) @@ -365,7 +365,7 @@ endif ( ) if ( "lagraph" IN_LIST SUITESPARSE_ENABLE_PROJECTS ) add_subdirectory ( "LAGraph" ) add_library ( SuiteSparse::LAGraph ALIAS LAGraph ) - if ( NOT NSTATIC ) + if ( TARGET LAGraph_static ) add_library ( SuiteSparse::LAGraph_static ALIAS LAGraph_static ) endif ( ) endif ( ) @@ -373,7 +373,7 @@ endif ( ) if ( "csparse" IN_LIST SUITESPARSE_ENABLE_PROJECTS ) add_subdirectory ( "CSparse" ) add_library ( SuiteSparse::CSparse ALIAS CSparse ) - if ( NOT NSTATIC ) + if ( TARGET CSparse_static ) add_library ( SuiteSparse::CSparse_static ALIAS CSparse_static ) endif ( ) endif ( ) diff --git a/COLAMD/CMakeLists.txt b/COLAMD/CMakeLists.txt index 4fb27915c5..3662ce3bbe 100644 --- a/COLAMD/CMakeLists.txt +++ b/COLAMD/CMakeLists.txt @@ -89,7 +89,7 @@ target_include_directories ( COLAMD # static colamd library properties #------------------------------------------------------------------------------- -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) add_library ( COLAMD_static STATIC ${COLAMD_SOURCES} ) set_target_properties ( COLAMD_static PROPERTIES @@ -116,7 +116,7 @@ endif ( ) target_link_libraries ( COLAMD PRIVATE SuiteSparse::SuiteSparseConfig ) target_include_directories ( COLAMD PUBLIC "$" ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) if ( TARGET SuiteSparse::SuiteSparseConfig_static ) target_link_libraries ( COLAMD_static PUBLIC SuiteSparse::SuiteSparseConfig_static ) else ( ) @@ -127,7 +127,7 @@ endif ( ) # libm: if ( NOT WIN32 ) target_link_libraries ( COLAMD PRIVATE m ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) set ( COLAMD_STATIC_LIBS "${COLAMD_STATIC_LIBS} -lm" ) target_link_libraries ( COLAMD_static PUBLIC m ) endif ( ) @@ -145,7 +145,7 @@ install ( TARGETS COLAMD ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} RUNTIME DESTINATION ${SUITESPARSE_BINDIR} PUBLIC_HEADER DESTINATION ${SUITESPARSE_INCLUDEDIR} ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) install ( TARGETS COLAMD_static EXPORT COLAMDTargets ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} diff --git a/CSparse/CMakeLists.txt b/CSparse/CMakeLists.txt index 4ae958a332..f8b747323b 100644 --- a/CSparse/CMakeLists.txt +++ b/CSparse/CMakeLists.txt @@ -95,7 +95,7 @@ set_target_properties ( csparse PROPERTIES # static csparse library properties #------------------------------------------------------------------------------- -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) add_library ( csparse_static STATIC ${CSPARSE_SOURCES} ) set_target_properties ( csparse_static PROPERTIES @@ -117,7 +117,7 @@ endif ( ) # libm: if ( NOT WIN32 ) target_link_libraries ( csparse PRIVATE m ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) set ( CSPARSE_STATIC_LIBS "${CSPARSE_STATIC_LIBS} -lm" ) target_link_libraries ( csparse_static PUBLIC m ) endif ( ) diff --git a/CXSparse/CMakeLists.txt b/CXSparse/CMakeLists.txt index 6e008eca34..1822355aeb 100644 --- a/CXSparse/CMakeLists.txt +++ b/CXSparse/CMakeLists.txt @@ -122,7 +122,7 @@ target_include_directories ( CXSparse # static cxsparse library properties #------------------------------------------------------------------------------- -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) add_library ( CXSparse_static STATIC ${CXSPARSE_SOURCES} ) set_target_properties ( CXSparse_static PROPERTIES @@ -149,7 +149,7 @@ endif ( ) target_link_libraries ( CXSparse PRIVATE SuiteSparse::SuiteSparseConfig ) target_include_directories ( CXSparse PUBLIC "$" ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) if ( TARGET SuiteSparse::SuiteSparseConfig_static ) target_link_libraries ( CXSparse_static PUBLIC SuiteSparse::SuiteSparseConfig_static ) else ( ) @@ -160,7 +160,7 @@ endif ( ) # libm: if ( NOT WIN32 ) target_link_libraries ( CXSparse PRIVATE m ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) set ( CXSPARSE_STATIC_LIBS "${CXSPARSE_STATIC_LIBS} -lm" ) target_link_libraries ( CXSparse_static PUBLIC m ) endif ( ) @@ -178,7 +178,7 @@ install ( TARGETS CXSparse ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} RUNTIME DESTINATION ${SUITESPARSE_BINDIR} PUBLIC_HEADER DESTINATION ${SUITESPARSE_INCLUDEDIR} ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) install ( TARGETS CXSparse_static EXPORT CXSparseTargets ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} diff --git a/GraphBLAS/CMakeLists.txt b/GraphBLAS/CMakeLists.txt index 86bd8bdc8e..ca00eae989 100644 --- a/GraphBLAS/CMakeLists.txt +++ b/GraphBLAS/CMakeLists.txt @@ -37,7 +37,7 @@ set ( PROJECT_VERSION "${GraphBLAS_VERSION_MAJOR}.${GraphBLAS_VERSION_MINOR}.${G # GraphBLAS takes a long time to build, so do not build the static library # by default -set ( NSTATIC_DEFAULT_ON ON ) +set ( BUILD_STATIC_LIBS_DEFAULT_OFF ON ) # CUDA is under development for now, and not deployed in production: set ( ENABLE_CUDA false ) @@ -45,9 +45,9 @@ set ( NSTATIC_DEFAULT_ON ON ) include ( SuiteSparsePolicy ) -if ( GRAPHBLAS_NSTATIC ) - # ignore current value of NSTATIC and set it to ON - set ( NSTATIC ON ) +if ( NOT GRAPHBLAS_BUILD_STATIC_LIBS ) + # ignore current value of BUILD_STATIC_LIBS and set it to OFF + set ( BUILD_STATIC_LIBS OFF ) endif ( ) if ( SUITESPARSE_CUDA ) @@ -132,15 +132,15 @@ endif ( ) # determine build type #------------------------------------------------------------------------------- -# select "true" to build both dynamic and static libraries: -# set ( NOT NSTATIC true ) -# set ( NOT NSTATIC false ) -# or use cmake with -DNSTATIC=1 +# select "ON" to build both dynamic and static libraries: +# set ( BUILD_STATIC_LIBS ON ) +# set ( BUILD_STATIC_LIBS OFF ) +# or use cmake with -DGRAPHBLAS_BUILD_STATIC_LIBS=ON -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) message ( STATUS "Building all GraphBLAS libraries (static and dynamic)" ) else ( ) - message ( STATUS "Building dynamic GraphBLAS library" ) + message ( STATUS "Building dynamic GraphBLAS library (no static)" ) endif ( ) #------------------------------------------------------------------------------- @@ -272,7 +272,7 @@ endif ( ) # static graphblas library properties #------------------------------------------------------------------------------- -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) add_library ( GraphBLAS_static STATIC ${GRAPHBLAS_SOURCES} ) @@ -318,7 +318,7 @@ if ( NOT GBNCPUFEAT ) if ( HAVE_DLFCN_H ) message ( STATUS "cpu_feautures has dlfcn.h" ) target_compile_definitions ( GraphBLAS PRIVATE HAVE_DLFCN_H ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) target_compile_definitions ( GraphBLAS_static PRIVATE HAVE_DLFCN_H ) endif ( ) else ( ) @@ -328,7 +328,7 @@ if ( NOT GBNCPUFEAT ) if ( HAVE_STRONG_GETAUXVAL ) message ( STATUS "cpu_feautures has getauxval from sys/auxv.h" ) target_compile_definitions ( GraphBLAS PRIVATE HAVE_STRONG_GETAUXVAL ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) target_compile_definitions ( GraphBLAS_static PRIVATE HAVE_STRONG_GETAUXVAL ) endif ( ) else ( ) @@ -345,7 +345,7 @@ endif ( ) if ( NOT WIN32 ) set ( GB_M "m" ) target_link_libraries ( GraphBLAS PRIVATE m ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) list ( APPEND GRAPHBLAS_STATIC_LIBS "m" ) target_link_libraries ( GraphBLAS_static PUBLIC m ) endif ( ) @@ -354,7 +354,7 @@ endif ( ) # libdl if ( NOT WIN32 ) target_link_libraries ( GraphBLAS PRIVATE dl ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) list ( APPEND GRAPHBLAS_STATIC_LIBS "dl" ) target_link_libraries ( GraphBLAS_static PUBLIC dl ) endif ( ) @@ -364,7 +364,7 @@ endif ( ) include ( SuiteSparseAtomic ) if ( LIBATOMIC_REQUIRED ) target_link_libraries ( GraphBLAS PRIVATE atomic ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) list ( APPEND GRAPHBLAS_STATIC_LIBS "atomic" ) target_link_libraries ( GraphBLAS_static PUBLIC atomic ) endif ( ) @@ -384,7 +384,7 @@ if ( OPENMP_FOUND ) # C compiler, and this is converted into "-lOpenMP::OpenMP_C". # So this breaks: # target_link_libraries ( GraphBLAS PRIVATE OpenMP::OpenMP_C ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) list ( APPEND GRAPHBLAS_STATIC_LIBS ${OpenMP_C_LIBRARIES} ) target_link_libraries ( GraphBLAS_static PUBLIC ${OpenMP_C_LIBRARIES} ) # target_link_libraries ( GraphBLAS_static PUBLIC OpenMP::OpenMP_C ) @@ -421,7 +421,7 @@ endif ( ) if ( SUITESPARSE_CUDA ) target_link_libraries ( GraphBLAS PRIVATE ${GB_CUDA} ${GB_RMM} ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) target_link_libraries ( GraphBLAS_static PUBLIC ${GB_CUDA} ${GB_RMM} ) endif ( ) endif ( ) @@ -496,7 +496,7 @@ install ( TARGETS GraphBLAS RUNTIME DESTINATION ${SUITESPARSE_BINDIR} PUBLIC_HEADER DESTINATION ${SUITESPARSE_INCLUDEDIR} ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) install ( TARGETS GraphBLAS_static EXPORT GraphBLASTargets ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} diff --git a/GraphBLAS/cmake_modules/SuiteSparsePolicy.cmake b/GraphBLAS/cmake_modules/SuiteSparsePolicy.cmake index 4bb59779c4..e3573426ec 100644 --- a/GraphBLAS/cmake_modules/SuiteSparsePolicy.cmake +++ b/GraphBLAS/cmake_modules/SuiteSparsePolicy.cmake @@ -24,12 +24,14 @@ # if false, "cmake --install" will install into the # default prefix (or the one configured with # CMAKE_INSTALL_PREFIX). Requires cmake 3.19. +# This is ignored when using the root CMakeLists.txt. +# Set CMAKE_INSTALL_PREFIX instead. # Default: false # -# NSTATIC: if true, static libraries are not built. -# Default: false, except for GraphBLAS, which +# BUILD_STATIC_LIBS: if true, static libraries are built. +# Default: true, except for GraphBLAS, which # takes a long time to compile so the default for -# GraphBLAS is true. +# GraphBLAS is false. # # SUITESPARSE_CUDA_ARCHITECTURES: a string, such as "all" or # "35;50;75;80" that lists the CUDA architectures to use @@ -92,19 +94,24 @@ include ( GNUInstallDirs ) set ( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake_modules ) -# NSTATIC option -if ( NSTATIC_DEFAULT_ON ) - option ( NSTATIC "ON (default): do not build static libraries. OFF: build static libraries" on ) +# BUILD_STATIC_LIBS option +if ( BUILD_STATIC_LIBS_DEFAULT_OFF ) + option ( BUILD_STATIC_LIBS "OFF (default): do not build static libraries. ON: build static libraries" OFF ) else ( ) - option ( NSTATIC "ON: do not build static libraries. OFF (default): build static libraries" off ) + # For backwards compatibility, use NSTATIC if it is set. + if ( NSTATIC ) + option ( BUILD_STATIC_LIBS "OFF: do not build static libraries. ON (default): build static libraries" OFF ) + else ( ) + option ( BUILD_STATIC_LIBS "OFF: do not build static libraries. ON (default): build static libraries" ON ) + endif ( ) endif ( ) # installation options -if ( ${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.19.0" ) +if ( NOT SUITESPARSE_ROOT_CMAKELISTS AND ${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.19.0" ) # the LOCAL_INSTALL option requires cmake 3.19.0 or later - option ( LOCAL_INSTALL "Install in SuiteSparse/lib" off ) + option ( LOCAL_INSTALL "Install in SuiteSparse/lib" OFF ) else ( ) - set ( LOCAL_INSTALL off ) + set ( LOCAL_INSTALL OFF ) endif ( ) if ( SUITESPARSE_SECOND_LEVEL ) @@ -121,30 +128,32 @@ endif ( ) # find this one without "make install" set ( CMAKE_BUILD_RPATH ${CMAKE_BUILD_RPATH} ${CMAKE_BINARY_DIR} ) -# determine if this Package is inside the SuiteSparse folder -set ( INSIDE_SUITESPARSE false ) -if ( LOCAL_INSTALL ) - # if you do not want to install local copies of SuiteSparse - # packages in SuiteSparse/lib and SuiteSparse/, set - # LOCAL_INSTALL to false in your CMake options. - if ( SUITESPARSE_SECOND_LEVEL ) - # the package is normally located at the 2nd level inside SuiteSparse - # (SuiteSparse/GraphBLAS/GraphBLAS/ for example) - if ( EXISTS ${CMAKE_SOURCE_DIR}/../../SuiteSparse_config ) - set ( INSIDE_SUITESPARSE true ) +if ( NOT SUITESPARSE_ROOT_CMAKELISTS ) + # determine if this Package is inside the SuiteSparse folder + set ( INSIDE_SUITESPARSE false ) + if ( LOCAL_INSTALL ) + # if you do not want to install local copies of SuiteSparse + # packages in SuiteSparse/lib and SuiteSparse/, set + # LOCAL_INSTALL to false in your CMake options. + if ( SUITESPARSE_SECOND_LEVEL ) + # the package is normally located at the 2nd level inside SuiteSparse + # (SuiteSparse/GraphBLAS/GraphBLAS/ for example) + if ( EXISTS ${CMAKE_SOURCE_DIR}/../../SuiteSparse_config ) + set ( INSIDE_SUITESPARSE true ) + endif ( ) + else ( ) + # typical case, the package is at the 1st level inside SuiteSparse + # (SuiteSparse/AMD for example) + if ( EXISTS ${CMAKE_SOURCE_DIR}/../SuiteSparse_config ) + set ( INSIDE_SUITESPARSE true ) + endif ( ) endif ( ) - else ( ) - # typical case, the package is at the 1st level inside SuiteSparse - # (SuiteSparse/AMD for example) - if ( EXISTS ${CMAKE_SOURCE_DIR}/../SuiteSparse_config ) - set ( INSIDE_SUITESPARSE true ) + + if ( NOT INSIDE_SUITESPARSE ) + message ( FATAL_ERROR "Unsupported layout for local installation. Correct the directory layout or unset LOCAL_INSTALL." ) endif ( ) - endif ( ) - if ( NOT INSIDE_SUITESPARSE ) - message ( FATAL_ERROR "Unsupported layout for local installation. Correct the directory layout or unset LOCAL_INSTALL." ) endif ( ) - endif ( ) if ( LOCAL_INSTALL ) diff --git a/GraphBLAS/cmake_modules/SuiteSparseReport.cmake b/GraphBLAS/cmake_modules/SuiteSparseReport.cmake index 9271c4a920..d06f785713 100644 --- a/GraphBLAS/cmake_modules/SuiteSparseReport.cmake +++ b/GraphBLAS/cmake_modules/SuiteSparseReport.cmake @@ -12,14 +12,12 @@ message ( STATUS "------------------------------------------------------------------------" ) message ( STATUS "SuiteSparse CMAKE report for: ${CMAKE_PROJECT_NAME}" ) message ( STATUS "------------------------------------------------------------------------" ) -message ( STATUS "inside common SuiteSparse root: ${INSIDE_SUITESPARSE}" ) -message ( STATUS "install in SuiteSparse/lib and SuiteSparse/include: ${LOCAL_INSTALL}" ) -message ( STATUS "build type: ${CMAKE_BUILD_TYPE}" ) -if ( NSTATIC ) - message ( STATUS "NSTATIC: true (do not build static library)" ) -else ( ) - message ( STATUS "NSTATIC: false (build static library)" ) +if ( NOT SUITESPARSE_ROOT_CMAKELISTS ) + message ( STATUS "inside common SuiteSparse root: ${INSIDE_SUITESPARSE}" ) + message ( STATUS "install in SuiteSparse/lib and SuiteSparse/include: ${LOCAL_INSTALL}" ) endif ( ) +message ( STATUS "build type: ${CMAKE_BUILD_TYPE}" ) +message ( STATUS "BUILD_STATIC_LIBS: ${BUILD_STATIC_LIBS}" ) if ( OPENMP_FOUND ) message ( STATUS "use OpenMP: yes ") else ( ) diff --git a/KLU/CMakeLists.txt b/KLU/CMakeLists.txt index 0cbca450f4..c175809753 100644 --- a/KLU/CMakeLists.txt +++ b/KLU/CMakeLists.txt @@ -144,7 +144,7 @@ target_include_directories ( KLU # static klu library properties #------------------------------------------------------------------------------- -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) add_library ( KLU_static STATIC ${KLU_SOURCES} ) set_target_properties ( KLU_static PROPERTIES @@ -186,7 +186,7 @@ if ( NOT NCHOLMOD ) INTERFACE $ $ ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) add_library ( KLU_CHOLMOD_static STATIC ${KLU_CHOLMOD_SOURCES} ) set_target_properties ( KLU_CHOLMOD_static PROPERTIES @@ -214,7 +214,7 @@ endif ( ) # SuiteSparseConfig: target_link_libraries ( KLU PRIVATE SuiteSparse::SuiteSparseConfig ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) if ( TARGET SuiteSparse::SuiteSparseConfig_static ) target_link_libraries ( KLU_static PUBLIC SuiteSparse::SuiteSparseConfig_static ) else ( ) @@ -225,7 +225,7 @@ endif ( ) # libm: if ( NOT WIN32 ) target_link_libraries ( KLU PRIVATE m ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) set ( KLU_STATIC_LIBS "${KLU_STATIC_LIBS} -lm" ) target_link_libraries ( KLU_static PUBLIC m ) endif ( ) @@ -235,7 +235,7 @@ endif ( ) target_link_libraries ( KLU PRIVATE SuiteSparse::AMD ) target_include_directories ( KLU PUBLIC "$" ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) if ( TARGET SuiteSparse::AMD_static ) target_link_libraries ( KLU_static PUBLIC SuiteSparse::AMD_static ) else ( ) @@ -247,7 +247,7 @@ endif ( ) target_link_libraries ( KLU PRIVATE SuiteSparse::COLAMD ) target_include_directories ( KLU PUBLIC "$" ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) if ( TARGET SuiteSparse::COLAMD_static ) target_link_libraries ( KLU_static PUBLIC SuiteSparse::COLAMD_static ) else ( ) @@ -259,7 +259,7 @@ endif ( ) target_link_libraries ( KLU PRIVATE SuiteSparse::BTF ) target_include_directories ( KLU PUBLIC "$" ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) if ( TARGET SuiteSparse::BTF_static ) target_link_libraries ( KLU_static PUBLIC SuiteSparse::BTF_static ) else ( ) @@ -273,7 +273,7 @@ if ( NOT NCHOLMOD ) # link with CHOLMOD and its dependencies, both required and optional # CHOLMOD without CUDA target_link_libraries ( KLU_CHOLMOD PRIVATE SuiteSparse::CHOLMOD ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) set ( KLU_STATIC_MODULES "${KLU_STATIC_MODULES} CHOLMOD" ) if ( TARGET SuiteSparse::CHOLMOD_static ) target_link_libraries ( KLU_CHOLMOD_static PUBLIC SuiteSparse::CHOLMOD_static ) @@ -284,7 +284,7 @@ if ( NOT NCHOLMOD ) # klu: target_link_libraries ( KLU_CHOLMOD PRIVATE KLU ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) target_link_libraries ( KLU_CHOLMOD_static PUBLIC KLU_static ) if ( TARGET SuiteSparse::BTF_static ) target_link_libraries ( KLU_CHOLMOD_static PUBLIC SuiteSparse::BTF_static ) @@ -308,7 +308,7 @@ install ( TARGETS KLU RUNTIME DESTINATION ${SUITESPARSE_BINDIR} PUBLIC_HEADER DESTINATION ${SUITESPARSE_INCLUDEDIR} ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) install ( TARGETS KLU_static EXPORT KLUTargets ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} @@ -388,7 +388,7 @@ if ( NOT NCHOLMOD ) ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} RUNTIME DESTINATION ${SUITESPARSE_BINDIR} PUBLIC_HEADER DESTINATION ${SUITESPARSE_INCLUDEDIR} ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) install ( TARGETS KLU_CHOLMOD_static EXPORT KLU_CHOLMODTargets ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} diff --git a/LAGraph/CMakeLists.txt b/LAGraph/CMakeLists.txt index ef76189691..3117c9fab6 100644 --- a/LAGraph/CMakeLists.txt +++ b/LAGraph/CMakeLists.txt @@ -157,7 +157,7 @@ else ( ) set ( OPENMP_C_FOUND OFF ) else ( ) find_package ( OpenMP ) - if ( OPENMP_C_FOUND AND NOT NSTATIC ) + if ( OPENMP_C_FOUND AND BUILD_STATIC_LIBS ) list ( APPEND LAGRAPH_STATIC_LIBS ${OpenMP_C_LIBRARIES} ) endif ( ) find_package ( Threads ) @@ -280,7 +280,7 @@ install ( TARGETS LAGraph LAGraphX RUNTIME DESTINATION ${SUITESPARSE_BINDIR} PUBLIC_HEADER DESTINATION ${SUITESPARSE_INCLUDEDIR} ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) install ( TARGETS LAGraph_static LAGraphX_static EXPORT LAGraphTargets ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} @@ -327,7 +327,7 @@ install ( FILES #------------------------------------------------------------------------------- if ( NOT MSVC ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) if ( NOT WIN32 ) list ( APPEND LAGRAPH_STATIC_LIBS "m" ) endif ( ) diff --git a/LAGraph/experimental/CMakeLists.txt b/LAGraph/experimental/CMakeLists.txt index 87f867a147..991355c674 100644 --- a/LAGraph/experimental/CMakeLists.txt +++ b/LAGraph/experimental/CMakeLists.txt @@ -45,7 +45,7 @@ target_compile_definitions ( LAGraphX PUBLIC LGX_DLL ) # static lagraphx library properties #------------------------------------------------------------------------------- -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) add_library ( LAGraphX_static STATIC ${LAGRAPHX_LIB_SOURCES} ) SET_TARGET_PROPERTIES ( LAGraphX_static PROPERTIES OUTPUT_NAME lagraphx @@ -76,7 +76,7 @@ endif ( ) if ( OPENMP_C_FOUND ) target_link_libraries ( LAGraphX PRIVATE OpenMP::OpenMP_C ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) target_link_libraries ( LAGraphX_static PUBLIC OpenMP::OpenMP_C ) endif ( ) endif ( ) diff --git a/LAGraph/src/CMakeLists.txt b/LAGraph/src/CMakeLists.txt index c9d0c63a02..463515dbc9 100644 --- a/LAGraph/src/CMakeLists.txt +++ b/LAGraph/src/CMakeLists.txt @@ -50,7 +50,7 @@ target_compile_definitions ( LAGraph PUBLIC LG_DLL ) # static lagraph library properties #------------------------------------------------------------------------------- -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) add_library ( LAGraph_static STATIC ${LAGRAPH_LIB_SOURCES} ) SET_TARGET_PROPERTIES ( LAGraph_static PROPERTIES OUTPUT_NAME lagraph @@ -82,7 +82,7 @@ endif ( ) if ( OPENMP_C_FOUND ) target_link_libraries ( LAGraph PRIVATE OpenMP::OpenMP_C ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) target_link_libraries ( LAGraph_static PUBLIC OpenMP::OpenMP_C ) endif ( ) endif ( ) diff --git a/LDL/CMakeLists.txt b/LDL/CMakeLists.txt index 075d4c61b1..2eb03794f3 100644 --- a/LDL/CMakeLists.txt +++ b/LDL/CMakeLists.txt @@ -102,7 +102,7 @@ target_include_directories ( LDL # static ldl library properties #------------------------------------------------------------------------------- -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) add_library ( LDL_static STATIC ${LDL_SOURCES} ) set_target_properties ( LDL_static PROPERTIES @@ -129,7 +129,7 @@ endif ( ) # libm: if ( NOT WIN32 ) target_link_libraries ( LDL PRIVATE m ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) set ( LDL_STATIC_LIBS "${LDL_STATIC_LIBS} -lm" ) target_link_libraries ( LDL_static PUBLIC m ) endif ( ) @@ -138,7 +138,7 @@ endif ( ) target_include_directories ( LDL PUBLIC "$" ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) target_include_directories ( LDL_static PUBLIC "$" ) endif ( ) @@ -154,7 +154,7 @@ install ( TARGETS LDL ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} RUNTIME DESTINATION ${SUITESPARSE_BINDIR} PUBLIC_HEADER DESTINATION ${SUITESPARSE_INCLUDEDIR} ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) install ( TARGETS LDL_static EXPORT LDLTargets ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} diff --git a/Mongoose/CMakeLists.txt b/Mongoose/CMakeLists.txt index c056a1bd85..9feb9574db 100644 --- a/Mongoose/CMakeLists.txt +++ b/Mongoose/CMakeLists.txt @@ -197,7 +197,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) # set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) # set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) # Build the Mongoose library add_library ( Mongoose_static STATIC ${MONGOOSE_LIB_FILES} ) # set_property ( TARGET Mongoose_static PROPERTY POSITION_INDEPENDENT_CODE ON ) @@ -257,10 +257,10 @@ endif ( ) add_executable ( mongoose_exe ${EXE_FILES} ) set_target_properties ( mongoose_exe PROPERTIES OUTPUT_NAME mongoose ) -if ( NSTATIC ) - target_link_libraries ( mongoose_exe Mongoose ) -else ( ) +if ( BUILD_STATIC_LIBS ) target_link_libraries ( mongoose_exe Mongoose_static ) +else ( ) + target_link_libraries ( mongoose_exe Mongoose ) endif ( ) if ( TARGET SuiteSparse::SuiteSparseConfig_static ) target_link_libraries ( mongoose_exe SuiteSparse::SuiteSparseConfig_static ) @@ -272,10 +272,10 @@ endif ( ) add_executable ( demo_exe ${DEMO_FILES} ) set_target_properties ( demo_exe PROPERTIES OUTPUT_NAME demo ) -if ( NSTATIC ) - target_link_libraries ( demo_exe Mongoose ) -else ( ) +if ( BUILD_STATIC_LIBS ) target_link_libraries ( demo_exe Mongoose_static ) +else ( ) + target_link_libraries ( demo_exe Mongoose ) endif ( ) if ( TARGET SuiteSparse::SuiteSparseConfig_static ) target_link_libraries ( demo_exe SuiteSparse::SuiteSparseConfig_static ) @@ -351,10 +351,10 @@ if ( Python_Interpreter_FOUND ) add_executable ( mongoose_test_performance Tests/Mongoose_Test_Performance.cpp Tests/Mongoose_Test_Performance_exe.cpp ) - if ( NSTATIC ) - target_link_libraries ( mongoose_test_performance Mongoose ) - else ( ) + if ( BUILD_STATIC_LIBS ) target_link_libraries ( mongoose_test_performance Mongoose_static ) + else ( ) + target_link_libraries ( mongoose_test_performance Mongoose ) endif ( ) if ( TARGET SuiteSparse::SuiteSparseConfig_static ) target_link_libraries ( mongoose_test_performance SuiteSparse::SuiteSparseConfig_static ) @@ -379,10 +379,10 @@ endif ( ) add_executable ( mongoose_test_reference Tests/Mongoose_Test_Reference.cpp Tests/Mongoose_Test_Reference_exe.cpp ) -if ( NSTATIC ) - target_link_libraries ( mongoose_test_reference Mongoose ) -else ( ) +if ( BUILD_STATIC_LIBS ) target_link_libraries ( mongoose_test_reference Mongoose_static ) +else ( ) + target_link_libraries ( mongoose_test_reference Mongoose ) endif ( ) if ( TARGET SuiteSparse::SuiteSparseConfig_static ) target_link_libraries ( mongoose_test_reference SuiteSparse::SuiteSparseConfig_static ) @@ -488,7 +488,7 @@ set_target_properties ( mongoose_unit_test_io mongoose_unit_test_graph mongoose_ set ( CMAKE_CXX_OUTPUT_EXTENSION_REPLACE 1 ) # Necessary for gcov - prevents file.cpp.gcda instead of file.gcda -# if ( NOT NSTATIC ) +# if ( BUILD_STATIC_LIBS ) # add_custom_command ( TARGET Mongoose_static # POST_BUILD # COMMAND ${CMAKE_COMMAND} -E copy $ ${PROJECT_SOURCE_DIR}/Lib @@ -536,7 +536,7 @@ install ( TARGETS Mongoose ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} RUNTIME DESTINATION ${SUITESPARSE_BINDIR} PUBLIC_HEADER DESTINATION ${SUITESPARSE_INCLUDEDIR} ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) install ( TARGETS Mongoose_static EXPORT MongooseTargets ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} diff --git a/ParU/CMakeLists.txt b/ParU/CMakeLists.txt index 6d36b03bf9..9819bbdff8 100644 --- a/ParU/CMakeLists.txt +++ b/ParU/CMakeLists.txt @@ -139,7 +139,7 @@ target_include_directories ( ParU # static paru library properties #------------------------------------------------------------------------------- -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) add_library ( ParU_static STATIC ${PARU_SOURCES} ) set_target_properties ( ParU_static PROPERTIES @@ -167,7 +167,7 @@ if ( WIN32 AND CMAKE_C_COMPILER_ID STREQUAL "GNU" ) # Some parallelization levels don't work correctly with GCC on Windows # (because of emuTLS?). Omit them. target_compile_definitions (ParU PRIVATE PARU_GCC_WINDOWS ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) target_compile_definitions (ParU_static PRIVATE PARU_GCC_WINDOWS ) endif ( ) endif ( ) @@ -180,7 +180,7 @@ endif ( ) target_link_libraries ( ParU PRIVATE SuiteSparse::SuiteSparseConfig ) target_include_directories ( ParU PUBLIC "$" ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) if ( TARGET SuiteSparse::SuiteSparseConfig_static ) target_link_libraries ( ParU_static PUBLIC SuiteSparse::SuiteSparseConfig_static ) else ( ) @@ -194,16 +194,16 @@ if ( OpenMP_CXX_FOUND ) message ( STATUS "OpenMP C++ include: ${OpenMP_CXX_INCLUDE_DIRS} ") message ( STATUS "OpenMP C++ flags: ${OpenMP_CXX_FLAGS} ") target_link_libraries ( ParU PRIVATE OpenMP::OpenMP_CXX ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) list ( APPEND PARU_STATIC_LIBS ${OpenMP_CXX_LIBRARIES} ) target_link_libraries ( ParU_static PUBLIC OpenMP::OpenMP_CXX ) endif ( ) endif ( ) # libm: -if ( NOT MSVC ) +if ( NOT WIN32 ) target_link_libraries ( ParU PRIVATE m ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) list ( APPEND PARU_STATIC_LIBS m ) target_link_libraries ( ParU_static PUBLIC m ) endif ( ) @@ -213,7 +213,7 @@ endif ( ) target_link_libraries ( ParU PRIVATE SuiteSparse::UMFPACK ) target_include_directories ( ParU PUBLIC "$" ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) if ( TARGET SuiteSparse::UMFPACK_static ) target_link_libraries ( ParU_static PUBLIC SuiteSparse::UMFPACK_static ) else ( ) @@ -225,7 +225,7 @@ endif ( ) message ( STATUS "BLAS libraries: ${BLAS_LIBRARIES} ") message ( STATUS "BLAS linker flags: ${BLAS_LINKER_FLAGS} ") target_link_libraries ( ParU PRIVATE ${BLAS_LIBRARIES} ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) list ( APPEND PARU_STATIC_LIBS ${BLAS_LIBRARIES} ) target_link_libraries ( ParU_static PUBLIC ${BLAS_LIBRARIES} ) include_directories ( ${BLAS_INCLUDE_DIRS} ) @@ -234,7 +234,7 @@ endif ( ) # cholmod: target_include_directories ( ParU PUBLIC "$" ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) target_include_directories ( ParU_static PUBLIC "$" ) endif ( ) @@ -252,7 +252,7 @@ install ( TARGETS ParU RUNTIME DESTINATION ${SUITESPARSE_BINDIR} PUBLIC_HEADER DESTINATION ${SUITESPARSE_INCLUDEDIR} ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) install ( TARGETS ParU_static EXPORT ParUTargets ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} diff --git a/RBio/CMakeLists.txt b/RBio/CMakeLists.txt index 4c311396eb..213a4d86c9 100644 --- a/RBio/CMakeLists.txt +++ b/RBio/CMakeLists.txt @@ -89,7 +89,7 @@ target_include_directories ( RBio # static rbio library properties #------------------------------------------------------------------------------- -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) add_library ( RBio_static STATIC ${RBIO_SOURCES} ) set_target_properties ( RBio_static PROPERTIES @@ -117,7 +117,7 @@ endif ( ) target_link_libraries ( RBio PRIVATE SuiteSparse::SuiteSparseConfig ) target_include_directories ( RBio PUBLIC "$" ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) if ( TARGET SuiteSparse::SuiteSparseConfig_static ) target_link_libraries ( RBio_static PUBLIC SuiteSparse::SuiteSparseConfig_static ) else ( ) @@ -128,7 +128,7 @@ endif ( ) # libm: if ( NOT WIN32 ) target_link_libraries ( RBio PRIVATE m ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) set ( RBIO_STATIC_LIBS "${RBIO_STATIC_LIBS} -lm" ) target_link_libraries ( RBio_static PUBLIC m ) endif ( ) @@ -146,7 +146,7 @@ install ( TARGETS RBio ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} RUNTIME DESTINATION ${SUITESPARSE_BINDIR} PUBLIC_HEADER DESTINATION ${SUITESPARSE_INCLUDEDIR} ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) install ( TARGETS RBio_static EXPORT RBioTargets ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} diff --git a/README.md b/README.md index 1b83cca567..6d80ac5a26 100644 --- a/README.md +++ b/README.md @@ -644,11 +644,12 @@ Compilation options You can set specific options for CMake with the command (for example): - cmake -DNPARTITION=ON -DNSTATIC=ON -DCMAKE_BUILD_TYPE=Debug .. + cmake -DNPARTITION=ON -DBUILD_STATIC_LIBS=OFF -DCMAKE_BUILD_TYPE=Debug .. That command will compile all of SuiteSparse except for CHOLMOD/Partition Module (because of `-DNPARTITION=ON`). Debug mode will be used (the build -type). The static libraries will not be built (since `-DNSTATIC=ON` is set). +type). The static libraries will not be built (since `-DBUILD_STATIC_LIBS=OFF` +is set). * `SUITESPARSE_ENABLE_PROJECTS`: @@ -679,11 +680,11 @@ type). The static libraries will not be built (since `-DNSTATIC=ON` is set). sudo cmake --install . ``` -* `NSTATIC`: +* `BUILD_STATIC_LIBS`: - If `ON`, static libraries are not built. - Default: `OFF`, except for GraphBLAS, which takes a long time to compile so - the default for GraphBLAS is `ON`. + If `ON`, static libraries are also built. + Default: `ON`, except for GraphBLAS, which takes a long time to compile so + the default for GraphBLAS is `OFF`. * `SUITESPARSE_CUDA_ARCHITECTURES`: diff --git a/SPEX/CMakeLists.txt b/SPEX/CMakeLists.txt index d8d8945b7d..8d687c0c7b 100644 --- a/SPEX/CMakeLists.txt +++ b/SPEX/CMakeLists.txt @@ -111,7 +111,7 @@ target_include_directories ( SPEX # static spex library properties #------------------------------------------------------------------------------- -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) add_library ( SPEX_static STATIC ${SPEX_SOURCES} ) set_target_properties ( SPEX_static PROPERTIES @@ -139,7 +139,7 @@ endif ( ) target_link_libraries ( SPEX PRIVATE SuiteSparse::SuiteSparseConfig ) target_include_directories ( SPEX PUBLIC "$" ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) if ( TARGET SuiteSparse::SuiteSparseConfig_static ) target_link_libraries ( SPEX_static PUBLIC SuiteSparse::SuiteSparseConfig_static ) else ( ) @@ -149,7 +149,7 @@ endif ( ) # AMD: target_link_libraries ( SPEX PRIVATE SuiteSparse::AMD ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) if ( TARGET SuiteSparse::AMD_static ) target_link_libraries ( SPEX_static PUBLIC SuiteSparse::AMD_static ) else ( ) @@ -159,7 +159,7 @@ endif ( ) # COLAMD: target_link_libraries ( SPEX PRIVATE SuiteSparse::COLAMD ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) if ( TARGET SuiteSparse::COLAMD_static ) target_link_libraries ( SPEX_static PUBLIC SuiteSparse::COLAMD_static ) else ( ) @@ -169,7 +169,7 @@ endif ( ) # MPFR: target_link_libraries ( SPEX PRIVATE ${MPFR_LIBRARIES} ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) list ( APPEND SPEX_STATIC_LIBS ${MPFR_STATIC} ) target_link_libraries ( SPEX_static PUBLIC ${MPFR_STATIC} ) endif ( ) @@ -177,7 +177,7 @@ endif ( ) # GMP: # must occur after MPFR target_link_libraries ( SPEX PRIVATE ${GMP_LIBRARIES} ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) list ( APPEND SPEX_STATIC_LIBS ${GMP_STATIC} ) target_link_libraries ( SPEX_static PUBLIC ${GMP_STATIC} ) endif ( ) @@ -185,7 +185,7 @@ endif ( ) # libm: if ( NOT WIN32 ) target_link_libraries ( SPEX PRIVATE m ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) list ( APPEND SPEX_STATIC_LIBS "m" ) target_link_libraries ( SPEX_static PUBLIC m ) endif ( ) @@ -203,7 +203,7 @@ install ( TARGETS SPEX ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} RUNTIME DESTINATION ${SUITESPARSE_BINDIR} PUBLIC_HEADER DESTINATION ${SUITESPARSE_INCLUDEDIR} ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) install ( TARGETS SPEX_static EXPORT SPEXTargets ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} diff --git a/SPQR/CMakeLists.txt b/SPQR/CMakeLists.txt index 91e7cec7d6..0699143880 100644 --- a/SPQR/CMakeLists.txt +++ b/SPQR/CMakeLists.txt @@ -124,7 +124,7 @@ target_include_directories ( SPQR # static spqr library properties #------------------------------------------------------------------------------- -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) add_library ( SPQR_static STATIC ${SPQR_SOURCES} ) set_target_properties ( SPQR_static PROPERTIES @@ -152,7 +152,7 @@ endif ( ) # SuiteSparseConfig: target_link_libraries ( SPQR PRIVATE SuiteSparse::SuiteSparseConfig ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) if ( TARGET SuiteSparse::SuiteSparseConfig_static ) target_link_libraries ( SPQR_static PUBLIC SuiteSparse::SuiteSparseConfig_static ) else ( ) @@ -163,7 +163,7 @@ endif ( ) # OpenMP: if ( OPENMP_FOUND ) target_link_libraries ( SPQR PRIVATE OpenMP::OpenMP_CXX ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) target_link_libraries ( SPQR_static PUBLIC OpenMP::OpenMP_CXX ) list ( APPEND SPQR_STATIC_LIBS ${OpenMP_CXX_LIBRARIES} ) endif ( ) @@ -172,7 +172,7 @@ endif ( ) # libm: if ( NOT WIN32 ) target_link_libraries ( SPQR PRIVATE m ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) list ( APPEND SPQR_STATIC_LIBS "m" ) target_link_libraries ( SPQR_static PUBLIC m ) endif ( ) @@ -184,7 +184,7 @@ message ( STATUS "LAPACK include: ${LAPACK_INCLUDE_DIRS} ") message ( STATUS "LAPACK linker flags: ${LAPACK_LINKER_FLAGS} ") target_link_libraries ( SPQR PRIVATE ${LAPACK_LIBRARIES} ) target_include_directories ( SPQR PRIVATE ${LAPACK_INCLUDE_DIR} ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) list ( APPEND SPQR_STATIC_LIBS ${LAPACK_LIBRARIES} ) target_link_libraries ( SPQR_static PUBLIC ${LAPACK_LIBRARIES} ) target_include_directories ( SPQR_static PRIVATE ${LAPACK_INCLUDE_DIR} ) @@ -196,7 +196,7 @@ message ( STATUS "BLAS include: ${BLAS_INCLUDE_DIRS} ") message ( STATUS "BLAS linker flags: ${BLAS_LINKER_FLAGS} ") target_link_libraries ( SPQR PRIVATE ${BLAS_LIBRARIES} ) target_include_directories ( SPQR PRIVATE ${BLAS_INCLUDE_DIRS} ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) list ( APPEND SPQR_STATIC_LIBS ${BLAS_LIBRARIES} ) target_link_libraries ( SPQR_static PUBLIC ${BLAS_LIBRARIES} ) target_include_directories ( SPQR_static PRIVATE ${BLAS_INCLUDE_DIRS} ) @@ -205,7 +205,7 @@ endif ( ) # CHOLMOD: # link with CHOLMOD and its dependencies target_link_libraries ( SPQR PRIVATE SuiteSparse::CHOLMOD ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) if ( TARGET SuiteSparse::CHOLMOD_static ) target_link_libraries ( SPQR_static PUBLIC SuiteSparse::CHOLMOD_static ) else ( ) @@ -219,7 +219,7 @@ if ( SUITESPARSE_CUDA ) SuiteSparse::CHOLMOD_CUDA SPQR_CUDA GPUQREngine GPURuntime ) target_compile_definitions ( SPQR PUBLIC "SUITESPARSE_CUDA" ) set ( SPQR_CFLAGS "-DSUITESPARSE_CUDA" ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) if ( TARGET SuiteSparse::CHOLMOD_CUDA_static ) target_link_libraries ( SPQR_static PUBLIC SuiteSparse::CHOLMOD_CUDA_static ) else ( ) @@ -242,7 +242,7 @@ install ( TARGETS SPQR LIBRARY DESTINATION ${SUITESPARSE_LIBDIR} ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} RUNTIME DESTINATION ${SUITESPARSE_BINDIR} ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) install ( TARGETS SPQR_static EXPORT SPQRTargets ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} ) diff --git a/SPQR/GPUQREngine/CMakeLists.txt b/SPQR/GPUQREngine/CMakeLists.txt index 93e686178f..715e8f4d19 100644 --- a/SPQR/GPUQREngine/CMakeLists.txt +++ b/SPQR/GPUQREngine/CMakeLists.txt @@ -115,7 +115,7 @@ target_include_directories ( GPUQREngine # static gpuqrengine library properties #------------------------------------------------------------------------------- -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) add_library ( GPUQREngine_static STATIC ${GPUQRENGINE_SOURCES} ) set_target_properties ( GPUQREngine_static PROPERTIES @@ -161,7 +161,7 @@ install ( TARGETS GPUQREngine ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} RUNTIME DESTINATION ${SUITESPARSE_BINDIR} PUBLIC_HEADER DESTINATION ${SUITESPARSE_INCLUDEDIR} ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) install ( TARGETS GPUQREngine_static EXPORT GPUQREngineTargets ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} diff --git a/SPQR/GPURuntime/CMakeLists.txt b/SPQR/GPURuntime/CMakeLists.txt index 9bae8056b7..ae02ba56b6 100644 --- a/SPQR/GPURuntime/CMakeLists.txt +++ b/SPQR/GPURuntime/CMakeLists.txt @@ -93,7 +93,7 @@ target_include_directories ( GPURuntime # static suitesparse_gpuruntime library properties #------------------------------------------------------------------------------- -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) add_library ( GPURuntime_static STATIC ${SUITESPARSE_GPURUNTIME_SOURCES} ) set_target_properties ( GPURuntime_static PROPERTIES @@ -138,7 +138,7 @@ install ( TARGETS GPURuntime ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} RUNTIME DESTINATION ${SUITESPARSE_BINDIR} PUBLIC_HEADER DESTINATION ${SUITESPARSE_INCLUDEDIR} ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) install ( TARGETS GPURuntime_static EXPORT SuiteSparse_GPURuntimeTargets ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} diff --git a/SPQR/SPQRGPU/CMakeLists.txt b/SPQR/SPQRGPU/CMakeLists.txt index d86a35fa77..5957001b58 100644 --- a/SPQR/SPQRGPU/CMakeLists.txt +++ b/SPQR/SPQRGPU/CMakeLists.txt @@ -38,7 +38,7 @@ set_target_properties ( SPQR_CUDA PROPERTIES OUTPUT_NAME spqr_cuda SOVERSION ${SPQR_VERSION_MAJOR} ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) add_library ( SPQR_CUDA_static STATIC ${SPQR_CUDA_SOURCES} ) set_target_properties ( SPQR_CUDA_static PROPERTIES @@ -74,7 +74,7 @@ target_link_libraries ( SPQR_CUDA PRIVATE SuiteSparse::CHOLMOD ) target_link_libraries ( SPQR_CUDA PRIVATE CUDA::nvrtc CUDA::cudart_static CUDA::nvToolsExt CUDA::cublas ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) target_include_directories ( SPQR_CUDA_static PRIVATE "$" "$" ) @@ -110,7 +110,7 @@ install ( TARGETS SPQR_CUDA ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} RUNTIME DESTINATION ${SUITESPARSE_BINDIR} ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) install ( TARGETS SPQR_CUDA_static EXPORT SPQR_CUDATargets ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} ) diff --git a/SuiteSparse_config/CMakeLists.txt b/SuiteSparse_config/CMakeLists.txt index ba72d21e17..7c66bb23ef 100644 --- a/SuiteSparse_config/CMakeLists.txt +++ b/SuiteSparse_config/CMakeLists.txt @@ -103,7 +103,7 @@ target_include_directories ( SuiteSparseConfig # static SuiteSparseConfig library properties #------------------------------------------------------------------------------- -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) add_library ( SuiteSparseConfig_static STATIC ${SUITESPARSECONFIG_SOURCES} ) set_target_properties ( SuiteSparseConfig_static PROPERTIES @@ -129,7 +129,7 @@ endif ( ) # libm: if ( NOT WIN32 ) target_link_libraries ( SuiteSparseConfig PRIVATE m ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) target_link_libraries ( SuiteSparseConfig_static PUBLIC m ) endif ( ) endif ( ) @@ -140,7 +140,7 @@ if ( OPENMP_FOUND ) message ( STATUS "OpenMP C include: ${OpenMP_C_INCLUDE_DIRS} ") message ( STATUS "OpenMP C flags: ${OpenMP_C_FLAGS} ") target_link_libraries ( SuiteSparseConfig PRIVATE ${OpenMP_C_LIBRARIES} ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) target_link_libraries ( SuiteSparseConfig_static PUBLIC ${OpenMP_C_LIBRARIES} ) endif ( ) set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS} " ) @@ -175,7 +175,7 @@ install ( FILES ${SUITESPARSE_CMAKE_MODULES} DESTINATION ${SUITESPARSE_PKGFILEDIR}/cmake/SuiteSparse COMPONENT Development ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) install ( TARGETS SuiteSparseConfig_static EXPORT SuiteSparse_configTargets ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} diff --git a/SuiteSparse_config/Config/README.md.in b/SuiteSparse_config/Config/README.md.in index 6a8161acdd..66f6cb067f 100644 --- a/SuiteSparse_config/Config/README.md.in +++ b/SuiteSparse_config/Config/README.md.in @@ -644,11 +644,12 @@ Compilation options You can set specific options for CMake with the command (for example): - cmake -DNPARTITION=ON -DNSTATIC=ON -DCMAKE_BUILD_TYPE=Debug .. + cmake -DNPARTITION=ON -DBUILD_STATIC_LIBS=OFF -DCMAKE_BUILD_TYPE=Debug .. That command will compile all of SuiteSparse except for CHOLMOD/Partition Module (because of `-DNPARTITION=ON`). Debug mode will be used (the build -type). The static libraries will not be built (since `-DNSTATIC=ON` is set). +type). The static libraries will not be built (since `-DBUILD_STATIC_LIBS=OFF` +is set). * `SUITESPARSE_ENABLE_PROJECTS`: @@ -679,11 +680,11 @@ type). The static libraries will not be built (since `-DNSTATIC=ON` is set). sudo cmake --install . ``` -* `NSTATIC`: +* `BUILD_STATIC_LIBS`: - If `ON`, static libraries are not built. - Default: `OFF`, except for GraphBLAS, which takes a long time to compile so - the default for GraphBLAS is `ON`. + If `ON`, static libraries are also built. + Default: `ON`, except for GraphBLAS, which takes a long time to compile so + the default for GraphBLAS is `OFF`. * `SUITESPARSE_CUDA_ARCHITECTURES`: diff --git a/SuiteSparse_config/cmake_modules/SuiteSparsePolicy.cmake b/SuiteSparse_config/cmake_modules/SuiteSparsePolicy.cmake index a3323a9f9a..e3573426ec 100644 --- a/SuiteSparse_config/cmake_modules/SuiteSparsePolicy.cmake +++ b/SuiteSparse_config/cmake_modules/SuiteSparsePolicy.cmake @@ -28,10 +28,10 @@ # Set CMAKE_INSTALL_PREFIX instead. # Default: false # -# NSTATIC: if true, static libraries are not built. -# Default: false, except for GraphBLAS, which +# BUILD_STATIC_LIBS: if true, static libraries are built. +# Default: true, except for GraphBLAS, which # takes a long time to compile so the default for -# GraphBLAS is true. +# GraphBLAS is false. # # SUITESPARSE_CUDA_ARCHITECTURES: a string, such as "all" or # "35;50;75;80" that lists the CUDA architectures to use @@ -94,11 +94,16 @@ include ( GNUInstallDirs ) set ( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake_modules ) -# NSTATIC option -if ( NSTATIC_DEFAULT_ON ) - option ( NSTATIC "ON (default): do not build static libraries. OFF: build static libraries" on ) +# BUILD_STATIC_LIBS option +if ( BUILD_STATIC_LIBS_DEFAULT_OFF ) + option ( BUILD_STATIC_LIBS "OFF (default): do not build static libraries. ON: build static libraries" OFF ) else ( ) - option ( NSTATIC "ON: do not build static libraries. OFF (default): build static libraries" off ) + # For backwards compatibility, use NSTATIC if it is set. + if ( NSTATIC ) + option ( BUILD_STATIC_LIBS "OFF: do not build static libraries. ON (default): build static libraries" OFF ) + else ( ) + option ( BUILD_STATIC_LIBS "OFF: do not build static libraries. ON (default): build static libraries" ON ) + endif ( ) endif ( ) # installation options diff --git a/SuiteSparse_config/cmake_modules/SuiteSparseReport.cmake b/SuiteSparse_config/cmake_modules/SuiteSparseReport.cmake index c147b6e2b5..d06f785713 100644 --- a/SuiteSparse_config/cmake_modules/SuiteSparseReport.cmake +++ b/SuiteSparse_config/cmake_modules/SuiteSparseReport.cmake @@ -17,11 +17,7 @@ if ( NOT SUITESPARSE_ROOT_CMAKELISTS ) message ( STATUS "install in SuiteSparse/lib and SuiteSparse/include: ${LOCAL_INSTALL}" ) endif ( ) message ( STATUS "build type: ${CMAKE_BUILD_TYPE}" ) -if ( NSTATIC ) - message ( STATUS "NSTATIC: true (do not build static library)" ) -else ( ) - message ( STATUS "NSTATIC: false (build static library)" ) -endif ( ) +message ( STATUS "BUILD_STATIC_LIBS: ${BUILD_STATIC_LIBS}" ) if ( OPENMP_FOUND ) message ( STATUS "use OpenMP: yes ") else ( ) diff --git a/UMFPACK/CMakeLists.txt b/UMFPACK/CMakeLists.txt index bf309c23a0..0e53af0012 100644 --- a/UMFPACK/CMakeLists.txt +++ b/UMFPACK/CMakeLists.txt @@ -165,7 +165,7 @@ target_include_directories ( UMFPACK # static umfpack library properties #------------------------------------------------------------------------------- -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) add_library ( UMFPACK_static STATIC ${UMFPACK_SOURCES} ) set_target_properties ( UMFPACK_static PROPERTIES @@ -193,7 +193,7 @@ endif ( ) target_link_libraries ( UMFPACK PRIVATE SuiteSparse::SuiteSparseConfig ) target_include_directories ( UMFPACK PUBLIC "$" ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) if ( TARGET SuiteSparse::SuiteSparseConfig_static ) target_link_libraries ( UMFPACK_static PUBLIC SuiteSparse::SuiteSparseConfig_static ) else ( ) @@ -207,7 +207,7 @@ if ( OPENMP_FOUND ) message ( STATUS "OpenMP C include: ${OpenMP_C_INCLUDE_DIRS} ") message ( STATUS "OpenMP C flags: ${OpenMP_C_FLAGS} ") target_link_libraries ( UMFPACK PRIVATE ${OpenMP_C_LIBRARIES} ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) target_link_libraries ( UMFPACK_static PUBLIC ${OpenMP_C_LIBRARIES} ) list ( APPEND UMFPACK_STATIC_LIBS ${OpenMP_C_LIBRARIES} ) endif ( ) @@ -218,7 +218,7 @@ endif ( ) # libm: if ( NOT WIN32 ) target_link_libraries ( UMFPACK PRIVATE m ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) list ( APPEND UMFPACK_STATIC_LIBS "m" ) target_link_libraries ( UMFPACK_static PUBLIC m ) endif ( ) @@ -228,7 +228,7 @@ endif ( ) target_link_libraries ( UMFPACK PRIVATE SuiteSparse::AMD ) target_include_directories ( UMFPACK PUBLIC "$" ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) if ( TARGET SuiteSparse::AMD_static ) target_link_libraries ( UMFPACK_static PUBLIC SuiteSparse::AMD_static ) else ( ) @@ -241,7 +241,7 @@ message ( STATUS "BLAS libraries: ${BLAS_LIBRARIES} ") message ( STATUS "BLAS include: ${BLAS_INCLUDE_DIRS} ") message ( STATUS "BLAS linker flags: ${BLAS_LINKER_FLAGS} ") target_link_libraries ( UMFPACK PRIVATE ${BLAS_LIBRARIES} ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) list ( APPEND UMFPACK_STATIC_LIBS ${BLAS_LIBRARIES} ) target_link_libraries ( UMFPACK_static PUBLIC ${BLAS_LIBRARIES} ) endif ( ) @@ -251,7 +251,7 @@ include_directories ( ${BLAS_INCLUDE_DIRS} ) if ( NOT NCHOLMOD ) # link with CHOLMOD and its dependencies, both required and optional target_link_libraries ( UMFPACK PRIVATE SuiteSparse::CHOLMOD ) - if ( NOT NSTATIC ) + if ( BUILD_STATIC_LIBS ) set ( UMFPACK_STATIC_MODULES "${UMFPACK_STATIC_MODULES} CHOLMOD" ) if ( TARGET SuiteSparse::CHOLMOD_static ) target_link_libraries ( UMFPACK_static PUBLIC SuiteSparse::CHOLMOD_static ) @@ -274,7 +274,7 @@ install ( TARGETS UMFPACK ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR} RUNTIME DESTINATION ${SUITESPARSE_BINDIR} PUBLIC_HEADER DESTINATION ${SUITESPARSE_INCLUDEDIR} ) -if ( NOT NSTATIC ) +if ( BUILD_STATIC_LIBS ) install ( TARGETS UMFPACK_static EXPORT UMFPACKTargets ARCHIVE DESTINATION ${SUITESPARSE_LIBDIR}