cmake конвертировать в объектный файл

У меня есть проект Keil для цели ARM, который я преобразовал в Makefile для системы сборки командной строки. Я также думал об использовании cmake, но не могу найти правильный способ команды /cmakey для выполнения задачи. Мой Makefile преобразует целую кучу исходных файлов из разных каталогов и создает из них объектные файлы. Затем компоновщик берет все эти объектные файлы, чтобы сделать исполняемый файл с набором флагов и файлов карты памяти. Так что я не могу просто использовать add_executable команда. Что может быть лучшим способом сделать это в cmake?

РЕДАКТИРОВАТЬ:

Итак, вот что пытается сделать Makefile (в основном копирует способ, которым Keil строит проект)

OBJECT_FILES=out/abc.o out/def.o out/xyz.o

all: binary.hex

binary.hex: binary.axf
           $(ELFTOHEX) $(FLAGS) binary.hex

out/binary.axf: $(OBJECT_FILES)
               ARMLINK $(MANY_FLAGS) $^ -o $@

out/abc.o: ../../../src/modules/abc.c
       ARMCC -o $@ $(FLAGS) $^ 
out/def.o: ../../../src/utilities/def.c
       ARMCC -o $@ $(FLAGS) $^ 
out/xyz.o: src/xyz.c
       ARMCC -o $@ $(FLAGS) $^ 

1 ответ

Решение

Ты можешь использовать add_library с OBJECT подпись:

add_library(yourlib OBJECT sources)

а затем связать их в исполняемый файл, например:

add_executable(yourexe $<TARGET_OBJECTS:yourlib>)
Другие вопросы по тегам