On Sun, Aug 23, 2009 at 09:03:22PM -0400, John Smith wrote:
> I am using the following test case in an attempt to add a custom
> command to build an assembly file. The assembly file should be
> compiled with the C++ compiler driver (which in turn should invoke the
> assembler after pre-processing), and I am building up a
> CMAKE_CXX_FLAGS variable from separate pieces:
I think you can just hand your .S files to add_library(). Did you try
searching the ML archives or google for how to handle assembler files
with CMake?
> set(CMAKE_CXX_FLAGS -m32)
When you do this, you clobber the pre-existing value of CMAKE_CXX_FLAGS,
which has some defaults that are probably useful for your platform. Are
you sure this is what you want?
> set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
>
> message (STATUS "CMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}")
>
> file (GLOB ASM_SRCS bar.S)
As a general rule, you probably don't want to use file (GLOB ...). Here
you can just say set(ASM_SRCS bar.S).
> foreach (src ${ASM_SRCS})
> get_filename_component (FILE_BASE ${src} NAME_WE)
> set (SRC ${src})
> set (OBJ ${CMAKE_CURRENT_BINARY_DIR}/${FILE_BASE}.o)
> add_custom_command (OUTPUT ${OBJ}
> MAIN_DEPENDENCY ${SRC}
> COMMAND ${CMAKE_CXX_COMPILER}
> ARGS ${CMAKE_CXX_FLAGS} -o ${OBJ} -c ${SRC}
> MAIN_DEPENDENCY ${src})
> set (ASM_OBJS ${ASM_OBJS} ${OBJ})
> endforeach(src)
>
> add_library(test SHARED foo.cpp bar.S)
Yeah I think you're overthinking this. Look for some CMake examples that
use assembler and go from there.
tyler
_______________________________________________
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Please keep messages on-topic and check the CMake FAQ at:
http://www.cmake.org/Wiki/CMake_FAQ
Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake