|
|
@ -0,0 +1,53 @@ |
|
|
|
include(CheckCCompilerFlag) |
|
|
|
|
|
|
|
# Add list of compiler warnings |
|
|
|
# Every warning gets checked with check_c_compiler_flags |
|
|
|
function(add_compiler_warnings) |
|
|
|
foreach (flag ${ARGN}) |
|
|
|
check_c_compiler_flag(${flag} ok) |
|
|
|
if (ok) |
|
|
|
add_compile_options(${flag}) |
|
|
|
endif () |
|
|
|
endforeach () |
|
|
|
endfunction () |
|
|
|
|
|
|
|
# Create new ${EXE,MODULE,SHARED}_LINKER_FLAGS build type for list of linker flags |
|
|
|
# Every linker flag gets checked with check_c_compiler_flag |
|
|
|
function(create_custom_linker_flags name) |
|
|
|
foreach (flag ${ARGN}) |
|
|
|
check_c_compiler_flag(-Wl,${flag} ok) |
|
|
|
if (ok) |
|
|
|
if (ldflags) |
|
|
|
set(ldflags "${ldflags},${flag}") |
|
|
|
else () |
|
|
|
set(ldflags "-Wl,${flag}") |
|
|
|
endif () |
|
|
|
endif () |
|
|
|
endforeach () |
|
|
|
|
|
|
|
string(TOUPPER ${name} upper) |
|
|
|
set(CMAKE_EXE_LINKER_FLAGS_${upper} "${ldflags}" CACHE STRING "${name} exe linker flags" FORCE) |
|
|
|
set(CMAKE_MODULE_LINKER_FLAGS_${upper} "${ldflags}" CACHE STRING "${name} module linker flags" FORCE) |
|
|
|
set(CMAKE_SHARED_LINKER_FLAGS_${upper} "${ldflags}" CACHE STRING "${name} shared linker flags" FORCE) |
|
|
|
mark_as_advanced(CMAKE_EXE_LINKER_FLAGS_${upper} CMAKE_SHARED_LINKER_FLAGS_${upper} CMAKE_MODULE_LINKER_FLAGS_${upper}) |
|
|
|
endfunction () |
|
|
|
|
|
|
|
# Create new {C,CXX}_FLAGS build type for list of compiler flags |
|
|
|
# Every compiler flag gets checked with check_c_compiler_flag |
|
|
|
function(create_custom_compiler_flags name) |
|
|
|
foreach (flag ${ARGN}) |
|
|
|
check_c_compiler_flag(${flag} ok) |
|
|
|
if (ok) |
|
|
|
if (cflags) |
|
|
|
set(cflags "${cflags} ${flag}") |
|
|
|
else () |
|
|
|
set(cflags "${flag}") |
|
|
|
endif () |
|
|
|
endif () |
|
|
|
endforeach () |
|
|
|
|
|
|
|
string(TOUPPER ${name} upper) |
|
|
|
set(CMAKE_C_FLAGS_${upper} "${cflags}" CACHE STRING "${name} C flags" FORCE) |
|
|
|
set(CMAKE_CXX_FLAGS_${upper} "${cflags}" CACHE STRING "${name} CXX flags" FORCE) |
|
|
|
mark_as_advanced(CMAKE_CXX_FLAGS_${upper} CMAKE_C_FLAGS_${upper}) |
|
|
|
endfunction () |