Скомпилируйте модуль ядра с помощью проекта qmake

У меня следующая структура проекта:

/
    general.pro
    a/
        a.pro
        some files
    b/
        b.pro
        some files
    c/
        Makefile
        some files

general.pro - это qmake-проект в стиле TEMPLATE=subdirs. Два других файла проекта являются обычными / общими файлами проекта qmake (папка a и b). Третья папка (папка c) содержит модуль ядра со следующим Makefile: http://pastebin.com/Bv39D6KK

Мне интересно, можно ли это Makefile как-нибудь перевести в файл проекта qmake. Если нет, есть ли способ найти в general.pro файле проекта папку «c», содержащую Makefile, который тоже нужно запустить?

С Уважением


person alexandernst    schedule 08.05.2013    source источник


Ответы (1)


Я действительно сомневаюсь, что вы можете включить Makefile в файл .pro.

Вот мои мысли о том, что вы можете сделать:

  1. Если c - ваш проект, вы можете просто создать для него еще один файл .pro.
  2. Если это не так, и вам не нужно его редактировать, вы можете создать его без включения в подкаталоги (если это библиотека, которую вы используете в a или b, вы все равно можете ее собрать, а затем создать файл .pri и добавить include и libs и т. д.).
  3. Если он вам нужен для машины сборки или для развертывания, вы можете использовать скрипт сборки.
  4. Вы можете использовать cmake.

Обновление:

Оказывается, есть решение.

Хотя сам не смог заставить его работать, надеюсь, поможет. Что вам нужно, так это добавить следующие строки в профессиональный файл верхнего уровня:

mytarget.commands = make -C c
QMAKE_EXTRA_TARGETS += mytarget
PRE_TARGETDEPS += mytarget

Где c - имя подкаталога, содержащего Makefile.

person Amartel    schedule 08.05.2013
comment
c - это модуль ядра, а a и b - это приложения с собственными собственными файлами проекта (.pro). general.pro строит a и b при запуске qmake && make, и я бы хотел, чтобы он запускал также Makefile в c, или, если это невозможно, каким-то образом перевести Makefile, который я вставил, в файл .pro. - person alexandernst; 08.05.2013
comment
Что ж, после некоторых исследований я нашел возможное решение добавления Makefile в .pro. - person Amartel; 08.05.2013
comment
Я тоже это обнаружил, но поместить его в мой general.pro файл не получится, так как это TEMPLATE=subdirs вместо шаблона app, что означает, что он просто не будет анализировать эти команды. (Пожалуйста, поправьте меня, если я ошибаюсь) - person alexandernst; 09.05.2013
comment
Что ж, вы можете добавить новый фиктивный подпроект и добавить к нему эти строки, или вы даже можете добавить его в один из существующих профессиональных файлов с помощью команды make -C ../c (или что-то вроде этого). - person Amartel; 09.05.2013
comment
Вы имеете в виду, что я могу писать простые Makefile инструкции внутри .pro файла? Или что вы имеете в виду под фиктивным подпроектом? - person alexandernst; 09.05.2013
comment
Внутри каталога c вы создаете файл c.pro, который содержит mytarget, и добавляете его в general.pro как подкаталог. Единственная проблема в том, что если c.pro не будет содержать ничего, кроме этих трех строк, компилятор будет жаловаться на отсутствие main, поэтому вы можете создать мини-приложение, которое ничего не делает. Я называю это a dummy subproject - person Amartel; 09.05.2013