blob: fce37e3eb49a752e19a6cffb9a2895bb1b28c296 [file] [log] [blame]
Alexey Samsonov163ab9d2013-01-18 16:05:21 +00001# Because compiler-rt spends a lot of time setting up custom compile flags,
2# define a handy helper function for it. The compile flags setting in CMake
3# has serious issues that make its syntax challenging at best.
4function(set_target_compile_flags target)
5 foreach(arg ${ARGN})
6 set(argstring "${argstring} ${arg}")
7 endforeach()
8 set_property(TARGET ${target} PROPERTY COMPILE_FLAGS "${argstring}")
9endfunction()
10
11function(set_target_link_flags target)
12 foreach(arg ${ARGN})
13 set(argstring "${argstring} ${arg}")
14 endforeach()
15 set_property(TARGET ${target} PROPERTY LINK_FLAGS "${argstring}")
16endfunction()
17
Alexey Samsonov5cb78602013-02-08 07:39:25 +000018# Check if a given flag is present in a space-separated flag_string.
19# Store the result in out_var.
20function(find_flag_in_string flag_string flag out_var)
21 string(REPLACE " " ";" flag_list ${flag_string})
22 list(FIND flag_list ${flag} flag_pos)
23 if(NOT flag_pos EQUAL -1)
24 set(${out_var} TRUE PARENT_SCOPE)
25 else()
26 set(${out_var} FALSE PARENT_SCOPE)
27 endif()
28endfunction()
Peter Collingbournecbdea322013-10-25 23:03:34 +000029
30# Set the variable var_PYBOOL to True if var holds a true-ish string,
31# otherwise set it to False.
32macro(pythonize_bool var)
33 if (${var})
34 set(${var}_PYBOOL True)
35 else()
36 set(${var}_PYBOOL False)
37 endif()
38endmacro()