Files
LaGriT/cmake/CompilerFlags-C.cmake

59 lines
2.0 KiB
CMake
Raw Normal View History

2025-12-17 11:00:57 +08:00
# removing legacy flags like -m64
# flag -m64 may be needed for C code lg_util/opsys.h
# ======= C flags =========================================
if("${CMAKE_C_COMPILER_ID}" MATCHES "Clang")
MESSAGE(STATUS " C compiler: Clang")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w -m64")
execute_process(COMMAND clang --version OUTPUT_VARIABLE clang_version_output)
string(REGEX MATCH "[0-9]+" clang_version "${clang_version_output}")
if (clang_version AND clang_version GREATER_EQUAL 15)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-error=implicit-int")
endif()
elseif ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU")
MESSAGE(STATUS " C compiler: GNU GCC")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -w -m64")
elseif ("${CMAKE_C_COMPILER_ID}" STREQUAL "Intel")
MESSAGE(STATUS " C compiler: Intel C")
elseif ("${CMAKE_C_COMPILER_ID}" STREQUAL "MSVC")
MESSAGE(STATUS " C compiler: Microsoft Visual C")
else()
message(STATUS " C compiler not recognized: ${CMAKE_C_COMPILER_ID}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w -m64")
endif()
# ======= C++ flags =======================================
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
message(STATUS " C++ compiler: Clang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w -stdlib=libc++ -std=c++0x")
execute_process(COMMAND clang --version OUTPUT_VARIABLE clang_version_output)
string(REGEX MATCH "[0-9]+" clang_version "${clang_version_output}")
if (clang_version AND clang_version GREATER_EQUAL 15)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=implicit-int")
endif()
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
message(STATUS " C++ compiler: GNU G++")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w")
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Intel")
message(STATUS " C++ compiler: Intel C++")
elseif ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
message(STATUS " C++ compiler: Microsoft Visual C++")
else()
message(STATUS " C++ compiler not recognized: ${CMAKE_CXX_COMPILER_ID}")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w")
endif()