Opened 8 years ago

Closed 8 years ago

#233 closed defect (fixed)

Wrong executable location for debug_and_release

Reported by: rudi Owned by:
Priority: major Milestone: Qt 4.7
Component: qmake Version:
Severity: low Keywords:
Cc:

Description

When rebuilding a project the uses debug_and_release (non-shadow), I noticed that the executable and *.SYM file ended up in the current (i.e. the source) directory. With previous versions (as well as on Windows), the executables are created in the debug and release subdirectories. The current makefile.xxxx section looks like this:

QMAKE_TARGET  = DoseControl
DESTDIR        =
TARGET         = DoseControl.exe
DESTDIR_TARGET = DoseControl.exe

while previous versions of QMake created:

QMAKE_TARGET  = DoseControl
DESTDIR        = release #avoid trailing-slash linebreak
TARGET         = DoseControl.exe
DESTDIR_TARGET = release\DoseControl.exe

Change History (5)

comment:1 Changed 8 years ago by dmik

I guess you use the shadow build of Qt with this project and the project's CONFIG statement only contains "debug_and_release" and no "debug_and_release_target" (or "debug_and_release_target" is missing from CONFIG for some other reason). The latter option is responsible to place the resulting executable to the separate directories.

I checked both shadow and non-shadow builds here, everything works.

comment:2 Changed 8 years ago by rudi

You are right, debug_and_release_target is not there. However, in Windows, this option is set in qmake.conf while in our case it is not. In 4.6.3 it was set in qtconfig.pri. That's why 4.6.3 and 4.7.3 behave differently on OS/2.

comment:3 Changed 8 years ago by rudi

Ahh, now I see why. It's caused by configure.cmd. When a shadow build is requested, configure.cmd will ignore the option "-debug-and-release" unless you specify "-release" before. This is, because G.CFG_DEBUG stays on "auto" even though the user has forced it otherwise.

comment:4 Changed 8 years ago by dmik

In other words, -debug-and-release didn't have any effect unless -release was also specified. It's a "feature" of the original configure which I copied over. However, I see no point in maintaining compatibility here, so I fixed it in r1001.

comment:5 Changed 8 years ago by dmik

  • Resolution set to fixed
  • Status changed from new to closed
Note: See TracTickets for help on using tickets.