On Friday 13 September 2013, lorddoskias wrote: > 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.
In general they don't interfer. What compiler and assembler are you using ? Maybe you need a new "assembler dialect". Those are quite simply to do, you can have a look e.g. at the files containing "MASM" in their name in Modules/. > 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 To get full support for keywords etc. in your own macros/functions, have a look at CMakeParseArguments.cmake. Alex -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://www.cmake.org/mailman/listinfo/cmake