include(LLVMParseArguments) # Compile a source into an object file with just-built Clang using # a provided compile flags and dependenices. # clang_compile(<object> <source> # CFLAGS <list of compile flags> # DEPS <list of dependencies>) macro(clang_compile object_file source) parse_arguments(SOURCE "CFLAGS;DEPS" "" ${ARGN}) get_filename_component(source_rpath ${source} REALPATH) add_custom_command( OUTPUT ${object_file} COMMAND clang ${SOURCE_CFLAGS} -c -o "${object_file}" ${source_rpath} MAIN_DEPENDENCY ${source} DEPENDS clang ${SOURCE_DEPS}) endmacro()