crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> qmake скрипт прогоняет несколько раз, система сборки qmake
SmileGobo
  опции профиля:
сообщение 27.3.2013, 10:39
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 29.12.2012
Пользователь №: 3662

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




Репутация:   0  


Использую QtCreator 2.5 Qt 4.8.4 MSVC2010. Собственно самфреймворк не использую. Написал статическую библиотеку под Linux. Для сборки стал сооружать такой скрипт:
#-------------------------------------------------
#
# Project created by QtCreator 2013-03-26T09:45:05
#
#-------------------------------------------------

QT       -= core gui

MODULE_NAME=Util
TEMPLATE = lib
CONFIG += staticlib

SOURCES += \
    QueueGlasssCash.cpp \
    GravityPhase.cpp

HEADERS += \
    type.h \
    QueueGlassCash.h \
    GravityPhase.h \
    Factory.h



BASE_PATH=$${PWD}/..
BUILD_TYPE=release
RM=
MKDIR=
win32{
    QMAKE_CXXFLAGS += -std=c++0x
    RM=rmdir /q/s
    MKDIR=md
}
else:unix{
    RM_CMD=rm -f
    MKDIR=mkdir -p
}
CONFIG(debug, debug|release) {
    SUFIX=d
    BUILD_TYPE=debug
}

OBJ_DIR=$$BASE_PATH/obj/$${BUILD_TYPE}/$${MODULE_NAME}
DEST_DIR=$${BASE_PATH}/lib
system($$MKDIR $$OBJ_DIR)
system($$MKDIR $$DEST_DIR)
DESTDIR = $${DEST_DIR}
OBJECTS_DIR = $${OBJ_DIR}
TARGET=$${MODULE_NAME}$${SUFIX}
#не удаляет при clean
QMAKE_CLEAN+= -r $${DEST_DIR}/lib$${TARGET}.a
#INSTALLS += target

В Linux(Debian) все прекрасно работает создает уровнем выше структуру директорий как мне нужно
obj
{MODULE_NAME}
{BUILD_TYPE}
lib

А в виндах начинает дурить вызывается почему-то 3 раза, ругается что директории созданы(ну это в принципе ясно).
Из-за чего в директории с исходником создаются каталоги release и debug и объектники начинает скидывать в obj/{MODULE_NAME} не различая тип сборки.
Почему скрипт qmake запускается несколько раз?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SmileGobo
  опции профиля:
сообщение 27.3.2013, 12:31
Сообщение #2


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 29.12.2012
Пользователь №: 3662

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




Репутация:   0  


Поколдовал со скриптами заработало, но с консоли все равно три вызова... Но в креаторе работает корректно...

BASE_PATH=$${PWD}/..

win32{

    QMAKE_CLEAN+= -r $${DESTDIR}/$${TARGET}.lib
}
else:unix{
    QMAKE_CXXFLAGS += -std=c++0x
    QMAKE_CLEAN+= -r $${DESTDIR}/lib$${TARGET}.a
}
BUILD_TYPE=release
CONFIG(debug, debug|release) {
    SUFIX=d
    BUILD_TYPE=debug
}

DESTDIR = $$BASE_PATH/lib
OBJECTS_DIR = $$BASE_PATH/obj/$${MODULE_NAME}/$${BUILD_TYPE}
TARGET=$${MODULE_NAME}$${SUFIX}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Padawan
  опции профиля:
сообщение 28.6.2013, 7:23
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 5
Регистрация: 28.11.2008
Пользователь №: 439

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




Репутация:   0  


А попробуйте qbs, очень даже ничего инструмент.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 28.6.2013, 20:11
Сообщение #4


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

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

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




Репутация:   94  


Цитата(SmileGobo @ 27.3.2013, 12:39) *
Из-за чего в директории с исходником создаются каталоги release и debug и объектники начинает скидывать в obj/{MODULE_NAME} не различая тип сборки.Почему скрипт qmake запускается несколько раз?
если создаются каталоги release и debug, значит qmak-у что-то не понравилось в настройках профайла, поэтому он пошёл по стандартной схеме.


Цитата(SmileGobo @ 27.3.2013, 12:39) *
А в виндах начинает дурить вызывается почему-то 3 раза
вызывается 3 раза т.к. 3 разных make-файла есть (корневой и для каждого типа сборки).

П.С.
я когда-то давно сделал себе один pri-файл, он у меня включается в каждый проект.
Можешь сделать по аналогии, если Виндовоз, то включить такой pri-файл, если Линух - то другой.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 2.12.2024, 3:28