[CMake] Separate compile flags for ASM/C compilers and lists

lorddoskias lorddoskias at gmail.com
Fri Sep 13 13:30:38 EDT 2013


Hello list,

I have a couple of questions whose answers I couldn't find. So first 
thing's first - I have the following function which I intend to use to 
add a number of library targets:

function(build_mps_m3_lib LIBRARY_NAME C_SOURCE ASM_SOURCE CPU_TYPE)
     set_property(SOURCE ${${C_SOURCE}} PROPERTY COMPILE_FLAGS "-g 
--cpu=${CPU_TYPE} -O0")
     set_property(SOURCE ${${ASM_SOURCE}} PROPERTY COMPILE_FLAGS "-g 
--cpu=${CPU_TYPE} --apcs=interwork")
     add_library(${LIBRARY_NAME}  ${${SOURCE}} ${${ASM_SOURCE}})
     set(TARGET_DIR "mps-m3")
     set(ASM_COMPILE_FLAGS "-g --cpu=${CPU_TYPE} --apcs=interwork")
     #custom armasm command line
     set(CMAKE_ASM_COMPILE_OBJECT "<CMAKE_ASM_COMPILER> 
${ASM_COMPILE_FLAGS} <SOURCE> -o <OBJECT>")
     #set_target_properties(${LIBRARY_NAME} PROPERTIES C_COMPILE_FLAGS 
"-g --cpu=${CPU_TYPE} -O0")
endfunction(build_mps_m3_lib)


What I want to achieve is to have clear separation between the ASM 
compiler flags and the C compiler flags. Since I'm not using the GNU 
(ergo GCC) toolchain I cannot simply set the properties on the resulting 
library target to set the COMPILE_FLAGS. Essentially what I want to 
achieve is being able to set arbitrary compile options for the C and ASM 
compiler WITHOUT both of those interfering.

My second questions: The way I pass the lists of sources is kind of ugly 
- e.g. I'm, in-essence, doing double indirection the ${${blah}} thingy. 
What would be the correct way. I tried with ${blah-list} but this skewed 
the arguments order


Regards
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20130913/040009b0/attachment.htm>


More information about the CMake mailing list