Developer forums (C::B DEVELOPMENT STRICTLY!) > Plugins development

QtWorkbench plugin

<< < (19/44) > >>

fleuba:
Hello,

that's fine, we will take a look at your source code and see if we can push it forward. I know it is difficult to match together job, private obligation and open source dev done in "free time".
Your job is already a good step, perhaps we can bring it to another level.

We'll keep you informed here.

Good luck for your job, have a nice time.
Fred

yop:
If you have any progress with it please let me know (email, forum whatever). I will give you commit access to the sources so you can work more efficiently. I hope my code isn't too bad (haven't seen it for a while  :?). If I find any time to also work with it I 'll make sure the changes are commited. Thanks for your intrest.

Have a good day,
Yorgos

yop:
OK I did manage to take a look at the plugin and it is fixed :) I even added support for virtual targets (scopes in the .pro file) and the resulting Makefile builds nicely from the command line. I do have a show stopper in the compiler plugin in int CompilerGCC::Build(const wxString& target). See below (my comments):

--- Code: (cpp) ---    //If the target is empty (it is for building the All virtual target), then get the first of the virtual
    //target's actual and set the realTarget to it's name.
    wxString realTarget = !target.IsEmpty() ? target : (m_SelectedTargets.GetCount() ? m_SelectedTargets[0] : _T(""));
    m_BuildSelectedTargets = m_SelectedTargets;
    m_BuildSelectedTargets.RemoveAt(0);

    ProjectBuildTarget* bt = m_Project->GetBuildTarget(realTarget);
    // bt is the first target of the virtual target's members.
if (UseMake(bt))
    {
        // make sure all project files are saved
        if (m_Project && !m_Project->SaveAllFiles())
            Manager::Get()->GetMessageManager()->Log(_("Could not save all files..."));
        // gets the command for the first target of the virtual target
        wxString cmd = GetMakeCommandFor(mcBuild, bt);
        // Fire and forget, only the first target get's build :(
        m_CommandQueue.Add(new CompilerCommand(cmd, wxEmptyString, m_Project, bt));
    }


--- End code ---

In short words if you have a project that uses a Makefile and virtual targets then if you try to build any virtual target then only that virtual target's first target "member" gets build. So the outputed Makefile from the plugin is actually correct but then the build command tries to only build one of the targets so you get only the first target built. In all other aspects the plugin is the same as you remember it.

mandrav:
Yes, after virtual targets were introduced Makefile-based projects have not been tested because I don't have any  :oops: ...

yop:
Yeah, I kind of figured that out  :). I know you 'll get there so I don't worry... Anyway the basic funtionality is restored. I just have to get the new API to my head to see what I can do.

Some thoughts:
*New parser using the right tool for the job (no handmade hacks using identifiers :), this has remained since I was using the plugin for myself only and is directly derived from the Makefile generator in the early C::B versions, I 'm sure Yiannis can find some of his code in there ;))
*Remove the menu entry. I think it's better to add an entry in the Build menu that just says "Run QMake" and the user should have the Using Makefiles blah blah enabled.
*Add the QMake options and Edit QMake options in the Project menu.
*Provide some kind of configuration.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version