crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> qmake <=> CMake
Litkevich Yuriy
  опции профиля:
сообщение 5.5.2010, 12:31
Сообщение #1


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Задумал перевести один из своих проектов на CMake. И никак не пойму, как создать иерархическую систему в стиле pri-файлов, т.е. чтобы были макимально независимые куски. По этому решил тут тему создать. Что-то вроде "копилки решений"

Предположим, что структура исходного проекта, использующего qmake такова:

/
| - project.pro
| - 3rdparty/
|     | - firstlib/
|     |    | - firstlib.pri
|     |    | - ...
|     | - secondlib/
|     |    | - secondlib.pri
|     |    | - ...
| - src/
|     | - src.pro
|     | - main.cpp
|     | - first.h
|     | - first.cpp
|     | - second.h
|     | - second.cpp


При этом корневой файл проекта (project.pro) выглядит так:
TEMPLATE  = subdirs
CONFIG    += debug_and_release
# Input
SUBDIRS   += src

src.pro:
TARGET = test
TEMPLATE = app
DESTDIR = ..
# Input
HEADERS += first.h second.h
SOURCES += main.cpp first.cpp second.cpp
INCLUDEPATH += ./
include(../3rdparty/firstlib/firstlib.pri)
include(../3rdparty/secondlib/secondlib.pri)

При этом pri-файлы из 3rdparty выглядят так:
firstlib.pri
INCLUDEPATH       +=    $$PWD/include
QMAKE_LIBDIR   +=    $$PWD/build
LIBS           +=  -lfirst

secondlib.pri
SOURCES += $$PWD/firstlib.cpp
HEADERS += $$PWD/firstlib.h
INCLUDEPATH +=    $$PWD/

Т.е. получается, что я могу вообще не заглядывать в pri-файлы, мне нужно только подключить их к проекту, а они сами добавят в переменные SOURCES, HEADERS, ... нужные значения.

В CMake по идее в каждый каталог нужно поместить CMakeLists.txt. В выше стоящем каталоге в одноимённом файле нужно добавить строчку add_subdirectory( имя катлога ), но как создать аналог глобальных переменных, как у qmake (SOURCES, HEADERS, ...)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.11.2024, 22:38