You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
400 lines
15 KiB
400 lines
15 KiB
/***************************************************************************
|
|
* Copyright (C) 2003 by Alexander Dymo *
|
|
* cloudtemple@mksat.net *
|
|
* *
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
***************************************************************************/
|
|
#include <kdialog.h>
|
|
#include <tdelocale.h>
|
|
|
|
#include <tqspinbox.h>
|
|
#include <tqlabel.h>
|
|
#include <tqlayout.h>
|
|
#include <tqvbuttongroup.h>
|
|
#include <tqapplication.h>
|
|
#include <tqpushbutton.h>
|
|
|
|
#include "flagboxes.h"
|
|
|
|
#include "optiontabs.h"
|
|
|
|
LinkerTab::LinkerTab( TQWidget * parent, const char * name )
|
|
: TQWidget(parent, name), radioController(new FlagRadioButtonController()),
|
|
pathController(new FlagPathEditController()),
|
|
editController(new FlagEditController())
|
|
{
|
|
TQBoxLayout *layout = new TQVBoxLayout(this, KDialog::marginHint(), KDialog::spacingHint());
|
|
layout->setAutoAdd(true);
|
|
|
|
TQVButtonGroup *map_group = new TQVButtonGroup(i18n("Map File"), this);
|
|
TQRadioButton *m_defaultMap = new TQRadioButton(i18n("Off"), map_group);
|
|
m_defaultMap->setChecked(true);
|
|
new FlagRadioButton(map_group, radioController,
|
|
"-GS", i18n("Segments"));
|
|
new FlagRadioButton(map_group, radioController,
|
|
"-GP", i18n("Publics"));
|
|
new FlagRadioButton(map_group, radioController,
|
|
"-GD", i18n("Detailed"));
|
|
TQApplication::sendPostedEvents(this, TQEvent::ChildInserted);
|
|
layout->addSpacing(10);
|
|
|
|
new FlagPathEdit(this, "", pathController,
|
|
"--dynamicloader=", i18n("Default dynamic loader:"), KFile::File);
|
|
TQApplication::sendPostedEvents(this, TQEvent::ChildInserted);
|
|
layout->addSpacing(10);
|
|
|
|
new FlagSpinEdit(this, 0, 2147483647, 1024, 1048576, editController,
|
|
"-$M", i18n("Reserved address space:"));
|
|
TQApplication::sendPostedEvents(this, TQEvent::ChildInserted);
|
|
layout->addSpacing(10);
|
|
|
|
layout->addStretch();
|
|
}
|
|
|
|
LinkerTab::~LinkerTab( )
|
|
{
|
|
delete radioController;
|
|
delete pathController;
|
|
delete editController;
|
|
}
|
|
|
|
void LinkerTab::readFlags( TQStringList * str )
|
|
{
|
|
pathController->readFlags(str);
|
|
radioController->readFlags(str);
|
|
editController->readFlags(str);
|
|
}
|
|
|
|
void LinkerTab::writeFlags( TQStringList * str )
|
|
{
|
|
pathController->writeFlags(str);
|
|
radioController->writeFlags(str);
|
|
editController->writeFlags(str);
|
|
}
|
|
|
|
|
|
|
|
LocationsTab::LocationsTab( TQWidget * parent, const char * name )
|
|
:TQWidget(parent, name), pathController(new FlagPathEditController())
|
|
{
|
|
TQBoxLayout *layout = new TQVBoxLayout(this, KDialog::marginHint(), KDialog::spacingHint());
|
|
layout->setAutoAdd(true);
|
|
|
|
new FlagPathEdit(this, ":", pathController,
|
|
"-I", i18n("Include search path (delimited by \":\"):"));
|
|
new FlagPathEdit(this, ":", pathController,
|
|
"-R", i18n("Resource search path (delimited by \":\"):"));
|
|
new FlagPathEdit(this, ":", pathController,
|
|
"-U", i18n("Unit search path (delimited by \":\"):"));
|
|
new FlagPathEdit(this, ":", pathController,
|
|
"-O", i18n("Object search path (delimited by \":\"):"));
|
|
TQApplication::sendPostedEvents(this, TQEvent::ChildInserted);
|
|
layout->addStretch();
|
|
}
|
|
|
|
LocationsTab::~LocationsTab( )
|
|
{
|
|
delete pathController;
|
|
}
|
|
|
|
void LocationsTab::readFlags( TQStringList * str )
|
|
{
|
|
pathController->readFlags(str);
|
|
}
|
|
|
|
void LocationsTab::writeFlags( TQStringList * str )
|
|
{
|
|
pathController->writeFlags(str);
|
|
}
|
|
|
|
|
|
|
|
Locations2Tab::Locations2Tab( TQWidget * parent, const char * name )
|
|
:TQWidget(parent, name), pathController(new FlagPathEditController())
|
|
{
|
|
TQBoxLayout *layout = new TQVBoxLayout(this, KDialog::marginHint(), KDialog::spacingHint());
|
|
layout->setAutoAdd(true);
|
|
|
|
new FlagPathEdit(this, "", pathController,
|
|
"-E", i18n("Executable output directory:"));
|
|
new FlagPathEdit(this, "", pathController,
|
|
"-N", i18n("Unit output directory:"));
|
|
new FlagPathEdit(this, "", pathController,
|
|
"-LE", i18n("Package directory:"));
|
|
new FlagPathEdit(this, "", pathController,
|
|
"-LN", i18n("Package source code directory:"));
|
|
TQApplication::sendPostedEvents(this, TQEvent::ChildInserted);
|
|
layout->addStretch();
|
|
}
|
|
|
|
Locations2Tab::~Locations2Tab( )
|
|
{
|
|
delete pathController;
|
|
}
|
|
|
|
void Locations2Tab::readFlags( TQStringList * str )
|
|
{
|
|
pathController->readFlags(str);
|
|
}
|
|
|
|
void Locations2Tab::writeFlags( TQStringList * str )
|
|
{
|
|
pathController->writeFlags(str);
|
|
}
|
|
|
|
|
|
|
|
GeneralTab::GeneralTab( TQWidget * parent, const char * name )
|
|
:TQWidget(parent, name), controller(new FlagCheckBoxController()),
|
|
editController(new FlagEditController())
|
|
{
|
|
TQBoxLayout *layout = new TQVBoxLayout(this, KDialog::marginHint(), KDialog::spacingHint());
|
|
layout->setAutoAdd(true);
|
|
|
|
TQVButtonGroup *build_group = new TQVButtonGroup(i18n("Build"), this);
|
|
new FlagCheckBox(build_group, controller,
|
|
"-B", i18n("Build all units"));
|
|
new FlagCheckBox(build_group, controller,
|
|
"-M", i18n("Make modified units"));
|
|
new FlagCheckBox(build_group, controller,
|
|
"-Q", i18n("Quiet compile"));
|
|
new FlagCheckBox(build_group, controller,
|
|
"-Z", i18n("Disable implicit package compilation"));
|
|
TQApplication::sendPostedEvents(this, TQEvent::ChildInserted);
|
|
|
|
layout->addSpacing(10);
|
|
|
|
new FlagListEdit(this, ":", editController, "-D", i18n("Conditional defines (delimited by \":\"):"));
|
|
TQApplication::sendPostedEvents(this, TQEvent::ChildInserted);
|
|
|
|
new FlagListEdit(this, ":", editController, "-A", i18n("Unit aliases in form unit=alias (delimited by \":\"):"));
|
|
TQApplication::sendPostedEvents(this, TQEvent::ChildInserted);
|
|
|
|
layout->addSpacing(10);
|
|
|
|
TQVButtonGroup *message_group = new TQVButtonGroup(i18n("Messages"), this);
|
|
new FlagCheckBox(message_group, controller,
|
|
"-H", i18n("Output hint messages"));
|
|
new FlagCheckBox(message_group, controller,
|
|
"-W", i18n("Output warning messages"));
|
|
TQApplication::sendPostedEvents(this, TQEvent::ChildInserted);
|
|
|
|
layout->addSpacing(10);
|
|
TQVButtonGroup *package_group = new TQVButtonGroup(i18n("Packages"), this);
|
|
new FlagListEdit(package_group, ":", editController, "-LU", i18n("Build with packages (delimited by \":\"):"));
|
|
TQApplication::sendPostedEvents(this, TQEvent::ChildInserted);
|
|
|
|
layout->addStretch();
|
|
}
|
|
|
|
GeneralTab::~GeneralTab( )
|
|
{
|
|
delete controller;
|
|
delete editController;
|
|
}
|
|
|
|
void GeneralTab::readFlags( TQStringList * str )
|
|
{
|
|
controller->readFlags(str);
|
|
editController->readFlags(str);
|
|
}
|
|
|
|
void GeneralTab::writeFlags( TQStringList * str )
|
|
{
|
|
controller->writeFlags(str);
|
|
editController->writeFlags(str);
|
|
}
|
|
|
|
|
|
|
|
CodegenTab::CodegenTab( TQWidget * parent, const char * name )
|
|
:TQWidget(parent, name), controller(new FlagCheckBoxController()),
|
|
listController(new FlagEditController()),
|
|
radioController(new FlagRadioButtonController())
|
|
{
|
|
TQBoxLayout *layout = new TQVBoxLayout(this, KDialog::marginHint(), KDialog::spacingHint());
|
|
// layout->setAutoAdd(true);
|
|
|
|
TQGridLayout *layout2 = new TQGridLayout(layout, 2, 2, KDialog::spacingHint());
|
|
|
|
TQVButtonGroup *align_group = new TQVButtonGroup(i18n("Code Alignment && Stack Frames"), this);
|
|
TQRadioButton *align_def = new TQRadioButton(i18n("Default (-$A8)"), align_group);
|
|
align_def->setChecked(true);
|
|
new FlagRadioButton(align_group, radioController,
|
|
"'-$A1'", i18n("Never align"));
|
|
new FlagRadioButton(align_group, radioController,
|
|
"'-$A2'", i18n("On word boundaries"));
|
|
new FlagRadioButton(align_group, radioController,
|
|
"'-$A4'", i18n("On double word boundaries"));
|
|
new FlagRadioButton(align_group, radioController,
|
|
"'-$A8'", i18n("On quad word boundaries"));
|
|
new FlagCheckBox(align_group, controller,
|
|
"'-$W+'", i18n("Generate stack frames"), "'-$W-'");
|
|
TQApplication::sendPostedEvents(this, TQEvent::ChildInserted);
|
|
layout2->addWidget(align_group, 0, 0);
|
|
|
|
TQVButtonGroup *enum_group = new TQVButtonGroup(i18n("Enumeration Size"), this);
|
|
TQRadioButton *enum_def = new TQRadioButton(i18n("Default (-$Z1)"), enum_group);
|
|
enum_def->setChecked(true);
|
|
new FlagRadioButton(enum_group, radioController,
|
|
"'-$Z1'", i18n("Unsigned byte (256 values)"));
|
|
new FlagRadioButton(enum_group, radioController,
|
|
"'-$Z2'", i18n("Unsigned word (64K values)"));
|
|
new FlagRadioButton(enum_group, radioController,
|
|
"'-$Z4'", i18n("Unsigned double word (4096M values)"));
|
|
TQApplication::sendPostedEvents(this, TQEvent::ChildInserted);
|
|
layout2->addWidget(enum_group, 0, 1);
|
|
|
|
TQVButtonGroup *compile_group = new TQVButtonGroup(i18n("Compile Time Checks"), this);
|
|
new FlagCheckBox(compile_group, controller,
|
|
"'-$C+'", i18n("Assertions"), "'-$C-'", "'-$C+'");
|
|
new FlagCheckBox(compile_group, controller,
|
|
"'-$B+'", i18n("Complete boolean evaluation"), "'-$B-'");
|
|
new FlagCheckBox(compile_group, controller,
|
|
"'-$X+'", i18n("Extended syntax"), "'-$X-'", "'-$X+'");
|
|
new FlagCheckBox(compile_group, controller,
|
|
"'-$H+'", i18n("Long strings"), "'-$H-'", "'-$H+'");
|
|
new FlagCheckBox(compile_group, controller,
|
|
"'-$P+'", i18n("Open string parameters"), "'-$P-'", "'-$P+'");
|
|
new FlagCheckBox(compile_group, controller,
|
|
"'-$T+'", i18n("Type-checked pointers"), "'-$T-'");
|
|
new FlagCheckBox(compile_group, controller,
|
|
"'-$V+'", i18n("Var-string checking"), "'-$V-'", "'-$V+'");
|
|
new FlagCheckBox(compile_group, controller,
|
|
"'-$J+'", i18n("Writable typed constants"), "'-$J-'");
|
|
TQApplication::sendPostedEvents(this, TQEvent::ChildInserted);
|
|
layout2->addWidget(compile_group, 1, 0);
|
|
|
|
TQVButtonGroup *run_group = new TQVButtonGroup(i18n("Run Time Checks"), this);
|
|
new FlagCheckBox(run_group, controller,
|
|
"'-$M+'", i18n("Runtime type information"), "'-$M-'");
|
|
new FlagCheckBox(run_group, controller,
|
|
"'-$G+'", i18n("Imported data references"), "'-$G-'", "'-$G+'");
|
|
new FlagCheckBox(run_group, controller,
|
|
"'-$I+'", i18n("Input/Output checking"), "'-$I-'", "'-$I+'");
|
|
new FlagCheckBox(run_group, controller,
|
|
"'-$Q+'", i18n("Overflow checking"), "'-$Q-'");
|
|
new FlagCheckBox(run_group, controller,
|
|
"'-$R+'", i18n("Range checking"), "'-$R-'");
|
|
TQApplication::sendPostedEvents(this, TQEvent::ChildInserted);
|
|
layout2->addWidget(run_group, 1, 1);
|
|
|
|
layout->addStretch();
|
|
}
|
|
|
|
CodegenTab::~CodegenTab( )
|
|
{
|
|
delete controller;
|
|
delete listController;
|
|
delete radioController;
|
|
}
|
|
|
|
void CodegenTab::readFlags( TQStringList * str )
|
|
{
|
|
controller->readFlags(str);
|
|
listController->readFlags(str);
|
|
radioController->readFlags(str);
|
|
}
|
|
|
|
void CodegenTab::writeFlags( TQStringList * str )
|
|
{
|
|
controller->writeFlags(str);
|
|
listController->writeFlags(str);
|
|
radioController->writeFlags(str);
|
|
}
|
|
|
|
|
|
|
|
DebugOptimTab::DebugOptimTab( TQWidget * parent, const char * name )
|
|
: TQWidget(parent, name), controller(new FlagCheckBoxController()),
|
|
radioController(new FlagRadioButtonController)
|
|
{
|
|
TQBoxLayout *layout = new TQVBoxLayout(this, KDialog::marginHint(), KDialog::spacingHint());
|
|
// layout->setAutoAdd(true);
|
|
|
|
TQVButtonGroup *optim_group = new TQVButtonGroup(i18n("Optimization"), this);
|
|
new FlagCheckBox(optim_group, controller,
|
|
"'-$O+'", i18n("Enable optimizations"), "'-$O-'", "'-$O+'");
|
|
layout->addWidget(optim_group);
|
|
TQApplication::sendPostedEvents(this, TQEvent::ChildInserted);
|
|
layout->addSpacing(10);
|
|
|
|
TQBoxLayout *layout2 = new TQHBoxLayout(layout, KDialog::spacingHint());
|
|
|
|
TQVButtonGroup *debug_group = new TQVButtonGroup(i18n("Debugging"), this);
|
|
new FlagCheckBox(debug_group, controller,
|
|
"'-$D+'", i18n("Debug information"), "'-$D-'", "'-$D+'");
|
|
new FlagCheckBox(debug_group, controller,
|
|
"'-$L+'", i18n("Local symbol information"), "'-$L-'", "'-$L+'");
|
|
gdb = new FlagCheckBox(debug_group, controller,
|
|
"-V", i18n("Debug information for GDB"));
|
|
namespacedb = new FlagCheckBox(debug_group, controller,
|
|
"-VN", i18n("Namespace debug info"));
|
|
symboldb = new FlagCheckBox(debug_group, controller,
|
|
"-VR", i18n("Write symbol info in an .rsm file"));
|
|
layout2->addWidget(debug_group);
|
|
TQApplication::sendPostedEvents(this, TQEvent::ChildInserted);
|
|
|
|
TQVButtonGroup *debug_add = new TQVButtonGroup(i18n("Symbol Reference Information"), this);
|
|
TQRadioButton *m_default = new TQRadioButton(i18n("Default (-$YD)"), debug_add);
|
|
m_default->setChecked(true);
|
|
new FlagRadioButton(debug_add, radioController,
|
|
"'-$Y-'", i18n("No information"));
|
|
new FlagRadioButton(debug_add, radioController,
|
|
"'-$YD'", i18n("Definition information"));
|
|
new FlagRadioButton(debug_add, radioController,
|
|
"'-$Y+'", i18n("Full reference information"));
|
|
layout2->addWidget(debug_add);
|
|
TQApplication::sendPostedEvents(this, TQEvent::ChildInserted);
|
|
layout->addSpacing(10);
|
|
|
|
TQHBoxLayout *layout3 = new TQHBoxLayout(layout, KDialog::spacingHint());
|
|
TQPushButton *release = new TQPushButton(i18n("Release"), this);
|
|
TQPushButton *debug = new TQPushButton(i18n("Debug"), this);
|
|
layout3->addWidget(release);
|
|
layout3->addWidget(debug);
|
|
TQApplication::sendPostedEvents(this, TQEvent::ChildInserted);
|
|
connect(release, TQ_SIGNAL(clicked()), this, TQ_SLOT(setReleaseOptions()));
|
|
connect(debug, TQ_SIGNAL(clicked()), this, TQ_SLOT(setDebugOptions()));
|
|
|
|
layout->addStretch();
|
|
}
|
|
|
|
DebugOptimTab::~ DebugOptimTab( )
|
|
{
|
|
delete controller;
|
|
delete radioController;
|
|
}
|
|
|
|
void DebugOptimTab::readFlags( TQStringList * str )
|
|
{
|
|
controller->readFlags(str);
|
|
radioController->readFlags(str);
|
|
}
|
|
|
|
void DebugOptimTab::writeFlags( TQStringList * str )
|
|
{
|
|
controller->writeFlags(str);
|
|
radioController->writeFlags(str);
|
|
}
|
|
|
|
void DebugOptimTab::setReleaseOptions()
|
|
{
|
|
TQStringList sl = TQStringList::split(",", "'-$O+','-$Y-','-$D-','-$L-'");
|
|
readFlags(&sl);
|
|
gdb->setChecked(false);
|
|
namespacedb->setChecked(false);
|
|
symboldb->setChecked(false);
|
|
}
|
|
|
|
void DebugOptimTab::setDebugOptions()
|
|
{
|
|
TQStringList sl = TQStringList::split(",", "'-$O-','-$Y+','-$D+','-$L+',-V,-VN");
|
|
readFlags(&sl);
|
|
}
|
|
|
|
#include "optiontabs.moc"
|