Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: qmake скрипт прогоняет несколько раз
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt инструментарий
SmileGobo
Использую 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
Поколдовал со скриптами заработало, но с консоли все равно три вызова... Но в креаторе работает корректно...

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
А попробуйте qbs, очень даже ничего инструмент.
Litkevich Yuriy
Цитата(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-файл, если Линух - то другой.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.