#------------------------------------------------------------------------------- # GraphBLAS/cmake_modules/GraphBLAS_complex.cmake #------------------------------------------------------------------------------- # SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2024, All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 #------------------------------------------------------------------------------- # Check for C compiler support for complex floating point numbers and used API include ( CheckSourceCompiles ) # Check for C99 complex number arithmetic check_source_compiles ( C "#include int main(void) { double _Complex z1 = 1.0; double _Complex z2 = 1.0 * I; double _Complex z3 = z1 * z2; return 0; }" GxB_HAVE_COMPLEX_C99 ) if ( NOT GxB_HAVE_COMPLEX_C99 ) # Check for complex number arithmetic as implemented by MSVC check_source_compiles ( C "#include int main(void) { _Dcomplex z1 = {1., 0.}; _Dcomplex z2 = {0., 1.}; _Dcomplex z3 = _Cmulcc(z1, z2); return 0; }" GxB_HAVE_COMPLEX_MSVC ) endif ( ) if ( NOT GxB_HAVE_COMPLEX_C99 AND NOT GxB_HAVE_COMPLEX_MSVC ) message ( FATAL_ERROR "Complex floating point numbers are not supported by the used compiler." ) endif ( )