@@ -322,6 +322,46 @@ if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SIZEOF_VOID_P EQUAL 4)
322
322
)
323
323
endif ()
324
324
325
+ if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" )
326
+ message (STATUS "Using Clang compiler." )
327
+ message (STATUS "Clang version: ${CMAKE_CXX_COMPILER_VERSION} " )
328
+
329
+ # You can also perform version-specific checks
330
+ if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "14.0.0" )
331
+ message (STATUS "Clang is version 14.0.0 or newer." )
332
+ # Add Clang 14+ specific options
333
+ else ()
334
+ message (STATUS "Clang is older than 14.0.0." )
335
+ # Add options for older Clang versions
336
+ endif ()
337
+
338
+ elseif (CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" )
339
+ message (STATUS "Using Apple Clang compiler." )
340
+ message (STATUS "Apple Clang version: ${CMAKE_CXX_COMPILER_VERSION} " )
341
+ # Specific logic for Apple Clang
342
+ elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" )
343
+ message (STATUS "Using GNU (GCC) compiler." )
344
+ elseif (CMAKE_CXX_COMPILER_ID STREQUAL "MSVC" )
345
+ message (STATUS "Using Microsoft Visual C++ compiler." )
346
+ else ()
347
+ message (STATUS "Unknown compiler ID: ${CMAKE_CXX_COMPILER_ID} " )
348
+ endif ()
349
+
350
+ if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang" OR CMAKE_CXX_COMPILER_ID STREQUAL "AppleClang" )
351
+ message (STATUS "Detected LLVM-based compiler (Clang/AppleClang) version: ${CMAKE_CXX_COMPILER_VERSION} " )
352
+
353
+ # You can then use this version for conditional logic
354
+ if (CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL "18.0.0" )
355
+ message (STATUS "LLVM version is 18.0.0 or newer." )
356
+ # Add features/flags for newer LLVM
357
+ else ()
358
+ message (STATUS "LLVM version is older than 18.0.0." )
359
+ # Add features/flags for older LLVM
360
+ endif ()
361
+ else ()
362
+ message (STATUS "Not using a Clang/LLVM-based compiler (Compiler ID: ${CMAKE_CXX_COMPILER_ID} )" )
363
+ endif ()
364
+
325
365
if (CMAKE_SYSTEM_NAME STREQUAL "Darwin" )
326
366
target_compile_definitions (core_interface INTERFACE OBJC_OLD_DISPATCH_PROTOTYPES=0 )
327
367
# These flags are specific to ld64, and may cause issues with other linkers.
0 commit comments