CMake и текстовые файлы с расширением .OBJ - PullRequest
0 голосов
/ 30 октября 2018

У меня есть проект Mac OS CMake, в котором я пытаюсь связать текстовые файлы .obj Wavefront с ресурсами приложения (https://en.wikipedia.org/wiki/Wavefront_.obj_file): содержимое не имеет значения, но случается, что стандартное расширение для этого формата is .obj.

Теперь, если я назову файлы чем-нибудь. Но я хочу сохранить оригинальное расширение .obj. Я хочу добиться того, чтобы мой целевой исполняемый файл также зависел от файла ресурсов .obj, так как изменение ресурса должно воссоздать пакет с новым файлом. Моя проблема в том, что любая зависимость от файла с именем .obj интерпретируется как объект кода, а компоновщик просто выдает ошибки:

ld: предупреждение: игнорирование файла ../../assets/file.obj, файл создан для неподдерживаемого формата файла (0x23 0x20 0x42 0x6C 0x65 0x6E 0x64 0x65 0x72 0x20 0x76 0x32 0x2E 0x37 0x39 0x20), который не является связанная архитектура (x86_64): ../../assets/file.obj

Из того, что я вижу, любые другие файлы, которые находятся в том же каталоге с "неизвестными" расширениями, такими как .mtl, копируются правильно, но этот файл .obj должен вызывать некоторые правила, связанные с компоновщиком.

Как я могу заставить cmake просто обрабатывать файл как «текстовый файл для копирования» независимо, если он назывался .obj, .cpp или .o?

1 Ответ

0 голосов
/ 30 октября 2018

Мне кажется, я нашел решение своего вопроса:

set_source_files_properties(${ASSET_FILES} PROPERTIES
    HEADER_FILE_ONLY ON
    )

Это передаст ASSET_FILES через компоновщик без проблем

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...