diff --git a/CMakeFiles/3.28.3/CMakeCCompiler.cmake b/CMakeFiles/3.28.3/CMakeCCompiler.cmake new file mode 100644 index 0000000000..3766fe14c8 --- /dev/null +++ b/CMakeFiles/3.28.3/CMakeCCompiler.cmake @@ -0,0 +1,74 @@ +set(CMAKE_C_COMPILER "/usr/bin/cc") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "GNU") +set(CMAKE_C_COMPILER_VERSION "13.3.0") +set(CMAKE_C_COMPILER_VERSION_INTERNAL "") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "17") +set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON") +set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17;c_std_23") +set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") +set(CMAKE_C17_COMPILE_FEATURES "c_std_17") +set(CMAKE_C23_COMPILE_FEATURES "c_std_23") + +set(CMAKE_C_PLATFORM_ID "Linux") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU") +set(CMAKE_C_SIMULATE_VERSION "") + + + + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar-13") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib-13") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_MT "") +set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND") +set(CMAKE_COMPILER_IS_GNUCC 1) +set(CMAKE_C_COMPILER_LOADED 1) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_C_ABI_COMPILED TRUE) + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +set(CMAKE_C_COMPILER_ID_RUN 1) +set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) +set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_C_LINKER_PREFERENCE 10) +set(CMAKE_C_LINKER_DEPFILE_SUPPORTED TRUE) + +# Save compiler ABI information. +set(CMAKE_C_SIZEOF_DATA_PTR "8") +set(CMAKE_C_COMPILER_ABI "ELF") +set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_C_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_C_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") +endif() + +if(CMAKE_C_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/13/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include") +set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/13;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/CMakeFiles/3.28.3/CMakeCXXCompiler.cmake b/CMakeFiles/3.28.3/CMakeCXXCompiler.cmake new file mode 100644 index 0000000000..8dbc9d3e67 --- /dev/null +++ b/CMakeFiles/3.28.3/CMakeCXXCompiler.cmake @@ -0,0 +1,85 @@ +set(CMAKE_CXX_COMPILER "/usr/bin/c++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "GNU") +set(CMAKE_CXX_COMPILER_VERSION "13.3.0") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17") +set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") +set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20") +set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23") + +set(CMAKE_CXX_PLATFORM_ID "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-13") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-13") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_MT "") +set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND") +set(CMAKE_COMPILER_IS_GNUCXX 1) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm;ccm;cxxm;c++m) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) + +foreach (lang C OBJC OBJCXX) + if (CMAKE_${lang}_COMPILER_ID_RUN) + foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) + list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) + endforeach() + endif() +endforeach() + +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) +set(CMAKE_CXX_LINKER_DEPFILE_SUPPORTED TRUE) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "8") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/usr/include/c++/13;/usr/include/x86_64-linux-gnu/c++/13;/usr/include/c++/13/backward;/usr/lib/gcc/x86_64-linux-gnu/13/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include") +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/13;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/CMakeFiles/3.28.3/CMakeDetermineCompilerABI_C.bin b/CMakeFiles/3.28.3/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000000..0e5f034156 Binary files /dev/null and b/CMakeFiles/3.28.3/CMakeDetermineCompilerABI_C.bin differ diff --git a/CMakeFiles/3.28.3/CMakeDetermineCompilerABI_CXX.bin b/CMakeFiles/3.28.3/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000000..e90f3f71d9 Binary files /dev/null and b/CMakeFiles/3.28.3/CMakeDetermineCompilerABI_CXX.bin differ diff --git a/CMakeFiles/3.28.3/CMakeSystem.cmake b/CMakeFiles/3.28.3/CMakeSystem.cmake new file mode 100644 index 0000000000..43edf659ef --- /dev/null +++ b/CMakeFiles/3.28.3/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-6.8.0-51-generic") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "6.8.0-51-generic") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + + + +set(CMAKE_SYSTEM "Linux-6.8.0-51-generic") +set(CMAKE_SYSTEM_NAME "Linux") +set(CMAKE_SYSTEM_VERSION "6.8.0-51-generic") +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_CROSSCOMPILING "FALSE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/CMakeFiles/3.28.3/CompilerIdC/CMakeCCompilerId.c b/CMakeFiles/3.28.3/CompilerIdC/CMakeCCompilerId.c new file mode 100644 index 0000000000..0a0ec9b1d6 --- /dev/null +++ b/CMakeFiles/3.28.3/CompilerIdC/CMakeCCompilerId.c @@ -0,0 +1,880 @@ +#ifdef __cplusplus +# error "A C++ compiler has been selected for C." +#endif + +#if defined(__18CXX) +# define ID_VOID_MAIN +#endif +#if defined(__CLASSIC_C__) +/* cv-qualifiers did not exist in K&R C */ +# define const +# define volatile +#endif + +#if !defined(__has_include) +/* If the compiler does not have __has_include, pretend the answer is + always no. */ +# define __has_include(x) 0 +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, + except that a few beta releases use the old format with V=2021. */ +# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) + /* The third version component from --version is an update index, + but no macro is provided for it. */ +# define COMPILER_VERSION_PATCH DEC(0) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) +# define COMPILER_ID "IntelLLVM" +#if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +#endif +#if defined(__GNUC__) +# define SIMULATE_ID "GNU" +#endif +/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and + * later. Look for 6 digit vs. 8 digit version number to decide encoding. + * VVVV is no smaller than the current year when a version is released. + */ +#if __INTEL_LLVM_COMPILER < 1000000L +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) +#else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) +#endif +#if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +#endif +#if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +#elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +#endif +#if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +#endif +#if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +#endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_C) +# define COMPILER_ID "SunPro" +# if __SUNPRO_C >= 0x5100 + /* __SUNPRO_C = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# endif + +#elif defined(__HP_cc) +# define COMPILER_ID "HP" + /* __HP_cc = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) + +#elif defined(__DECC) +# define COMPILER_ID "Compaq" + /* __DECC_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) + +#elif defined(__IBMC__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__open_xl__) && defined(__clang__) +# define COMPILER_ID "IBMClang" +# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__) +# define COMPILER_VERSION_MINOR DEC(__open_xl_release__) +# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__) + + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 +# define COMPILER_ID "XL" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(__clang__) && defined(__cray__) +# define COMPILER_ID "CrayClang" +# define COMPILER_VERSION_MAJOR DEC(__cray_major__) +# define COMPILER_VERSION_MINOR DEC(__cray_minor__) +# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +# define COMPILER_ID "FujitsuClang" +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# define COMPILER_VERSION_INTERNAL_STR __clang_version__ + + +#elif defined(__FUJITSU) +# define COMPILER_ID "Fujitsu" +# if defined(__FCC_version__) +# define COMPILER_VERSION __FCC_version__ +# elif defined(__FCC_major__) +# define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +# define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +# endif +# if defined(__fcc_version) +# define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +# elif defined(__FCC_VERSION) +# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +# endif + + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__TASKING__) +# define COMPILER_ID "Tasking" + # define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000) + # define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100) +# define COMPILER_VERSION_INTERNAL DEC(__VERSION__) + +#elif defined(__ORANGEC__) +# define COMPILER_ID "OrangeC" +# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__) +# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__) + +#elif defined(__TINYC__) +# define COMPILER_ID "TinyCC" + +#elif defined(__BCC__) +# define COMPILER_ID "Bruce" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__)) +# define COMPILER_ID "LCC" +# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100) +# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100) +# if defined(__LCC_MINOR__) +# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__) +# endif +# if defined(__GNUC__) && defined(__GNUC_MINOR__) +# define SIMULATE_ID "GNU" +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif +# endif + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(_ADI_COMPILER) +# define COMPILER_ID "ADSP" +#if defined(__VERSIONNUM__) + /* __VERSIONNUM__ = 0xVVRRPPTT */ +# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF) +# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF) +# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF) +# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) +# define COMPILER_ID "SDCC" +# if defined(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) +# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) +# else + /* SDCC = VRP */ +# define COMPILER_VERSION_MAJOR DEC(SDCC/100) +# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) +# define COMPILER_VERSION_PATCH DEC(SDCC % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +# define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +# elif defined(_ADI_COMPILER) +# define PLATFORM_ID "ADSP" + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +# elif defined(__ADSPSHARC__) +# define ARCHITECTURE_ID "SHARC" + +# elif defined(__ADSPBLACKFIN__) +# define ARCHITECTURE_ID "Blackfin" + +#elif defined(__TASKING__) + +# if defined(__CTC__) || defined(__CPTC__) +# define ARCHITECTURE_ID "TriCore" + +# elif defined(__CMCS__) +# define ARCHITECTURE_ID "MCS" + +# elif defined(__CARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__CARC__) +# define ARCHITECTURE_ID "ARC" + +# elif defined(__C51__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__CPCP__) +# define ARCHITECTURE_ID "PCP" + +# else +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#if !defined(__STDC__) && !defined(__clang__) +# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__) +# define C_VERSION "90" +# else +# define C_VERSION +# endif +#elif __STDC_VERSION__ > 201710L +# define C_VERSION "23" +#elif __STDC_VERSION__ >= 201710L +# define C_VERSION "17" +#elif __STDC_VERSION__ >= 201000L +# define C_VERSION "11" +#elif __STDC_VERSION__ >= 199901L +# define C_VERSION "99" +#else +# define C_VERSION "90" +#endif +const char* info_language_standard_default = + "INFO" ":" "standard_default[" C_VERSION "]"; + +const char* info_language_extensions_default = "INFO" ":" "extensions_default[" +#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \ + defined(__TI_COMPILER_VERSION__)) && \ + !defined(__STRICT_ANSI__) + "ON" +#else + "OFF" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +#ifdef ID_VOID_MAIN +void main() {} +#else +# if defined(__CLASSIC_C__) +int main(argc, argv) int argc; char *argv[]; +# else +int main(int argc, char* argv[]) +# endif +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} +#endif diff --git a/CMakeFiles/3.28.3/CompilerIdC/a.out b/CMakeFiles/3.28.3/CompilerIdC/a.out new file mode 100755 index 0000000000..ecc315e71b Binary files /dev/null and b/CMakeFiles/3.28.3/CompilerIdC/a.out differ diff --git a/CMakeFiles/3.28.3/CompilerIdCXX/CMakeCXXCompilerId.cpp b/CMakeFiles/3.28.3/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 0000000000..7bd95f2792 --- /dev/null +++ b/CMakeFiles/3.28.3/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,925 @@ +/* This source file must have a .cpp extension so that all C++ compilers + recognize the extension without flags. Borland does not know .cxx for + example. */ +#ifndef __cplusplus +#error "A C compiler has been selected for C++." +#endif + +#if !defined(__has_include) +/* If the compiler does not have __has_include, pretend the answer is + always no. */ +#define __has_include(x) 0 +#endif + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__COMO__) +#define COMPILER_ID "Comeau" +/* __COMO_VERSION__ = VRR */ +#define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) +#define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) + +#elif defined(__INTEL_COMPILER) || defined(__ICC) +#define COMPILER_ID "Intel" +#if defined(_MSC_VER) +#define SIMULATE_ID "MSVC" +#endif +#if defined(__GNUC__) +#define SIMULATE_ID "GNU" +#endif +/* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, + except that a few beta releases use the old format with V=2021. */ +#if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 \ + || __INTEL_COMPILER == 202111 +#define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER / 100) +#define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER / 10 % 10) +#if defined(__INTEL_COMPILER_UPDATE) +#define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +#else +#define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +#endif +#else +#define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) +#define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) +/* The third version component from --version is an update index, + but no macro is provided for it. */ +#define COMPILER_VERSION_PATCH DEC(0) +#endif +#if defined(__INTEL_COMPILER_BUILD_DATE) +/* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +#define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +#endif +#if defined(_MSC_VER) +/* _MSC_VER = VVRR */ +#define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +#define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +#endif +#if defined(__GNUC__) +#define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +#elif defined(__GNUG__) +#define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +#endif +#if defined(__GNUC_MINOR__) +#define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +#endif +#if defined(__GNUC_PATCHLEVEL__) +#define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +#endif + +#elif(defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) \ + || defined(__INTEL_LLVM_COMPILER) +#define COMPILER_ID "IntelLLVM" +#if defined(_MSC_VER) +#define SIMULATE_ID "MSVC" +#endif +#if defined(__GNUC__) +#define SIMULATE_ID "GNU" +#endif +/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and + * later. Look for 6 digit vs. 8 digit version number to decide encoding. + * VVVV is no smaller than the current year when a version is released. + */ +#if __INTEL_LLVM_COMPILER < 1000000L +#define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER / 100) +#define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER / 10 % 10) +#define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) +#else +#define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER / 10000) +#define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER / 100 % 100) +#define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) +#endif +#if defined(_MSC_VER) +/* _MSC_VER = VVRR */ +#define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +#define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +#endif +#if defined(__GNUC__) +#define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +#elif defined(__GNUG__) +#define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +#endif +#if defined(__GNUC_MINOR__) +#define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +#endif +#if defined(__GNUC_PATCHLEVEL__) +#define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +#endif + +#elif defined(__PATHCC__) +#define COMPILER_ID "PathScale" +#define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +#define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +#if defined(__PATHCC_PATCHLEVEL__) +#define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +#endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +#define COMPILER_ID "Embarcadero" +#define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__ >> 24 & 0x00FF) +#define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__ >> 16 & 0x00FF) +#define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +#define COMPILER_ID "Borland" +/* __BORLANDC__ = 0xVRR */ +#define COMPILER_VERSION_MAJOR HEX(__BORLANDC__ >> 8) +#define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +#define COMPILER_ID "Watcom" +/* __WATCOMC__ = VVRR */ +#define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +#define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +#if(__WATCOMC__ % 10) > 0 +#define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +#endif + +#elif defined(__WATCOMC__) +#define COMPILER_ID "OpenWatcom" +/* __WATCOMC__ = VVRP + 1100 */ +#define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +#define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +#if(__WATCOMC__ % 10) > 0 +#define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +#endif + +#elif defined(__SUNPRO_CC) +#define COMPILER_ID "SunPro" +#if __SUNPRO_CC >= 0x5100 +/* __SUNPRO_CC = 0xVRRP */ +#define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC >> 12) +#define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC >> 4 & 0xFF) +#define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +#else +/* __SUNPRO_CC = 0xVRP */ +#define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC >> 8) +#define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC >> 4 & 0xF) +#define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +#endif + +#elif defined(__HP_aCC) +#define COMPILER_ID "HP" +/* __HP_aCC = VVRRPP */ +#define COMPILER_VERSION_MAJOR DEC(__HP_aCC / 10000) +#define COMPILER_VERSION_MINOR DEC(__HP_aCC / 100 % 100) +#define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +#define COMPILER_ID "Compaq" +/* __DECCXX_VER = VVRRTPPPP */ +#define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER / 10000000) +#define COMPILER_VERSION_MINOR DEC(__DECCXX_VER / 100000 % 100) +#define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +#define COMPILER_ID "zOS" +/* __IBMCPP__ = VRP */ +#define COMPILER_VERSION_MAJOR DEC(__IBMCPP__ / 100) +#define COMPILER_VERSION_MINOR DEC(__IBMCPP__ / 10 % 10) +#define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__open_xl__) && defined(__clang__) +#define COMPILER_ID "IBMClang" +#define COMPILER_VERSION_MAJOR DEC(__open_xl_version__) +#define COMPILER_VERSION_MINOR DEC(__open_xl_release__) +#define COMPILER_VERSION_PATCH DEC(__open_xl_modification__) +#define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__) + +#elif defined(__ibmxl__) && defined(__clang__) +#define COMPILER_ID "XLClang" +#define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +#define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +#define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +#define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 +#define COMPILER_ID "XL" +/* __IBMCPP__ = VRP */ +#define COMPILER_VERSION_MAJOR DEC(__IBMCPP__ / 100) +#define COMPILER_VERSION_MINOR DEC(__IBMCPP__ / 10 % 10) +#define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +#define COMPILER_ID "VisualAge" +/* __IBMCPP__ = VRP */ +#define COMPILER_VERSION_MAJOR DEC(__IBMCPP__ / 100) +#define COMPILER_VERSION_MINOR DEC(__IBMCPP__ / 10 % 10) +#define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__NVCOMPILER) +#define COMPILER_ID "NVHPC" +#define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +#define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +#if defined(__NVCOMPILER_PATCHLEVEL__) +#define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +#endif + +#elif defined(__PGI) +#define COMPILER_ID "PGI" +#define COMPILER_VERSION_MAJOR DEC(__PGIC__) +#define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +#if defined(__PGIC_PATCHLEVEL__) +#define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +#endif + +#elif defined(__clang__) && defined(__cray__) +#define COMPILER_ID "CrayClang" +#define COMPILER_VERSION_MAJOR DEC(__cray_major__) +#define COMPILER_VERSION_MINOR DEC(__cray_minor__) +#define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__) +#define COMPILER_VERSION_INTERNAL_STR __clang_version__ + +#elif defined(_CRAYC) +#define COMPILER_ID "Cray" +#define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +#define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +#define COMPILER_ID "TI" +/* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +#define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__ / 1000000) +#define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__ / 1000 % 1000) +#define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__CLANG_FUJITSU) +#define COMPILER_ID "FujitsuClang" +#define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +#define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +#define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +#define COMPILER_VERSION_INTERNAL_STR __clang_version__ + +#elif defined(__FUJITSU) +#define COMPILER_ID "Fujitsu" +#if defined(__FCC_version__) +#define COMPILER_VERSION __FCC_version__ +#elif defined(__FCC_major__) +#define COMPILER_VERSION_MAJOR DEC(__FCC_major__) +#define COMPILER_VERSION_MINOR DEC(__FCC_minor__) +#define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__) +#endif +#if defined(__fcc_version) +#define COMPILER_VERSION_INTERNAL DEC(__fcc_version) +#elif defined(__FCC_VERSION) +#define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION) +#endif + +#elif defined(__ghs__) +#define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +#ifdef __GHS_VERSION_NUMBER +#define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +#define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +#define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +#endif + +#elif defined(__TASKING__) +#define COMPILER_ID "Tasking" +#define COMPILER_VERSION_MAJOR DEC(__VERSION__ / 1000) +#define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100) +#define COMPILER_VERSION_INTERNAL DEC(__VERSION__) + +#elif defined(__ORANGEC__) +#define COMPILER_ID "OrangeC" +#define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__) +#define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__) +#define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__) + +#elif defined(__SCO_VERSION__) +#define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +#define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 +/* __ARMCC_VERSION = VRRPPPP */ +#define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION / 1000000) +#define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION / 10000 % 100) +#define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else +/* __ARMCC_VERSION = VRPPPP */ +#define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION / 100000) +#define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION / 10000 % 10) +#define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + +#elif defined(__clang__) && defined(__apple_build_version__) +#define COMPILER_ID "AppleClang" +#if defined(_MSC_VER) +#define SIMULATE_ID "MSVC" +#endif +#define COMPILER_VERSION_MAJOR DEC(__clang_major__) +#define COMPILER_VERSION_MINOR DEC(__clang_minor__) +#define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +#if defined(_MSC_VER) +/* _MSC_VER = VVRR */ +#define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +#define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +#endif +#define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +#define COMPILER_ID "ARMClang" +#define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION / 1000000) +#define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION / 10000 % 100) +#define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION / 100 % 100) +#define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +#define COMPILER_ID "Clang" +#if defined(_MSC_VER) +#define SIMULATE_ID "MSVC" +#endif +#define COMPILER_VERSION_MAJOR DEC(__clang_major__) +#define COMPILER_VERSION_MINOR DEC(__clang_minor__) +#define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +#if defined(_MSC_VER) +/* _MSC_VER = VVRR */ +#define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +#define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +#endif + +#elif defined(__LCC__) \ + && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__)) +#define COMPILER_ID "LCC" +#define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100) +#define COMPILER_VERSION_MINOR DEC(__LCC__ % 100) +#if defined(__LCC_MINOR__) +#define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__) +#endif +#if defined(__GNUC__) && defined(__GNUC_MINOR__) +#define SIMULATE_ID "GNU" +#define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +#define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +#if defined(__GNUC_PATCHLEVEL__) +#define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +#endif +#endif + +#elif defined(__GNUC__) || defined(__GNUG__) +#define COMPILER_ID "GNU" +#if defined(__GNUC__) +#define COMPILER_VERSION_MAJOR DEC(__GNUC__) +#else +#define COMPILER_VERSION_MAJOR DEC(__GNUG__) +#endif +#if defined(__GNUC_MINOR__) +#define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +#endif +#if defined(__GNUC_PATCHLEVEL__) +#define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +#endif + +#elif defined(_MSC_VER) +#define COMPILER_ID "MSVC" +/* _MSC_VER = VVRR */ +#define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +#define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +#if defined(_MSC_FULL_VER) +#if _MSC_VER >= 1400 +/* _MSC_FULL_VER = VVRRPPPPP */ +#define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +#else +/* _MSC_FULL_VER = VVRRPPPP */ +#define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +#endif +#endif +#if defined(_MSC_BUILD) +#define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +#endif + +#elif defined(_ADI_COMPILER) +#define COMPILER_ID "ADSP" +#if defined(__VERSIONNUM__) +/* __VERSIONNUM__ = 0xVVRRPPTT */ +#define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF) +#define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF) +#define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF) +#define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +#define COMPILER_ID "IAR" +#if defined(__VER__) && defined(__ICCARM__) +#define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +#define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +#define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +#define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +#elif defined(__VER__) \ + && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) \ + || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) \ + || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +#define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +#define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100) * 100)) +#define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +#define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +#endif + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +#define COMPILER_ID "HP" + +#else /* unknown compiler */ +#define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const *info_compiler = "INFO" + ":" + "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const *info_simulate = "INFO" + ":" + "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const *qnxnto = "INFO" + ":" + "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" + ":" + "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +#define PLATFORM_ID "Linux" + +#elif defined(__MSYS__) +#define PLATFORM_ID "MSYS" + +#elif defined(__CYGWIN__) +#define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +#define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +#define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +#define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +#define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +#define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +#define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +#define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) \ + || defined(__aix__) +#define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +#define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +#define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +#define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +#define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +#define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +#define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +#define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +#define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +#define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +#define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +#define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +#define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +#define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +#define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +#if defined(__LINUX__) +#define PLATFORM_ID "Linux" + +#elif defined(__DOS__) +#define PLATFORM_ID "DOS" + +#elif defined(__OS2__) +#define PLATFORM_ID "OS2" + +#elif defined(__WINDOWS__) +#define PLATFORM_ID "Windows3x" + +#elif defined(__VXWORKS__) +#define PLATFORM_ID "VxWorks" + +#else /* unknown platform */ +#define PLATFORM_ID +#endif + +#elif defined(__INTEGRITY) +#if defined(INT_178B) +#define PLATFORM_ID "Integrity178" + +#else /* regular Integrity */ +#define PLATFORM_ID "Integrity" +#endif + +#elif defined(_ADI_COMPILER) +#define PLATFORM_ID "ADSP" + +#else /* unknown platform */ +#define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +#if defined(_M_IA64) +#define ARCHITECTURE_ID "IA64" + +#elif defined(_M_ARM64EC) +#define ARCHITECTURE_ID "ARM64EC" + +#elif defined(_M_X64) || defined(_M_AMD64) +#define ARCHITECTURE_ID "x64" + +#elif defined(_M_IX86) +#define ARCHITECTURE_ID "X86" + +#elif defined(_M_ARM64) +#define ARCHITECTURE_ID "ARM64" + +#elif defined(_M_ARM) +#if _M_ARM == 4 +#define ARCHITECTURE_ID "ARMV4I" +#elif _M_ARM == 5 +#define ARCHITECTURE_ID "ARMV5I" +#else +#define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +#endif + +#elif defined(_M_MIPS) +#define ARCHITECTURE_ID "MIPS" + +#elif defined(_M_SH) +#define ARCHITECTURE_ID "SHx" + +#else /* unknown architecture */ +#define ARCHITECTURE_ID "" +#endif + +#elif defined(__WATCOMC__) +#if defined(_M_I86) +#define ARCHITECTURE_ID "I86" + +#elif defined(_M_IX86) +#define ARCHITECTURE_ID "X86" + +#else /* unknown architecture */ +#define ARCHITECTURE_ID "" +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +#if defined(__ICCARM__) +#define ARCHITECTURE_ID "ARM" + +#elif defined(__ICCRX__) +#define ARCHITECTURE_ID "RX" + +#elif defined(__ICCRH850__) +#define ARCHITECTURE_ID "RH850" + +#elif defined(__ICCRL78__) +#define ARCHITECTURE_ID "RL78" + +#elif defined(__ICCRISCV__) +#define ARCHITECTURE_ID "RISCV" + +#elif defined(__ICCAVR__) +#define ARCHITECTURE_ID "AVR" + +#elif defined(__ICC430__) +#define ARCHITECTURE_ID "MSP430" + +#elif defined(__ICCV850__) +#define ARCHITECTURE_ID "V850" + +#elif defined(__ICC8051__) +#define ARCHITECTURE_ID "8051" + +#elif defined(__ICCSTM8__) +#define ARCHITECTURE_ID "STM8" + +#else /* unknown architecture */ +#define ARCHITECTURE_ID "" +#endif + +#elif defined(__ghs__) +#if defined(__PPC64__) +#define ARCHITECTURE_ID "PPC64" + +#elif defined(__ppc__) +#define ARCHITECTURE_ID "PPC" + +#elif defined(__ARM__) +#define ARCHITECTURE_ID "ARM" + +#elif defined(__x86_64__) +#define ARCHITECTURE_ID "x64" + +#elif defined(__i386__) +#define ARCHITECTURE_ID "X86" + +#else /* unknown architecture */ +#define ARCHITECTURE_ID "" +#endif + +#elif defined(__TI_COMPILER_VERSION__) +#if defined(__TI_ARM__) +#define ARCHITECTURE_ID "ARM" + +#elif defined(__MSP430__) +#define ARCHITECTURE_ID "MSP430" + +#elif defined(__TMS320C28XX__) +#define ARCHITECTURE_ID "TMS320C28x" + +#elif defined(__TMS320C6X__) || defined(_TMS320C6X) +#define ARCHITECTURE_ID "TMS320C6x" + +#else /* unknown architecture */ +#define ARCHITECTURE_ID "" +#endif + +#elif defined(__ADSPSHARC__) +#define ARCHITECTURE_ID "SHARC" + +#elif defined(__ADSPBLACKFIN__) +#define ARCHITECTURE_ID "Blackfin" + +#elif defined(__TASKING__) + +#if defined(__CTC__) || defined(__CPTC__) +#define ARCHITECTURE_ID "TriCore" + +#elif defined(__CMCS__) +#define ARCHITECTURE_ID "MCS" + +#elif defined(__CARM__) +#define ARCHITECTURE_ID "ARM" + +#elif defined(__CARC__) +#define ARCHITECTURE_ID "ARC" + +#elif defined(__C51__) +#define ARCHITECTURE_ID "8051" + +#elif defined(__CPCP__) +#define ARCHITECTURE_ID "PCP" + +#else +#define ARCHITECTURE_ID "" +#endif + +#else +#define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000) % 10)), ('0' + (((n) / 1000000) % 10)), \ + ('0' + (((n) / 100000) % 10)), ('0' + (((n) / 10000) % 10)), \ + ('0' + (((n) / 1000) % 10)), ('0' + (((n) / 100) % 10)), \ + ('0' + (((n) / 10) % 10)), ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n) >> 28 & 0xF)), ('0' + ((n) >> 24 & 0xF)), \ + ('0' + ((n) >> 20 & 0xF)), ('0' + ((n) >> 16 & 0xF)), \ + ('0' + ((n) >> 12 & 0xF)), ('0' + ((n) >> 8 & 0xF)), \ + ('0' + ((n) >> 4 & 0xF)), ('0' + ((n)&0xF)) + +/* Construct a string literal encoding the version number. */ +#ifdef COMPILER_VERSION +char const *info_version = "INFO" + ":" + "compiler_version[" COMPILER_VERSION "]"; + +/* Construct a string literal encoding the version number components. */ +#elif defined(COMPILER_VERSION_MAJOR) +char const info_version[] = {'I', + 'N', + 'F', + 'O', + ':', + 'c', + 'o', + 'm', + 'p', + 'i', + 'l', + 'e', + 'r', + '_', + 'v', + 'e', + 'r', + 's', + 'i', + 'o', + 'n', + '[', + COMPILER_VERSION_MAJOR, +#ifdef COMPILER_VERSION_MINOR + '.', + COMPILER_VERSION_MINOR, +#ifdef COMPILER_VERSION_PATCH + '.', + COMPILER_VERSION_PATCH, +#ifdef COMPILER_VERSION_TWEAK + '.', + COMPILER_VERSION_TWEAK, +#endif +#endif +#endif + ']', + '\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] + = {'I', 'N', 'F', 'O', ':', 'c', 'o', 'm', + 'p', 'i', 'l', 'e', 'r', '_', 'v', 'e', + 'r', 's', 'i', 'o', 'n', '_', 'i', 'n', + 't', 'e', 'r', 'n', 'a', 'l', '[', COMPILER_VERSION_INTERNAL, + ']', '\0'}; +#elif defined(COMPILER_VERSION_INTERNAL_STR) +char const *info_version_internal + = "INFO" + ":" + "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]"; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = {'I', + 'N', + 'F', + 'O', + ':', + 's', + 'i', + 'm', + 'u', + 'l', + 'a', + 't', + 'e', + '_', + 'v', + 'e', + 'r', + 's', + 'i', + 'o', + 'n', + '[', + SIMULATE_VERSION_MAJOR, +#ifdef SIMULATE_VERSION_MINOR + '.', + SIMULATE_VERSION_MINOR, +#ifdef SIMULATE_VERSION_PATCH + '.', + SIMULATE_VERSION_PATCH, +#ifdef SIMULATE_VERSION_TWEAK + '.', + SIMULATE_VERSION_TWEAK, +#endif +#endif +#endif + ']', + '\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const *info_platform = "INFO" + ":" + "platform[" PLATFORM_ID "]"; +char const *info_arch = "INFO" + ":" + "arch[" ARCHITECTURE_ID "]"; + +#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L +#if defined(__INTEL_CXX11_MODE__) +#if defined(__cpp_aggregate_nsdmi) +#define CXX_STD 201402L +#else +#define CXX_STD 201103L +#endif +#else +#define CXX_STD 199711L +#endif +#elif defined(_MSC_VER) && defined(_MSVC_LANG) +#define CXX_STD _MSVC_LANG +#else +#define CXX_STD __cplusplus +#endif + +const char *info_language_standard_default = "INFO" + ":" + "standard_default[" +#if CXX_STD > 202002L + "23" +#elif CXX_STD > 201703L + "20" +#elif CXX_STD >= 201703L + "17" +#elif CXX_STD >= 201402L + "14" +#elif CXX_STD >= 201103L + "11" +#else + "98" +#endif + "]"; + +const char *info_language_extensions_default = "INFO" + ":" + "extensions_default[" +#if(defined(__clang__) || defined(__GNUC__) || defined(__xlC__) \ + || defined(__TI_COMPILER_VERSION__)) \ + && !defined(__STRICT_ANSI__) + "ON" +#else + "OFF" +#endif + "]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char *argv[]) { + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_standard_default[argc]; + require += info_language_extensions_default[argc]; + (void)argv; + return require; +} diff --git a/CMakeFiles/3.28.3/CompilerIdCXX/a.out b/CMakeFiles/3.28.3/CompilerIdCXX/a.out new file mode 100755 index 0000000000..c8ced32cf0 Binary files /dev/null and b/CMakeFiles/3.28.3/CompilerIdCXX/a.out differ diff --git a/CMakeFiles/CMakeConfigureLog.yaml b/CMakeFiles/CMakeConfigureLog.yaml new file mode 100644 index 0000000000..798b64ba0b --- /dev/null +++ b/CMakeFiles/CMakeConfigureLog.yaml @@ -0,0 +1,509 @@ + +--- +events: + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake-3.28/Modules/CMakeDetermineSystem.cmake:233 (message)" + - "CMakeLists.txt:3 (project)" + message: | + The system is: Linux - 6.8.0-51-generic - x86_64 + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake-3.28/Modules/CMakeDetermineCompilerId.cmake:17 (message)" + - "/usr/share/cmake-3.28/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)" + - "/usr/share/cmake-3.28/Modules/CMakeDetermineCXXCompiler.cmake:126 (CMAKE_DETERMINE_COMPILER_ID)" + - "CMakeLists.txt:3 (project)" + message: | + Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. + Compiler: /usr/bin/c++ + Build flags: + Id flags: + + The output was: + 0 + + + Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out" + + The CXX compiler identification is GNU, found in: + /home/thomas/ttk/CMakeFiles/3.28.3/CompilerIdCXX/a.out + + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake-3.28/Modules/CMakeDetermineCompilerId.cmake:17 (message)" + - "/usr/share/cmake-3.28/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)" + - "/usr/share/cmake-3.28/Modules/CMakeDetermineCCompiler.cmake:123 (CMAKE_DETERMINE_COMPILER_ID)" + - "CMakeLists.txt:3 (project)" + message: | + Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. + Compiler: /usr/bin/cc + Build flags: + Id flags: + + The output was: + 0 + + + Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out" + + The C compiler identification is GNU, found in: + /home/thomas/ttk/CMakeFiles/3.28.3/CompilerIdC/a.out + + - + kind: "try_compile-v1" + backtrace: + - "/usr/share/cmake-3.28/Modules/CMakeDetermineCompilerABI.cmake:57 (try_compile)" + - "/usr/share/cmake-3.28/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:3 (project)" + checks: + - "Detecting CXX compiler ABI info" + directories: + source: "/home/thomas/ttk/CMakeFiles/CMakeScratch/TryCompile-nPqGit" + binary: "/home/thomas/ttk/CMakeFiles/CMakeScratch/TryCompile-nPqGit" + cmakeVariables: + CMAKE_CXX_FLAGS: "" + CMAKE_CXX_FLAGS_DEBUG: "-g" + CMAKE_EXE_LINKER_FLAGS: "" + buildResult: + variable: "CMAKE_CXX_ABI_COMPILED" + cached: true + stdout: | + Change Dir: '/home/thomas/ttk/CMakeFiles/CMakeScratch/TryCompile-nPqGit' + + Run Build Command(s): /usr/bin/ninja -v cmTC_4c381 + [1/2] /usr/bin/c++ -v -o CMakeFiles/cmTC_4c381.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp + Using built-in specs. + COLLECT_GCC=/usr/bin/c++ + OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa + OFFLOAD_TARGET_DEFAULT=1 + Target: x86_64-linux-gnu + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_4c381.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_4c381.dir/' + /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_4c381.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/cc1TILuj.s + GNU C++17 (Ubuntu 13.3.0-6ubuntu2~24.04) version 13.3.0 (x86_64-linux-gnu) + compiled by GNU C version 13.3.0, GMP version 6.3.0, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.26-GMP + + GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 + ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/13" + ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include" + #include "..." search starts here: + #include <...> search starts here: + /usr/include/c++/13 + /usr/include/x86_64-linux-gnu/c++/13 + /usr/include/c++/13/backward + /usr/lib/gcc/x86_64-linux-gnu/13/include + /usr/local/include + /usr/include/x86_64-linux-gnu + /usr/include + End of search list. + Compiler executable checksum: c81c05345ce537099dafd5580045814a + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_4c381.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_4c381.dir/' + as -v --64 -o CMakeFiles/cmTC_4c381.dir/CMakeCXXCompilerABI.cpp.o /tmp/cc1TILuj.s + GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42 + COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_4c381.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_4c381.dir/CMakeCXXCompilerABI.cpp.' + [2/2] : && /usr/bin/c++ -v CMakeFiles/cmTC_4c381.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_4c381 && : + Using built-in specs. + COLLECT_GCC=/usr/bin/c++ + COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper + OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa + OFFLOAD_TARGET_DEFAULT=1 + Target: x86_64-linux-gnu + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) + COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_4c381' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_4c381.' + /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccFuZgKP.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_4c381 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. CMakeFiles/cmTC_4c381.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_4c381' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_4c381.' + + exitCode: 0 + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake-3.28/Modules/CMakeDetermineCompilerABI.cmake:127 (message)" + - "/usr/share/cmake-3.28/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:3 (project)" + message: | + Parsed CXX implicit include dir info: rv=done + found start of include info + found start of implicit include info + add: [/usr/include/c++/13] + add: [/usr/include/x86_64-linux-gnu/c++/13] + add: [/usr/include/c++/13/backward] + add: [/usr/lib/gcc/x86_64-linux-gnu/13/include] + add: [/usr/local/include] + add: [/usr/include/x86_64-linux-gnu] + add: [/usr/include] + end of search list found + collapse include dir [/usr/include/c++/13] ==> [/usr/include/c++/13] + collapse include dir [/usr/include/x86_64-linux-gnu/c++/13] ==> [/usr/include/x86_64-linux-gnu/c++/13] + collapse include dir [/usr/include/c++/13/backward] ==> [/usr/include/c++/13/backward] + collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/13/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/13/include] + collapse include dir [/usr/local/include] ==> [/usr/local/include] + collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu] + collapse include dir [/usr/include] ==> [/usr/include] + implicit include dirs: [/usr/include/c++/13;/usr/include/x86_64-linux-gnu/c++/13;/usr/include/c++/13/backward;/usr/lib/gcc/x86_64-linux-gnu/13/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include] + + + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake-3.28/Modules/CMakeDetermineCompilerABI.cmake:159 (message)" + - "/usr/share/cmake-3.28/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:3 (project)" + message: | + Parsed CXX implicit link information: + link line regex: [^( *|.*[/\\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] + ignore line: [Change Dir: '/home/thomas/ttk/CMakeFiles/CMakeScratch/TryCompile-nPqGit'] + ignore line: [] + ignore line: [Run Build Command(s): /usr/bin/ninja -v cmTC_4c381] + ignore line: [[1/2] /usr/bin/c++ -v -o CMakeFiles/cmTC_4c381.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) ] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_4c381.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_4c381.dir/'] + ignore line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /usr/share/cmake-3.28/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_4c381.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/cc1TILuj.s] + ignore line: [GNU C++17 (Ubuntu 13.3.0-6ubuntu2~24.04) version 13.3.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 13.3.0 GMP version 6.3.0 MPFR version 4.2.1 MPC version 1.3.1 isl version isl-0.26-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/13"] + ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /usr/include/c++/13] + ignore line: [ /usr/include/x86_64-linux-gnu/c++/13] + ignore line: [ /usr/include/c++/13/backward] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/13/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/include/x86_64-linux-gnu] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [Compiler executable checksum: c81c05345ce537099dafd5580045814a] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_4c381.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_4c381.dir/'] + ignore line: [ as -v --64 -o CMakeFiles/cmTC_4c381.dir/CMakeCXXCompilerABI.cpp.o /tmp/cc1TILuj.s] + ignore line: [GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42] + ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_4c381.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_4c381.dir/CMakeCXXCompilerABI.cpp.'] + ignore line: [[2/2] : && /usr/bin/c++ -v CMakeFiles/cmTC_4c381.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_4c381 && :] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) ] + ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_4c381' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_4c381.'] + link line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccFuZgKP.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_4c381 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. CMakeFiles/cmTC_4c381.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/libexec/gcc/x86_64-linux-gnu/13/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccFuZgKP.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_4c381] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/13] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..] + arg [CMakeFiles/cmTC_4c381.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [-lstdc++] ==> lib [stdc++] + arg [-lm] ==> lib [m] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [-lc] ==> lib [c] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> [/usr/lib/x86_64-linux-gnu/Scrt1.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> [/usr/lib/x86_64-linux-gnu/crti.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] ==> [/usr/lib/x86_64-linux-gnu/crtn.o] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13] ==> [/usr/lib/gcc/x86_64-linux-gnu/13] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> [/usr/lib] + implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc] + implicit objs: [/usr/lib/x86_64-linux-gnu/Scrt1.o;/usr/lib/x86_64-linux-gnu/crti.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o;/usr/lib/x86_64-linux-gnu/crtn.o] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/13;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + + - + kind: "try_compile-v1" + backtrace: + - "/usr/share/cmake-3.28/Modules/CMakeDetermineCompilerABI.cmake:57 (try_compile)" + - "/usr/share/cmake-3.28/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:3 (project)" + checks: + - "Detecting C compiler ABI info" + directories: + source: "/home/thomas/ttk/CMakeFiles/CMakeScratch/TryCompile-7p0fXl" + binary: "/home/thomas/ttk/CMakeFiles/CMakeScratch/TryCompile-7p0fXl" + cmakeVariables: + CMAKE_C_FLAGS: "" + CMAKE_C_FLAGS_DEBUG: "-g" + CMAKE_EXE_LINKER_FLAGS: "" + buildResult: + variable: "CMAKE_C_ABI_COMPILED" + cached: true + stdout: | + Change Dir: '/home/thomas/ttk/CMakeFiles/CMakeScratch/TryCompile-7p0fXl' + + Run Build Command(s): /usr/bin/ninja -v cmTC_eb6d8 + [1/2] /usr/bin/cc -v -o CMakeFiles/cmTC_eb6d8.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.28/Modules/CMakeCCompilerABI.c + Using built-in specs. + COLLECT_GCC=/usr/bin/cc + OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa + OFFLOAD_TARGET_DEFAULT=1 + Target: x86_64-linux-gnu + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_eb6d8.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_eb6d8.dir/' + /usr/libexec/gcc/x86_64-linux-gnu/13/cc1 -quiet -v -imultiarch x86_64-linux-gnu /usr/share/cmake-3.28/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_eb6d8.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccY17BaA.s + GNU C17 (Ubuntu 13.3.0-6ubuntu2~24.04) version 13.3.0 (x86_64-linux-gnu) + compiled by GNU C version 13.3.0, GMP version 6.3.0, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.26-GMP + + GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 + ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed" + ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include" + #include "..." search starts here: + #include <...> search starts here: + /usr/lib/gcc/x86_64-linux-gnu/13/include + /usr/local/include + /usr/include/x86_64-linux-gnu + /usr/include + End of search list. + Compiler executable checksum: 38987c28e967c64056a6454abdef726e + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_eb6d8.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_eb6d8.dir/' + as -v --64 -o CMakeFiles/cmTC_eb6d8.dir/CMakeCCompilerABI.c.o /tmp/ccY17BaA.s + GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42 + COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_eb6d8.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_eb6d8.dir/CMakeCCompilerABI.c.' + [2/2] : && /usr/bin/cc -v CMakeFiles/cmTC_eb6d8.dir/CMakeCCompilerABI.c.o -o cmTC_eb6d8 && : + Using built-in specs. + COLLECT_GCC=/usr/bin/cc + COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper + OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa + OFFLOAD_TARGET_DEFAULT=1 + Target: x86_64-linux-gnu + Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 + Thread model: posix + Supported LTO compression algorithms: zlib zstd + gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) + COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/ + LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/ + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_eb6d8' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_eb6d8.' + /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccRbELoN.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_eb6d8 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. CMakeFiles/cmTC_eb6d8.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o + COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_eb6d8' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_eb6d8.' + + exitCode: 0 + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake-3.28/Modules/CMakeDetermineCompilerABI.cmake:127 (message)" + - "/usr/share/cmake-3.28/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:3 (project)" + message: | + Parsed C implicit include dir info: rv=done + found start of include info + found start of implicit include info + add: [/usr/lib/gcc/x86_64-linux-gnu/13/include] + add: [/usr/local/include] + add: [/usr/include/x86_64-linux-gnu] + add: [/usr/include] + end of search list found + collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/13/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/13/include] + collapse include dir [/usr/local/include] ==> [/usr/local/include] + collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu] + collapse include dir [/usr/include] ==> [/usr/include] + implicit include dirs: [/usr/lib/gcc/x86_64-linux-gnu/13/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include] + + + - + kind: "message-v1" + backtrace: + - "/usr/share/cmake-3.28/Modules/CMakeDetermineCompilerABI.cmake:159 (message)" + - "/usr/share/cmake-3.28/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)" + - "CMakeLists.txt:3 (project)" + message: | + Parsed C implicit link information: + link line regex: [^( *|.*[/\\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)] + ignore line: [Change Dir: '/home/thomas/ttk/CMakeFiles/CMakeScratch/TryCompile-7p0fXl'] + ignore line: [] + ignore line: [Run Build Command(s): /usr/bin/ninja -v cmTC_eb6d8] + ignore line: [[1/2] /usr/bin/cc -v -o CMakeFiles/cmTC_eb6d8.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake-3.28/Modules/CMakeCCompilerABI.c] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/cc] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) ] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_eb6d8.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_eb6d8.dir/'] + ignore line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/cc1 -quiet -v -imultiarch x86_64-linux-gnu /usr/share/cmake-3.28/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_eb6d8.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/ccY17BaA.s] + ignore line: [GNU C17 (Ubuntu 13.3.0-6ubuntu2~24.04) version 13.3.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 13.3.0 GMP version 6.3.0 MPFR version 4.2.1 MPC version 1.3.1 isl version isl-0.26-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/include-fixed"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/13/../../../../x86_64-linux-gnu/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/13/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/include/x86_64-linux-gnu] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [Compiler executable checksum: 38987c28e967c64056a6454abdef726e] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_eb6d8.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_eb6d8.dir/'] + ignore line: [ as -v --64 -o CMakeFiles/cmTC_eb6d8.dir/CMakeCCompilerABI.c.o /tmp/ccY17BaA.s] + ignore line: [GNU assembler version 2.42 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.42] + ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_eb6d8.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_eb6d8.dir/CMakeCCompilerABI.c.'] + ignore line: [[2/2] : && /usr/bin/cc -v CMakeFiles/cmTC_eb6d8.dir/CMakeCCompilerABI.c.o -o cmTC_eb6d8 && :] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/cc] + ignore line: [COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 13.3.0-6ubuntu2~24.04' --with-bugurl=file:///usr/share/doc/gcc-13/README.Bugs --enable-languages=c ada c++ go d fortran objc obj-c++ m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-13 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/libexec --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-libstdcxx-backtrace --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-nvptx/usr amdgcn-amdhsa=/build/gcc-13-fG75Ri/gcc-13-13.3.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2] + ignore line: [Thread model: posix] + ignore line: [Supported LTO compression algorithms: zlib zstd] + ignore line: [gcc version 13.3.0 (Ubuntu 13.3.0-6ubuntu2~24.04) ] + ignore line: [COMPILER_PATH=/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/13/:/usr/libexec/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/13/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/13/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_eb6d8' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_eb6d8.'] + link line: [ /usr/libexec/gcc/x86_64-linux-gnu/13/collect2 -plugin /usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper -plugin-opt=-fresolution=/tmp/ccRbELoN.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_eb6d8 /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/13 -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/13/../../.. CMakeFiles/cmTC_eb6d8.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/libexec/gcc/x86_64-linux-gnu/13/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/libexec/gcc/x86_64-linux-gnu/13/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/libexec/gcc/x86_64-linux-gnu/13/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccRbELoN.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_eb6d8] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/13] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..] + arg [CMakeFiles/cmTC_eb6d8.dir/CMakeCCompilerABI.c.o] ==> ignore + arg [-lgcc] ==> lib [gcc] + arg [--push-state] ==> ignore + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--pop-state] ==> ignore + arg [-lc] ==> lib [c] + arg [-lgcc] ==> lib [gcc] + arg [--push-state] ==> ignore + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--pop-state] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/Scrt1.o] ==> [/usr/lib/x86_64-linux-gnu/Scrt1.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crti.o] ==> [/usr/lib/x86_64-linux-gnu/crti.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu/crtn.o] ==> [/usr/lib/x86_64-linux-gnu/crtn.o] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13] ==> [/usr/lib/gcc/x86_64-linux-gnu/13] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/13/../../..] ==> [/usr/lib] + implicit libs: [gcc;gcc_s;c;gcc;gcc_s] + implicit objs: [/usr/lib/x86_64-linux-gnu/Scrt1.o;/usr/lib/x86_64-linux-gnu/crti.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtbeginS.o;/usr/lib/gcc/x86_64-linux-gnu/13/crtendS.o;/usr/lib/x86_64-linux-gnu/crtn.o] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/13;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + +... diff --git a/CMakeFiles/cmake.check_cache b/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000000..3dccd73172 --- /dev/null +++ b/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/core/base/common/DataTypes.h b/core/base/common/DataTypes.h index 918370cfb2..47c05fdedc 100644 --- a/core/base/common/DataTypes.h +++ b/core/base/common/DataTypes.h @@ -63,6 +63,14 @@ namespace ttk { const char MorseSmaleDescendingName[] = "DescendingManifold"; const char MorseSmaleManifoldName[] = "MorseSmaleManifold"; + // default name for SeparatrixStability + + const char SeparatrixStabilityOccurrenceCount[] = "Occurrence"; + const char SeparatrixStabilityIsomorphismClassId[] = "IsomorphismClassId"; + const char SeparatrixStabilityMatchingIdName[] = "MatchingIdInBlock"; + const char SeparatrixStabilityMatchingIdSeparatrixName[] + = "SeparatrixMatchingIdInBlock"; + // default names for persistence diagram meta data const char PersistenceCriticalTypeName[] = "CriticalType"; const char PersistenceBirthName[] = "Birth"; diff --git a/core/base/localizedTopologicalSimplification/LocalizedTopologicalSimplification.h b/core/base/localizedTopologicalSimplification/LocalizedTopologicalSimplification.h index 7d09b2890a..b0fb7f6276 100644 --- a/core/base/localizedTopologicalSimplification/LocalizedTopologicalSimplification.h +++ b/core/base/localizedTopologicalSimplification/LocalizedTopologicalSimplification.h @@ -142,7 +142,8 @@ namespace ttk { const IT nVertices = triangulation->getNumberOfVertices(); #ifdef TTK_ENABLE_OPENMP -#pragma omp parallel for num_threads(this->threadNumber_) +#pragma omp parallel for num_threads( \ + this->threadNumber_) if(nAuthorizedExtremaIndices > 1000) #endif // TTK_ENABLE_OPENMP for(IT i = 0; i < nAuthorizedExtremaIndices; i++) authorizationMask[authorizedExtremaIndices[i]] = -2; diff --git a/core/base/separatrixStability/CMakeLists.txt b/core/base/separatrixStability/CMakeLists.txt new file mode 100644 index 0000000000..f50c0e86d8 --- /dev/null +++ b/core/base/separatrixStability/CMakeLists.txt @@ -0,0 +1,9 @@ +ttk_add_base_library(separatrixStability + SOURCES + SeparatrixStability.cpp + HEADERS + SeparatrixStability.h + DEPENDS + triangulation + assignmentSolver +) \ No newline at end of file diff --git a/core/base/separatrixStability/SeparatrixStability.cpp b/core/base/separatrixStability/SeparatrixStability.cpp new file mode 100644 index 0000000000..35f16f1868 --- /dev/null +++ b/core/base/separatrixStability/SeparatrixStability.cpp @@ -0,0 +1,424 @@ +#include +#include + +#include +ttk::SeparatrixStability::SeparatrixStability() { + // inherited from Debug: prefix will be printed at the beginning of every msg + this->setDebugMsgPrefix("SeparatrixStability"); +} + +void ttk::SeparatrixStability::assignmentSolver( + std::vector> &costMatrix, + std::vector &matching) { + if(costMatrix.size() > 0) { + ttk::AssignmentAuction solver; + solver.setInput(costMatrix); + solver.run(matching); + solver.clearMatrix(); + } +} + +void ttk::SeparatrixStability::buildCostMatrix( + const std::vector> &coords1, + const std::vector> &coords2, + const std::vector &scalars1, + const std::vector &scalars2, + std::vector> &costMatrix) { + int size_1 = coords1.size(); + int size_2 = coords2.size(); + if(size_1 == size_2) { + costMatrix.resize(size_1); + for(int i = 0; i < size_1; i++) { + costMatrix[i].resize(size_1); + } + for(int i = 0; i < size_1; i++) { + for(int j = 0; j < size_1; j++) { + costMatrix[i][j] + = std::sqrt(Px * std::pow(coords1[i][0] - coords2[j][0], 2) + + Py * std::pow(coords1[i][1] - coords2[j][1], 2) + + Pz * std::pow(coords1[i][2] - coords2[j][2], 2) + + Pf * std::pow(scalars1[i] - scalars2[j], 2)); + } + } + } else { + + costMatrix.resize(size_1 + size_2); + for(int i = 0; i < size_1 + size_2; i++) { + costMatrix[i].resize(size_1 + size_2); + } + for(int i = 0; i < size_1; i++) { + for(int j = 0; j < size_2; j++) { + costMatrix[i][j] + = std::sqrt(Px * std::pow(coords1[i][0] - coords2[j][0], 2) + + Py * std::pow(coords1[i][1] - coords2[j][1], 2) + + Pz * std::pow(coords1[i][2] - coords2[j][2], 2)); + } + } + for(int i = size_1; i < size_1 + size_2; i++) { + for(int j = 0; j < size_2; j++) { + costMatrix[i][j] = epsilon; + } + } + for(int i = 0; i < size_1; i++) { + for(int j = size_2; j < size_2 + size_1; j++) { + costMatrix[i][j] = epsilon; + } + } + } +} + +int ttk::SeparatrixStability::buildMatchingsWithOtherBlocks( + const std::vector>> &coords, + const std::vector> &scalars, + const int &block_id, + std::vector> &matchings) { + + int n_blocks = coords.size(); + + for(int i = 0; i < n_blocks; i++) { + if(i == block_id) + continue; + std::vector> costMatrix; + int blockIdInMatchingVector = i < block_id ? i : i - 1; + buildCostMatrix( + coords[block_id], coords[i], scalars[block_id], scalars[i], costMatrix); + assignmentSolver(costMatrix, matchings[blockIdInMatchingVector]); + } + return 1; +} + +int ttk::SeparatrixStability::buildOccurrenceArraysFull( + const std::vector &adjacencyMatrices, + const int &n_separatrices, + const std::vector>> &coordsSource, + const std::vector>> &coordsDestination, + const std::vector> &scalarsSource, + const std::vector> &scalarsDestination, + const int &block_id, + std::vector &edgeOccurrences, + std::vector &isIsomorphicWith, + std::vector> &matchingArraySource, + std::vector> &matchingArrayDestination, + std::vector> &matchingArraySeparatrix) { + + int n_blocks = adjacencyMatrices.size(); + int n_sourceThisBlock = adjacencyMatrices[block_id].size(); + int n_destinationThisBlock = adjacencyMatrices[block_id][0].size(); + + isIsomorphicWith.resize(n_blocks, true); + matchingArraySource.resize(n_blocks, std::vector()); + for(int k = 0; k < n_blocks; k++) { + matchingArraySource[k].resize(adjacencyMatrices[k].size(), -2); + } + matchingArrayDestination.resize(n_blocks, std::vector()); + for(int k = 0; k < n_blocks; k++) { + matchingArrayDestination[k].resize(adjacencyMatrices[k][0].size(), -2); + } + + edgeOccurrences.resize(n_separatrices, 1); + + std::vector> matchingsSource(n_blocks - 1); + std::vector> matchingsDestination(n_blocks - 1); + + buildMatchingsWithOtherBlocks( + coordsSource, scalarsSource, block_id, matchingsSource); + buildMatchingsWithOtherBlocks( + coordsDestination, scalarsDestination, block_id, matchingsDestination); + + for(int k = 0; k < n_blocks; k++) { + + int n_source = adjacencyMatrices[k].size(); + int n_destination = adjacencyMatrices[k][0].size(); + + if(k == block_id) { + for(int i = 0; i < n_destination; i++) { + matchingArrayDestination[k][i] = i; + } + for(int i = 0; i < n_source; i++) { + matchingArraySource[k][i] = i; + } + for(int i = 0; i < n_separatrices; i++) { + matchingArraySeparatrix[k][i] = i; + } + continue; + } + + int otherBlockdIdMatchingsVector = k < block_id ? k : k - 1; + int matchingsSourceSize + = n_source == n_sourceThisBlock ? n_source : n_source + n_sourceThisBlock; + int matchingsDestinationSize = n_destination == n_destinationThisBlock + ? n_destination + : n_destination + n_destinationThisBlock; + for(int i = 0; i < matchingsSourceSize; i++) { + for(int j = 0; j < matchingsDestinationSize; j++) { + int thisBlockSourceId + = std::get<0>(matchingsSource[otherBlockdIdMatchingsVector][i]); + int thisBlockDestinationId + = std::get<0>(matchingsDestination[otherBlockdIdMatchingsVector][j]); + int otherBlockSourceId + = std::get<1>(matchingsSource[otherBlockdIdMatchingsVector][i]); + int otherBlockDestinationId + = std::get<1>(matchingsDestination[otherBlockdIdMatchingsVector][j]); + if(otherBlockDestinationId >= n_destination + || otherBlockSourceId >= n_source) + continue; + if(thisBlockSourceId >= n_sourceThisBlock) { + matchingArraySource[k][otherBlockSourceId] = -1; + } + if(thisBlockDestinationId >= n_destinationThisBlock) { + matchingArrayDestination[k][otherBlockDestinationId] = -1; + } + if(thisBlockDestinationId >= n_destinationThisBlock + || thisBlockSourceId >= n_sourceThisBlock) + continue; + + matchingArrayDestination[k][otherBlockDestinationId] + = thisBlockDestinationId; + matchingArraySource[k][otherBlockSourceId] = thisBlockSourceId; + if(adjacencyMatrices[block_id][thisBlockSourceId] + [thisBlockDestinationId] + != -1 + && adjacencyMatrices[k][otherBlockSourceId][otherBlockDestinationId] + != -1) { + int separatriceId = adjacencyMatrices[block_id][thisBlockSourceId] + [thisBlockDestinationId]; + int separatriceIdInOtherBlock + = adjacencyMatrices[k][otherBlockSourceId][otherBlockDestinationId]; + edgeOccurrences[separatriceId]++; + matchingArraySeparatrix[k][separatriceIdInOtherBlock] = separatriceId; + } else if((adjacencyMatrices[block_id][thisBlockSourceId] + [thisBlockDestinationId] + != -1) + ^ (adjacencyMatrices[k][otherBlockSourceId] + [otherBlockDestinationId] + != -1)) { + isIsomorphicWith[k] = false; + } + } + } + } + // re-index the matching id for the source point so that they are different + // from the destination point id + int offset + = std::max_element( + matchingArrayDestination.begin(), matchingArrayDestination.end(), + [](const std::vector &a, const std::vector &b) { + return a.size() < b.size(); + }) + ->size(); + for(int i = 0; i < n_blocks; i++) { + int sourceSize = matchingArraySource[i].size(); + for(int j = 0; j < sourceSize; j++) { + matchingArraySource[i][j] += offset; + } + } + + return 1; +} + +void ttk::SeparatrixStability::computeGraphMinor( + const GraphMatrixFull &adjacencyMatrixFull, + GraphMatrixMinor &adjacencyMatrix) { + int n_row = adjacencyMatrixFull.size(); + int n_col = adjacencyMatrixFull[0].size(); + adjacencyMatrix.resize(n_col); + for(int i = 0; i < n_col; i++) { + adjacencyMatrix[i].resize(n_col); + } + + for(int i = 0; i < n_row; i++) { + for(int j = 0; j < n_col; j++) { + if(adjacencyMatrixFull[i][j] != -1) { + for(int k = 0; k < j; k++) { + if(adjacencyMatrixFull[i][k] != -1) { + std::pair newEdge = std::make_pair( + adjacencyMatrixFull[i][j], adjacencyMatrixFull[i][k]); + adjacencyMatrix[k][j].push_back(newEdge); + } + } + } + } + } +} + +int ttk::SeparatrixStability::buildOccurrenceArraysMinor( + const std::vector &adjacencyMatricesFull, + const int &n_separatrices, + const std::vector>> &coords, + const std::vector> &scalars, + const int &block_id, + std::vector &edgeOccurrences, + std::vector &isIsomorphicWith, + std::vector> &matchingArray, + std::vector> &matchingArraySeparatrix) { + + int n_blocks = adjacencyMatricesFull.size(); + isIsomorphicWith.resize(n_blocks, true); + + std::vector adjacencyMatricesMinor(n_blocks); + + for(int i = 0; i < n_blocks; i++) { + computeGraphMinor(adjacencyMatricesFull[i], adjacencyMatricesMinor[i]); + } + + int n_pointsThisBlock = adjacencyMatricesMinor[block_id].size(); + + matchingArray.resize(n_blocks, std::vector()); + for(int i = 0; i < n_blocks; i++) { + matchingArray[i].resize(adjacencyMatricesMinor[i].size(), -2); + } + + for(int i = 0; i < n_pointsThisBlock; i++) { + matchingArray[block_id][i] = i; + } + + edgeOccurrences.resize(n_separatrices); + + for(int i = 0; i < n_pointsThisBlock; i++) { + for(int j = 0; j < n_pointsThisBlock; j++) { + if(!adjacencyMatricesMinor[block_id][i][j].empty()) { + ; + for(auto edge : adjacencyMatricesMinor[block_id][i][j]) { + edgeOccurrences[edge.first] = 1; + edgeOccurrences[edge.second] = 1; + } + } + } + } + + int mergeSeparatrixCount{}; + for(int i = 0; i < n_pointsThisBlock; i++) { + for(int j = 0; j < n_pointsThisBlock; j++) { + if(!adjacencyMatricesMinor[block_id][i][j].empty()) { + for(auto e : adjacencyMatricesMinor[block_id][i][j]) { + int sepId_1 = e.first; + int sepId_2 = e.second; + matchingArraySeparatrix[block_id][sepId_1] = mergeSeparatrixCount; + matchingArraySeparatrix[block_id][sepId_2] = mergeSeparatrixCount; + mergeSeparatrixCount++; + } + } + } + } + + std::vector> matchings(n_blocks - 1); + buildMatchingsWithOtherBlocks(coords, scalars, block_id, matchings); + + for(int k = 0; k < n_blocks; k++) { + if(k == block_id) + continue; + int n_points = adjacencyMatricesMinor[k].size(); + + int otherBlockdIdMatchingsVector = k < block_id ? k : k - 1; + int n_matchings + = n_points == n_pointsThisBlock ? n_points : n_points + n_pointsThisBlock; + + for(int i = 0; i < n_matchings; i++) { + int thisBlockPointId + = std::get<0>(matchings[otherBlockdIdMatchingsVector][i]); + int otherBlockPointId + = std::get<1>(matchings[otherBlockdIdMatchingsVector][i]); + if(otherBlockPointId >= n_points) + continue; + if(thisBlockPointId >= n_pointsThisBlock) { + matchingArray[k][otherBlockPointId] = -1; + continue; + } + matchingArray[k][otherBlockPointId] + = matchingArray[block_id][thisBlockPointId]; + } + + for(int i = 0; i < n_matchings; i++) { + for(int j = i + 1; j < n_matchings; j++) { + int tmp2 = std::get<0>(matchings[otherBlockdIdMatchingsVector][j]); + int tmp1 = std::get<0>(matchings[otherBlockdIdMatchingsVector][i]); + int thisBlockVertex1 = std::min(tmp1, tmp2); + int thisBlockVertex2 = std::max(tmp1, tmp2); + tmp1 = std::get<1>(matchings[otherBlockdIdMatchingsVector][i]); + tmp2 = std::get<1>(matchings[otherBlockdIdMatchingsVector][j]); + int otherBlockVertex1 = std::min(tmp1, tmp2); + int otherBlockVertex2 = std::max(tmp1, tmp2); + if(thisBlockVertex1 >= n_pointsThisBlock + || thisBlockVertex2 >= n_pointsThisBlock + || otherBlockVertex1 >= n_points || otherBlockVertex2 >= n_points) + continue; + bool existsInOtherBlock + = !adjacencyMatricesMinor[k][otherBlockVertex1][otherBlockVertex2] + .empty(); + + if(!adjacencyMatricesMinor[block_id][thisBlockVertex1][thisBlockVertex2] + .empty() + && existsInOtherBlock > 0) { + for(auto edge : adjacencyMatricesMinor[block_id][thisBlockVertex1] + [thisBlockVertex2]) { + std::pair edgeInOtherBlock + = adjacencyMatricesMinor[k][otherBlockVertex1][otherBlockVertex2] + [0]; + edgeOccurrences[edge.first] += existsInOtherBlock; + edgeOccurrences[edge.second] += existsInOtherBlock; + matchingArraySeparatrix[k][edgeInOtherBlock.first] + = matchingArraySeparatrix[block_id][edge.first]; + matchingArraySeparatrix[k][edgeInOtherBlock.second] + = matchingArraySeparatrix[block_id][edge.second]; + } + } else if((!adjacencyMatricesMinor[block_id][thisBlockVertex1] + [thisBlockVertex2] + .empty()) + ^ existsInOtherBlock) { + isIsomorphicWith[k] = false; + } + } + } + } + return 1; +} + +int ttk::SeparatrixStability::buildOccurrenceArrays( + const std::vector &adjacencyMatrices, + const std::vector &separatrixCountForEachBlock, + const std::vector>> &coordsSource, + const std::vector>> &coordsDestination, + const std::vector> &scalarsSource, + const std::vector> &scalarsDestination, + const bool &mergeEdgesOnSaddles, + std::vector> &edgesOccurrencesForEachBlock, + std::vector> &isomorphismForEachBlock, + std::vector>> &matchingArrayForEachBlockSource, + std::vector>> + &matchingArrayForEachBlockDestination, + std::vector>> + &matchingArraySeparatrixForEachBlock) { + + int n_blocks = adjacencyMatrices.size(); + int status{}; + for(int i = 0; i < n_blocks; i++) { + matchingArraySeparatrixForEachBlock[i].resize(n_blocks); + for(int j = 0; j < n_blocks; j++) { + matchingArraySeparatrixForEachBlock[i][j].resize( + separatrixCountForEachBlock[j], -1); + } + } + +#ifdef TTK_ENABLE_OPENMP +#pragma omp parallel for num_threads(threadNumber_) +#endif // TTK_ENABLE_OPENMP + for(int i = 0; i < n_blocks; i++) { + if(!mergeEdgesOnSaddles) { + status = this->buildOccurrenceArraysFull( + adjacencyMatrices, separatrixCountForEachBlock[i], coordsSource, + coordsDestination, scalarsSource, scalarsDestination, i, + edgesOccurrencesForEachBlock[i], isomorphismForEachBlock[i], + matchingArrayForEachBlockSource[i], + matchingArrayForEachBlockDestination[i], + matchingArraySeparatrixForEachBlock[i]); + } else { + status = this->buildOccurrenceArraysMinor( + adjacencyMatrices, separatrixCountForEachBlock[i], coordsDestination, + scalarsDestination, i, edgesOccurrencesForEachBlock[i], + isomorphismForEachBlock[i], matchingArrayForEachBlockDestination[i], + matchingArraySeparatrixForEachBlock[i]); + } + } + + return status; +} \ No newline at end of file diff --git a/core/base/separatrixStability/SeparatrixStability.h b/core/base/separatrixStability/SeparatrixStability.h new file mode 100644 index 0000000000..78bf67f3ac --- /dev/null +++ b/core/base/separatrixStability/SeparatrixStability.h @@ -0,0 +1,104 @@ +#pragma once + +#include +#include +#include +#include +#include + +namespace ttk { + + using MatchingType = std::tuple; + + class SeparatrixStability : virtual public Debug { + + public: + using GraphMatrixMinor + = std::vector>>>; + using GraphMatrixFull = std::vector>; + + SeparatrixStability(); + + int buildOccurrenceArrays( + const std::vector &adjacencyMatrices, + const std::vector &separatrixCountForEachBlock, + const std::vector>> &coordsSource, + const std::vector>> &coordsDestination, + const std::vector> &scalarsSource, + const std::vector> &scalarsDestination, + const bool &mergeEdgesOnSaddles, + std::vector> &edgesOccurrencesForEachBlock, + std::vector> &isomorphismForEachBlock, + std::vector>> + &matchingArrayForEachBlockSource, + std::vector>> + &matchingArrayForEachBlockDestination, + std::vector>> + &matchingArraySeparatrixForEachBlock); + + inline void setEpsilon(double e) { + epsilon = e; + } + + inline void setWeights(const double &px, + const double &py, + const double &pz, + const double &pf) { + Px = px; + Py = py; + Pz = pz; + Pf = pf; + } + + private: + int buildMatchingsWithOtherBlocks( + const std::vector>> &coords, + const std::vector> &scalars, + const int &block_id, + std::vector> &matchings); + + void computeGraphMinor(const GraphMatrixFull &adjacencyMatrixFull, + GraphMatrixMinor &adjacencyMatrix); + + void buildCostMatrix(const std::vector> &coords1, + const std::vector> &coords2, + const std::vector &scalars1, + const std::vector &scalars2, + std::vector> &matrix); + + void assignmentSolver(std::vector> &costMatrix, + std::vector &matching); + + int buildOccurrenceArraysMinor( + const std::vector &adjacencyMatrices, + const int &n_separatrices, + const std::vector>> &coords, + const std::vector> &scalars, + const int &block_id, + std::vector &edgeOccurrences, + std::vector &isIsomorphicWith, + std::vector> &matchingArray, + std::vector> &matchingArraySeparatrix); + + int buildOccurrenceArraysFull( + const std::vector &adjacencyMatrices, + const int &n_separatrices, + const std::vector>> &coordsSource, + const std::vector>> &coordsDestination, + const std::vector> &scalarsSource, + const std::vector> &scalarsDestination, + const int &block_id, + std::vector &edgesOccurrences, + std::vector &isIsomorphicWith, + std::vector> &matchingArraySource, + std::vector> &matchingArrayDestination, + std::vector> &matchingArraySeparatrix); + + double epsilon{}; + double Px{1}; + double Py{1}; + double Pz{1}; + double Pf{1}; + }; + +} // namespace ttk diff --git a/core/vtk/ttkAlgorithm/ttkUtils.cpp b/core/vtk/ttkAlgorithm/ttkUtils.cpp index 337802726a..9a9f013e97 100644 --- a/core/vtk/ttkAlgorithm/ttkUtils.cpp +++ b/core/vtk/ttkAlgorithm/ttkUtils.cpp @@ -281,6 +281,7 @@ void ttkUtils::SetVoidArray(vtkDataArray *array, void *data, vtkIdType size, int save) { + switch(array->GetDataType()) { vtkTemplateMacro( auto *aosArray = vtkAOSDataArrayTemplate::FastDownCast(array); diff --git a/core/vtk/ttkMorseSmaleComplex/ttkMorseSmaleComplex.cpp b/core/vtk/ttkMorseSmaleComplex/ttkMorseSmaleComplex.cpp index 66bc5b6f67..7d9a5c0dfc 100644 --- a/core/vtk/ttkMorseSmaleComplex/ttkMorseSmaleComplex.cpp +++ b/core/vtk/ttkMorseSmaleComplex/ttkMorseSmaleComplex.cpp @@ -2,9 +2,11 @@ #include #include +#include #include #include #include +#include #include #include #include @@ -40,6 +42,7 @@ int ttkMorseSmaleComplex::FillOutputPortInformation(int port, return 1; } else if(port == 3) { info->Set(ttkAlgorithm::SAME_DATA_TYPE_AS_INPUT_PORT(), 0); + // info->Set(vtkDataObject::DATA_TYPE_NAME(), "vtkDataSet"); return 1; } return 0; @@ -409,7 +412,8 @@ int ttkMorseSmaleComplex::RequestData(vtkInformation *ttkNotUsed(request), vtkInformationVector **inputVector, vtkInformationVector *outputVector) { - const auto input = vtkDataSet::GetData(inputVector[0]); + const auto input + = vtkDataSet::SafeDownCast(vtkDataSet::GetData(inputVector[0])); auto outputCriticalPoints = vtkPolyData::GetData(outputVector, 0); auto outputSeparatrices1 = vtkPolyData::GetData(outputVector, 1); auto outputSeparatrices2 = vtkPolyData::GetData(outputVector, 2); diff --git a/core/vtk/ttkScalarFieldNormalizer/ttkScalarFieldNormalizer.cpp b/core/vtk/ttkScalarFieldNormalizer/ttkScalarFieldNormalizer.cpp index 097f7a659a..b996c1b7dc 100644 --- a/core/vtk/ttkScalarFieldNormalizer/ttkScalarFieldNormalizer.cpp +++ b/core/vtk/ttkScalarFieldNormalizer/ttkScalarFieldNormalizer.cpp @@ -3,6 +3,7 @@ #include #include +#include #include #include #include diff --git a/core/vtk/ttkSeparatrixStability/CMakeLists.txt b/core/vtk/ttkSeparatrixStability/CMakeLists.txt new file mode 100644 index 0000000000..89467c8587 --- /dev/null +++ b/core/vtk/ttkSeparatrixStability/CMakeLists.txt @@ -0,0 +1 @@ +ttk_add_vtk_module() \ No newline at end of file diff --git a/core/vtk/ttkSeparatrixStability/ttk.module b/core/vtk/ttkSeparatrixStability/ttk.module new file mode 100644 index 0000000000..49380bd65f --- /dev/null +++ b/core/vtk/ttkSeparatrixStability/ttk.module @@ -0,0 +1,9 @@ +NAME + ttkSeparatrixStability +SOURCES + ttkSeparatrixStability.cpp +HEADERS + ttkSeparatrixStability.h +DEPENDS + separatrixStability + ttkAlgorithm \ No newline at end of file diff --git a/core/vtk/ttkSeparatrixStability/ttkSeparatrixStability.cpp b/core/vtk/ttkSeparatrixStability/ttkSeparatrixStability.cpp new file mode 100644 index 0000000000..95a95aa4a3 --- /dev/null +++ b/core/vtk/ttkSeparatrixStability/ttkSeparatrixStability.cpp @@ -0,0 +1,473 @@ +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#include +#include +#include + +vtkStandardNewMacro(ttkSeparatrixStability); + +ttkSeparatrixStability::ttkSeparatrixStability() { + this->SetNumberOfInputPorts(1); + this->SetNumberOfOutputPorts(1); +} + +int ttkSeparatrixStability::FillInputPortInformation(int port, + vtkInformation *info) { + if(port == 0) { + info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(), "vtkMultiBlockDataSet"); + return 1; + } + return 0; +} + +int ttkSeparatrixStability::FillOutputPortInformation(int port, + vtkInformation *info) { + if(port == 0) { + info->Set(vtkDataObject::DATA_TYPE_NAME(), "vtkMultiBlockDataSet"); + return 1; + } + return 0; +} + +bool ttkSeparatrixStability::updateVisitedVertices( + const int &globalId, std::vector &localToGlobal, int &localId) { + + for(unsigned int i = 0; i < localToGlobal.size(); i++) { + if(localToGlobal[i] == globalId) { + localId = i; + return true; + } + } + if(localId == -1) { + localId = localToGlobal.size(); + localToGlobal.push_back(globalId); + } + return false; +} + +void ttkSeparatrixStability::updateAdjacencyMatrix( + const int &sourceLocalId, + const int &destinationLocalId, + const int &separatrixLocalId, + GraphMatrixFull &adjacencyMatrix) { + int n_row = adjacencyMatrix.size(); + int n_col = n_row == 0 ? 0 : adjacencyMatrix[0].size(); + if(sourceLocalId < n_row) { + if(destinationLocalId < n_col) { + adjacencyMatrix[sourceLocalId][destinationLocalId] = separatrixLocalId; + } else { + for(int i = 0; i < n_row; i++) { + adjacencyMatrix[i].push_back(-1); + } + adjacencyMatrix[sourceLocalId][destinationLocalId] = separatrixLocalId; + } + } else { + if(destinationLocalId < n_col) { + std::vector newRow(n_col, -1); + adjacencyMatrix.push_back(newRow); + adjacencyMatrix[sourceLocalId][destinationLocalId] = separatrixLocalId; + } else { + for(int i = 0; i < n_row; i++) { + adjacencyMatrix[i].push_back(-1); + } + std::vector newRow(n_col + 1, -1); + adjacencyMatrix.push_back(newRow); + adjacencyMatrix[sourceLocalId][destinationLocalId] = separatrixLocalId; + } + } +} + +void ttkSeparatrixStability::computePointIds(const int &cellId_1, + const int &cellId_2, + const int &sourceGlobalId, + const int &destinationGlobalId, + vtkDataSet *block, + vtkIdType &sourcePointId, + vtkIdType &destinationPointId) { + + vtkIdList *pointIds = block->GetCell(cellId_1)->GetPointIds(); + int id_0 = pointIds->GetId(0); + int id_1 = pointIds->GetId(1); + pointIds = block->GetCell(cellId_2)->GetPointIds(); + int id_2 = pointIds->GetId(0); + int id_3 = pointIds->GetId(1); + ttkSimplexIdTypeArray *cellId = ttkSimplexIdTypeArray::SafeDownCast( + block->GetPointData()->GetArray(ttk::MorseSmaleCellIdName)); + + if((int)cellId->GetValue(id_0) == sourceGlobalId) + sourcePointId = id_0; + else if((int)cellId->GetValue(id_1) == sourceGlobalId) + sourcePointId = id_1; + else if((int)cellId->GetValue(id_2) == sourceGlobalId) + sourcePointId = id_2; + else if((int)cellId->GetValue(id_3) == sourceGlobalId) + sourcePointId = id_3; + + if((int)cellId->GetValue(id_0) == destinationGlobalId) + destinationPointId = id_0; + else if((int)cellId->GetValue(id_1) == destinationGlobalId) + destinationPointId = id_1; + else if((int)cellId->GetValue(id_2) == destinationGlobalId) + destinationPointId = id_2; + else if((int)cellId->GetValue(id_3) == destinationGlobalId) + destinationPointId = id_3; +} + +void ttkSeparatrixStability::appendPoint( + vtkPoints *points, + const int &index, + const double &scalar, + std::vector> &coords, + std::vector &scalars) { + std::array newCoords; + points->GetPoint(index, newCoords.data()); + coords.push_back(newCoords); + scalars.push_back(scalar); +} + +int ttkSeparatrixStability::prepareData( + vtkDataSet *block, + std::vector &localToGlobal, + GraphMatrixFull &adjacencyMatrixFull, + std::vector> &coordsSource, + std::vector> &coordsDestination, + std::vector &scalarsSource, + std::vector &scalarsDestination, + int &n_separatrices, + std::vector &globalSourcePointId, + std::vector &globalDestinationPointId) { + + vtkPoints *points = block->GetPoints(); + + vtkCellData *cellData = block->GetCellData(); + vtkSignedCharArray *separatrixTypes = vtkSignedCharArray::SafeDownCast( + cellData->GetArray(ttk::MorseSmaleSeparatrixTypeName)); + ttkSimplexIdTypeArray *separatrixIds = ttkSimplexIdTypeArray::SafeDownCast( + cellData->GetArray(ttk::MorseSmaleSeparatrixIdName)); + ttkSimplexIdTypeArray *sourceIds = ttkSimplexIdTypeArray::SafeDownCast( + cellData->GetArray(ttk::MorseSmaleSourceIdName)); + ttkSimplexIdTypeArray *destinationIds = ttkSimplexIdTypeArray::SafeDownCast( + cellData->GetArray(ttk::MorseSmaleDestinationIdName)); + vtkDoubleArray *separatrixSourceScalars; + vtkDoubleArray *separatrixDestinationScalars; + if(*(separatrixTypes->GetTuple(0)) == 0) { + separatrixDestinationScalars = vtkDoubleArray::SafeDownCast( + cellData->GetArray(ttk::MorseSmaleSeparatrixMinimumName)); + separatrixSourceScalars = vtkDoubleArray::SafeDownCast( + cellData->GetArray(ttk::MorseSmaleSeparatrixMaximumName)); + } else { + separatrixDestinationScalars = vtkDoubleArray::SafeDownCast( + cellData->GetArray(ttk::MorseSmaleSeparatrixMaximumName)); + separatrixSourceScalars = vtkDoubleArray::SafeDownCast( + cellData->GetArray(ttk::MorseSmaleSeparatrixMinimumName)); + } + + int n_cells = block->GetNumberOfCells(); + + std::vector sourceLocalToGlobal; + std::vector destinationLocalToGlobal; + + int cellId_1 = 0; + int separatrixLocalId = -1; + + while(cellId_1 < n_cells) { + int separatrixId = separatrixIds->GetValue(cellId_1); + int cellId_2 = cellId_1 + 1; + int nextSeparatrixId = separatrixIds->GetValue(cellId_2); + while(nextSeparatrixId == separatrixId && cellId_2 < n_cells) { + nextSeparatrixId = separatrixIds->GetValue(++cellId_2); + } + cellId_2--; + separatrixLocalId++; + int sourceGlobalId = sourceIds->GetValue(cellId_1); + int destinationGlobalId = destinationIds->GetValue(cellId_2); + int destinationLocalId = -1; + int sourceLocalId = -1; + vtkIdType sourcePointId; + vtkIdType destinationPointId; + + computePointIds(cellId_1, cellId_2, sourceGlobalId, destinationGlobalId, + block, sourcePointId, destinationPointId); + + bool foundSource = updateVisitedVertices( + sourceGlobalId, sourceLocalToGlobal, sourceLocalId); + bool foundDestination = updateVisitedVertices( + destinationGlobalId, destinationLocalToGlobal, destinationLocalId); + if(!foundDestination) { + double destinationScalar + = *(separatrixDestinationScalars->GetTuple(cellId_1)); + appendPoint(points, destinationPointId, destinationScalar, + coordsDestination, scalarsDestination); + globalDestinationPointId.push_back(destinationPointId); + } + if(!foundSource && !MergeEdgesOnSaddles) { + double sourceScalar = *(separatrixSourceScalars->GetTuple(cellId_1)); + appendPoint( + points, sourcePointId, sourceScalar, coordsSource, scalarsSource); + globalSourcePointId.push_back(sourcePointId); + } + updateAdjacencyMatrix(sourceLocalId, destinationLocalId, separatrixLocalId, + adjacencyMatrixFull); + cellId_1 = cellId_2 + 1; + } + + n_separatrices = separatrixLocalId + 1; + localToGlobal = std::move(destinationLocalToGlobal); + + return 1; +} + +int ttkSeparatrixStability::execute( + vtkMultiBlockDataSet *&multiBlock1_Separatrices, + vtkMultiBlockDataSet *&output1_Separatrices) { + + int status; + int n_blocks = multiBlock1_Separatrices->GetNumberOfBlocks(); + std::vector> LocalToGlobal(n_blocks); + std::vector adjacencyMatricesFull(n_blocks); + std::vector>> coordsDestination(n_blocks); + std::vector>> coordsSource(n_blocks); + std::vector> scalarsDestination(n_blocks); + std::vector> scalarsSource(n_blocks); + std::vector separatrixCountForEachBlock(n_blocks); + std::vector> edgeOccurrenceForEachBlock(n_blocks); + std::vector> isomorphismsForEachBlock(n_blocks); + std::vector>> matchingArrayForEachBlockSource( + n_blocks); + std::vector>> + matchingArrayForEachBlockDestination(n_blocks); + std::vector>> + matchingArraySeparatrixForEachBlock(n_blocks); + std::vector> globalSourcePointIdForEachBlock(n_blocks); + std::vector> globalDestinationPointIdForEachBlock(n_blocks); + +#ifdef TTK_ENABLE_OPENMP +#pragma omp parallel for num_threads(threadNumber_) +#endif // TTK_ENABLE_OPENMP + for(int i = 0; i < n_blocks; i++) { + vtkDataSet *block + = vtkDataSet::SafeDownCast(multiBlock1_Separatrices->GetBlock(i)); + + ttkSeparatrixStability::prepareData( + block, LocalToGlobal[i], adjacencyMatricesFull[i], coordsSource[i], + coordsDestination[i], scalarsSource[i], scalarsDestination[i], + separatrixCountForEachBlock[i], globalSourcePointIdForEachBlock[i], + globalDestinationPointIdForEachBlock[i]); + } + + this->setEpsilon(CostDeathBirth); + this->setWeights(PX, PY, PZ, PF); + + for(int i = 0; i < n_blocks; i++) { + std::string destinationSizeString + = std::to_string(globalDestinationPointIdForEachBlock[i].size()); + std::string sourceSizeString + = std::to_string(globalSourcePointIdForEachBlock[i].size()); + std::string blockIdString = std::to_string(i); + + std::string msg1 = "Number of critical points (min-max) for block "; + msg1 += blockIdString; + msg1 += " : "; + msg1 += destinationSizeString; + this->printMsg(msg1); + + if(!MergeEdgesOnSaddles) { + std::string msg2 = "Number of critical points (1sad-2sad) for block "; + msg2 += blockIdString; + msg2 += " : "; + msg2 += sourceSizeString; + this->printMsg(msg2); + } + } + + status = this->buildOccurrenceArrays( + adjacencyMatricesFull, separatrixCountForEachBlock, coordsSource, + coordsDestination, scalarsSource, scalarsDestination, MergeEdgesOnSaddles, + edgeOccurrenceForEachBlock, isomorphismsForEachBlock, + matchingArrayForEachBlockSource, matchingArrayForEachBlockDestination, + matchingArraySeparatrixForEachBlock); + + if(status == 0) + return status; + + std::vector classId(n_blocks, -1); + int idCount = 0; + + for(int i = 0; i < n_blocks; i++) { + if(classId[i] != -1) + continue; + classId[i] = idCount; + for(int j = 0; j < n_blocks; j++) { + if(isomorphismsForEachBlock[i][j]) { + classId[j] = idCount; + } + } + idCount++; + } + + for(int i = 0; i < n_blocks; i++) { + for(int j = 0; j < n_blocks; j++) { + assert(globalDestinationPointIdForEachBlock[i].size() + == matchingArrayForEachBlockDestination[j][i].size()); + assert(globalSourcePointIdForEachBlock[i].size() + == matchingArrayForEachBlockSource[j][i].size()); + } + } + +#ifdef TTK_ENABLE_OPENMP +#pragma omp parallel for num_threads(threadNumber_) +#endif // TTK_ENABLE_OPENMP + for(int i = 0; i < n_blocks; i++) { + + vtkDataSet *block + = vtkDataSet::SafeDownCast(output1_Separatrices->GetBlock(i)); + int cellNumber = block->GetNumberOfCells(); + ttkSimplexIdTypeArray *separatrixIds = ttkSimplexIdTypeArray::SafeDownCast( + block->GetCellData()->GetArray(ttk::MorseSmaleSeparatrixIdName)); + + vtkNew occurrenceCount; + occurrenceCount->SetNumberOfComponents(1); + occurrenceCount->SetName(ttk::SeparatrixStabilityOccurrenceCount); + + vtkNew isomorphismClassId; + isomorphismClassId->SetNumberOfComponents(1); + isomorphismClassId->SetName(ttk::SeparatrixStabilityIsomorphismClassId); + + vtkIdType currentCellId = 0; + int currentSeparatrixId = separatrixIds->GetValue(currentCellId); + int separatrixCount = 0; + float newValue + = (float)edgeOccurrenceForEachBlock[i][separatrixCount] / n_blocks; + + occurrenceCount->InsertNextValue(newValue); + + for(int j = 1; j < cellNumber; j++) { + if(separatrixIds->GetValue(j) != currentSeparatrixId) { + currentSeparatrixId = separatrixIds->GetValue(j); + separatrixCount++; + newValue + = (float)edgeOccurrenceForEachBlock[i][separatrixCount] / n_blocks; + } + occurrenceCount->InsertNextValue(newValue); + } + + block->GetCellData()->AddArray(occurrenceCount); + + isomorphismClassId->InsertNextValue(classId[i]); + + block->GetFieldData()->AddArray(isomorphismClassId); + + for(int j = 0; j < n_blocks; j++) { + + vtkNew matchingIdForSeparatrix_j; + matchingIdForSeparatrix_j->SetNumberOfComponents(1); + std::string tmp_string_1 + = std::string(ttk::SeparatrixStabilityMatchingIdSeparatrixName) + + std::to_string(j); + + const char *indexedArrayNameSeparatrix = tmp_string_1.c_str(); + matchingIdForSeparatrix_j->SetName(indexedArrayNameSeparatrix); + + int currentSeparatrixIdBis = separatrixIds->GetValue(0); + int separatrixCountBis = 0; + int newId = matchingArraySeparatrixForEachBlock[j][i][separatrixCountBis]; + matchingIdForSeparatrix_j->InsertNextValue(newId); + + for(int k = 1; k < cellNumber; k++) { + if(separatrixIds->GetValue(k) != currentSeparatrixIdBis) { + currentSeparatrixIdBis = separatrixIds->GetValue(k); + separatrixCountBis++; + newId = matchingArraySeparatrixForEachBlock[j][i][separatrixCountBis]; + } + matchingIdForSeparatrix_j->InsertNextValue(newId); + } + block->GetCellData()->AddArray(matchingIdForSeparatrix_j); + + vtkNew matchingIdForCriticalPoints_j; + matchingIdForCriticalPoints_j->SetNumberOfComponents(1); + std::string tmp_string_2 + = std::string(ttk::SeparatrixStabilityMatchingIdName) + + std::to_string(j); + + const char *indexedArrayNameMatchingsId = tmp_string_2.c_str(); + matchingIdForCriticalPoints_j->SetName(indexedArrayNameMatchingsId); + vtkPoints *points = block->GetPoints(); + + for(int k = 0; k < points->GetNumberOfPoints(); k++) { + matchingIdForCriticalPoints_j->InsertNextValue(-2); + } + + for(unsigned int k = 0; + k < globalDestinationPointIdForEachBlock[i].size(); k++) { + int globalPointIdThisBlock = globalDestinationPointIdForEachBlock[i][k]; + int matchingIdOtherBlock + = matchingArrayForEachBlockDestination[j][i][k]; + matchingIdForCriticalPoints_j->SetValue( + globalPointIdThisBlock, matchingIdOtherBlock); + } + if(!MergeEdgesOnSaddles) { + for(unsigned int k = 0; k < globalSourcePointIdForEachBlock[i].size(); + k++) { + int globalPointIdThisBlock = globalSourcePointIdForEachBlock[i][k]; + int matchingIdOtherBlock = matchingArrayForEachBlockSource[j][i][k]; + matchingIdForCriticalPoints_j->SetValue( + globalPointIdThisBlock, matchingIdOtherBlock); + } + } + block->GetPointData()->AddArray(matchingIdForCriticalPoints_j); + } + } + return status; +} + +int ttkSeparatrixStability::RequestData(vtkInformation *ttkNotUsed(request), + vtkInformationVector **inputVector, + vtkInformationVector *outputVector) { + ttk::Timer t; + vtkMultiBlockDataSet *input1_Separatrices + = vtkMultiBlockDataSet::GetData(inputVector[0]); + + if(input1_Separatrices == nullptr) { + this->printErr("No edges to perform calculation."); + return -1; + } + + int status = 0; + vtkMultiBlockDataSet *output1_Separatrices + = vtkMultiBlockDataSet::GetData(outputVector, 0); + output1_Separatrices->ShallowCopy(input1_Separatrices); + + if(input1_Separatrices->GetNumberOfBlocks() < 2) { + this->printErr( + "At least two datasets are required to perform calculations."); + return -1; + } + + status = this->execute(input1_Separatrices, output1_Separatrices); + + this->printMsg("Occurrence arrays calculated for " + + std::to_string(input1_Separatrices->GetNumberOfBlocks()) + + " blocks", + 1.0, t.getElapsedTime(), this->threadNumber_); + + if(status != 1) + return 0; + + return 1; +} diff --git a/core/vtk/ttkSeparatrixStability/ttkSeparatrixStability.h b/core/vtk/ttkSeparatrixStability/ttkSeparatrixStability.h new file mode 100644 index 0000000000..2fddb7407e --- /dev/null +++ b/core/vtk/ttkSeparatrixStability/ttkSeparatrixStability.h @@ -0,0 +1,106 @@ +/// \ingroup vtk +/// \class ttkSeparatrixStability +/// \author Your Name Here +/// \date The Date Here. +/// +/// \brief TTK VTK-filter that wraps the ttk::SeparatrixStability module. +/// +/// This VTK filter uses the ttk::SeparatrixStability module to compute +/// an averaging of the data values of an input point data array defined on the +/// input vtkDataSet. +/// +/// \sa ttk::SeparatrixStability +/// \sa ttkAlgorithm + +#pragma once + +#include +#include + +#include + +#include +#include + +class TTKSEPARATRIXSTABILITY_EXPORT ttkSeparatrixStability + : public ttkAlgorithm, + protected ttk::SeparatrixStability { + +private: + double PX{1}; + double PY{1}; + double PZ{1}; + double PF{1}; + bool MergeEdgesOnSaddles{true}; + double CostDeathBirth{}; + +public: + vtkSetMacro(PX, double); + vtkGetMacro(PX, double); + + vtkSetMacro(PY, double); + vtkGetMacro(PY, double); + + vtkSetMacro(PZ, double); + vtkGetMacro(PZ, double); + + vtkSetMacro(PF, double); + vtkGetMacro(PF, double); + + vtkSetMacro(MergeEdgesOnSaddles, bool); + vtkGetMacro(MergeEdgesOnSaddles, bool); + + vtkSetMacro(CostDeathBirth, double); + vtkGetMacro(CostDeathBirth, double); + + static ttkSeparatrixStability *New(); + vtkTypeMacro(ttkSeparatrixStability, ttkAlgorithm); + +protected: + ttkSeparatrixStability(); + ~ttkSeparatrixStability() override = default; + + int FillInputPortInformation(int port, vtkInformation *info) override; + int FillOutputPortInformation(int port, vtkInformation *info) override; + + int RequestData(vtkInformation *request, + vtkInformationVector **inputVector, + vtkInformationVector *outputVector) override; + + int execute(vtkMultiBlockDataSet *&multiBlock1_Separatrices, + vtkMultiBlockDataSet *&output1_Separatrices); + + bool updateVisitedVertices(const int &globalId, + std::vector &localToGlobal, + int &localId); + + void computePointIds(const int &cellId_1, + const int &cellId_2, + const int &sourceGlobalId, + const int &destinationGlobalId, + vtkDataSet *block, + vtkIdType &srcPointId, + vtkIdType &destPointId); + + void updateAdjacencyMatrix(const int &sourceLocalId, + const int &destinationLocalId, + const int &separatrixLocalId, + GraphMatrixFull &adjacencyMatrix); + + void appendPoint(vtkPoints *points, + const int &index, + const double &scalar, + std::vector> &coords, + std::vector &scalars); + + int prepareData(vtkDataSet *block, + std::vector &localToGlobal, + GraphMatrixFull &adjacencyMatrixFull, + std::vector> &coordsSource, + std::vector> &coordsDestination, + std::vector &scalarsSource, + std::vector &scalarsDestinatoin, + int &n_separatrices, + std::vector &globalSourcePointId, + std::vector &globalDestinationPointId); +}; diff --git a/core/vtk/ttkSeparatrixStability/vtk.module b/core/vtk/ttkSeparatrixStability/vtk.module new file mode 100644 index 0000000000..0b76b36d0d --- /dev/null +++ b/core/vtk/ttkSeparatrixStability/vtk.module @@ -0,0 +1,4 @@ +NAME + ttkSeparatrixStability +DEPENDS + ttkAlgorithm \ No newline at end of file diff --git a/paraview/xmls/SeparatrixStability.xml b/paraview/xmls/SeparatrixStability.xml new file mode 100644 index 0000000000..da016e3709 --- /dev/null +++ b/paraview/xmls/SeparatrixStability.xml @@ -0,0 +1,105 @@ + + + + + + + + + This filter is a well documented ttk example filter that computes for each vertex of a vtkDataSet the average scalar value of itself and its neighbors. + + + + + + + + + + + A vtkDataSet that has at least one point data scalar array that can be used to compute averages. + + + + + + Importance weight for the X component of + the extremum + + + + + Importance weight for the Y component of + the extremum + + + + + Importance weight for the Z component of + the extremum + + + + + Importance weight for the scalar component of + the extremum + + + + + + Check this box to merge the edges on the saddles points. + + + + + + + + + + ${DEBUG_WIDGETS} + + + + + + + +