Seite 1 von 1

qmake und weietre qmake Projekte

Verfasst: 30. Dezember 2006 10:16
von QtBerserker
Hi,

irgendwie bekomme ich es nicht in die Reihe, in ein qmake (.pro) Project ein weiteres, bereits vorhandenes qmake (.pro) Project einzufügen. Beide entstanden unabhängig voneinander und sind im svn auch getrennt.

Ein einfaches include(path/to/other/project.pro) klappt nicht so recht, da die Pfade dann nicht mehr stimmen.

MasterProject project.pro:
SOURCES = src/foo.cpp
include(path/to/other/project.pro)

SubProject:
SOURCES = src/bar.cpp

Beim SubProject kommt dann bei Aufruf von qmake:
WARNING: Failure to find: src/bar.cpp

Gibt es eine Strategie oder ähnliches dafür?

Bitte nicht so Allgemeines wie RTFM - das habe ich, konkrete Hinweise sind hilfreicher.

Grüße
Olaf

Verfasst: 30. Dezember 2006 10:24
von BartSimpson
so geht es nicht.
Ein Beispiel wie man es machen kann, findes du
hier

Verfasst: 30. Dezember 2006 21:56
von QtBerserker
vielen Dank!

weisst jemand auch noch, wie ich Folgendes

Code: Alles auswählen

pathfile.target = pathfile
pathfile.commands = 'cat << EOF > src/CompilePaths.hpp
#ifndef COMPILE_PATH_HPP
#define COMPILE_PATH_HPP
#define CONFIGURE_PREFIX_PATH		= "$${INSTALL_PREFIX}"
#define CONFIGURE_DOCUMENTATION_PATH	= "$${INSTALL_DOCS}" 
#define CONFIGURE_HEADERS_PATH		= "$${INSTALL_HEADERS}" 
#define CONFIGURE_LIBRARIES_PATH	= "$${INSTALL_LIBS}" 
#define CONFIGURE_BINARIES_PATH		= "$${INSTALL_BINS}"
#define CONFIGURE_PLUGINS_PATH		= "$${INSTALL_PLUGINS}" 
#define CONFIGURE_DATA_PATH		= "$${INSTALL_DATA}"
#define CONFIGURE_TRANSLATIONS_PATH	= "$${INSTALL_TRANSLATIONS}"
#define CONFIGURE_SETTINGS_PATH		= "$${INSTALL_SETTINGS}"
#endif
EOF'
bzw. Äquivalentes schreiben kann? Als Fehler bekomme ich:
project.pro:109: Parse Error ('EOF'')

Grüße
Olaf

Verfasst: 1. Januar 2007 19:21
von QtBerserker
OK, so scheint es wohl nicht zu gehen. Nun versuche ich es mit folgenden (brutal de luxe) Ansatz:

generate.pri:

Code: Alles auswählen

include($${SOURCE_TREE}/admin/install.pri)

path_cpp.target = CompileTimePaths.cpp
path_cpp.args += -e 's:@CONFIGURE_PREFIX_PATH@:$${INSTALL_PREFIX}:g'
path_cpp.args += -e 's:@CONFIGURE_DOCUMENTATION_PATH@:$${INSTALL_DOCS}:g'
path_cpp.args += -e 's:@CONFIGURE_HEADERS_PATH@:$${INSTALL_HEADERS}:g'
path_cpp.args += -e 's:@CONFIGURE_LIBRARIES_PATH@:$${INSTALL_LIBS}:g'
path_cpp.args += -e 's:@CONFIGURE_BINARIES_PATH@:$${INSTALL_BINS}:g'
path_cpp.args += -e 's:@CONFIGURE_PLUGINS_PATH@:$${INSTALL_PLUGINS}:g'
path_cpp.args += -e 's:@CONFIGURE_DATA_PATH@:$${INSTALL_DATA}:g'
path_cpp.args += -e 's:@CONFIGURE_TRANSLATIONS_PATH@:$${INSTALL_TRANSLATIONS}:g'
path_cpp.args += -e 's:@CONFIGURE_SETTINGS_PATH@:$${INSTALL_SETTINGS}:g'
path_cpp.args += -e 's:@CONFIGURE_EXAMPLES_PATH@:$${INSTALL_EXAMPLES}:g'
path_cpp.args += -e 's:@CONFIGURE_DEMOS_PATH@:$${INSTALL_DEMOS}:g'
path_cpp.src   = $${SOURCE_TREE}/admin/CompileTimePaths.cpp.in
path_cpp.dest  = $${BUILD_TREE}/build/CompileTimePaths.cpp
path_cpp.commands = sed $${path_cpp.args} $${path_cpp.src} > $${path_cpp.dest}

SOURCES += $${path_cpp.dest}
QMAKE_EXTRA_TARGETS += path_cpp
mit dem src/src.pro:

Code: Alles auswählen

TARGET.depends += path_cpp
Beim Aufruf von qmake bekomme ich verständlicherweise die Warnung:
WARNING: Failure to find: /var/tmp/eda/build/CompileTimePaths.cpp

Auch wird das File nicht wie erhofft erzeugt. Wie bekomme ich das hin? Auch dürfte sed nicht unbedingt zum Std Tool unter win32 zählen, geht dass auch mit qmake Mitteln?

Vielen Dank && Grüße
Olaf