44 lines
1.9 KiB
CMake
44 lines
1.9 KiB
CMake
# clang-toolchain.cmake - Complete toolchain file for Clang
|
|
|
|
# Specify the compiler
|
|
set(CMAKE_C_COMPILER clang)
|
|
set(CMAKE_CXX_COMPILER clang++)
|
|
|
|
# Specify the target system
|
|
# set(CMAKE_SYSTEM_NAME Linux) # Change to appropriate system (Linux, Darwin, Windows, etc.)
|
|
|
|
# Specify LLVM binutils
|
|
set(CMAKE_AR llvm-ar CACHE FILEPATH "Archive command")
|
|
set(CMAKE_NM llvm-nm CACHE FILEPATH "Name mangling command")
|
|
set(CMAKE_RANLIB llvm-ranlib CACHE FILEPATH "Archive indexer command")
|
|
set(CMAKE_OBJDUMP llvm-objdump CACHE FILEPATH "Object dump command")
|
|
set(CMAKE_OBJCOPY llvm-objcopy CACHE FILEPATH "Object copy command")
|
|
set(CMAKE_STRIP llvm-strip CACHE FILEPATH "Strip command")
|
|
set(CMAKE_LINKER lld CACHE FILEPATH "Linker command")
|
|
|
|
# Use lld as the linker
|
|
# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fuse-ld=lld")
|
|
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fuse-ld=lld")
|
|
|
|
# Set linker flags
|
|
# set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=lld")
|
|
# set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -fuse-ld=lld")
|
|
# set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -fuse-ld=lld")
|
|
|
|
# Use Clang's libc++ instead of GCC's libstdc++ (optional)
|
|
# Uncomment these lines if you want to use libc++
|
|
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
|
|
# set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -stdlib=libc++ -lc++abi")
|
|
# set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -stdlib=libc++ -lc++abi")
|
|
|
|
# Set compiler optimization flags (optional)
|
|
# set(CMAKE_C_FLAGS_RELEASE "-O3 -DNDEBUG")
|
|
# set(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG")
|
|
# set(CMAKE_C_FLAGS_DEBUG "-g -O0")
|
|
# set(CMAKE_CXX_FLAGS_DEBUG "-g -O0")
|
|
|
|
# Enable address sanitizer (optional)
|
|
# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -fno-omit-frame-pointer")
|
|
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer")
|
|
# set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address")
|