Re: [Qbs] qbs 2.4 released

2024-07-29 Thread Stéphane Fabry via Qbs
Hi,

Thanks Christian and all contributors to continue to support qbs !

With this update I have a new error, my project is not parsing and
throwing a lot of :

"module items cannot have an id property"

Any idea where this comes from ?

Regards,

STÉPHANE FABRY , C.O.O. & Software Manager 

T: +32 4 367 07 92 [tel:+3243670792]

_X-Ray Imaging Solutions_ | www.xris.eu [http://www.xris.eu/]

Le 2024-07-29T17:41:34.000+02:00, Christian Kandeler via Qbs
 a écrit :

> Hi,
> 
> we have released qbs 2.4.0 today.
> 
> As usual, sources, binaries, change log etc can be found here:
> 
> https://download.qt.io/official_releases/qbs/2.4.0/
> 
> This release of qbs is also part of Qt Creator 14.0.0.
> 
> Christian
> 
> ___
> 
> Qbs mailing list
> 
> Qbs@qt-project.org
> 
> https://lists.qt-project.org/listinfo/qbs


___
Qbs mailing list
Qbs@qt-project.org
https://lists.qt-project.org/listinfo/qbs


Re: [Qbs] Application with QML_ELEMENT in library, problem with plugins.qmltypes

2024-05-14 Thread Stéphane Fabry via Qbs
Oh thanks, i miss that property and i was trying to install through a
group like this:

    Group {

    fileTagsFilter: "qt.qml.types"

        qbs.install: true   

    }

Yes it seems QtCreator look for those only in the application build
directory (in the shadow build) but that path is not available afaik
from other plugins/libraries.

My workaround is to deploy to the installRoot like a qml module:

- subdirectory with module name (or more if module name is dot
separated)

- building a qmldir file with "typeinfo plugins.qmltypes"

- deploy both qmldir and "plugins.qmltypes"   (and i was hitting the
wall on this one)

- set "qmlImportPaths" to the installRoot

That's a lot of plumbering but it works.

Thanks Christian !

STÉPHANE FABRY , C.O.O. & Software Manager 

T: +32 4 367 07 92 [tel:+3243670792]

_X-Ray Imaging Solutions_ | www.xris.eu [http://www.xris.eu/]

Le 2024-05-14T13:43:52.000+02:00, Christian Kandeler via Qbs
 a écrit :

> On 5/14/24 10:11 AM, Stéphane Fabry wrote:
>>>   -> i took the "plugins.qmltypes" located in
>>>   "Release_Desktop__6bebb707edc597ff\carlib.83bede55" and copy
>>>   paste manually in the app build dir
>>>   ("Release_Desktop__6bebb707edc597ff\app.7d104347") and there it
>>>   is working.
>>  
>>   But i have no clue on how to ask the library to
>>  build/install/deploy its own qmltypes in the build directory of
>>  the application :/
> 
> You need to arrange this yourself by defining suitable *install* 
> 
> locations that are shared among the products involved, e.g. via a 
> 
> project-level property.
> 
> So if the application and the qmltypes file have to be at the same 
> 
> location (surely that's not the canonical way? but I'm not a QML 
> 
> expert), then they need to get the same qbs.installDir value.
> Installing 
> 
> the .qmltypes file is achieved by setting Qt.qml.typesInstallDir
> (see 
> 
> https://doc.qt.io/qbs/qml-qbsmodules-qt-qml.html#typesInstallDir-prop).
> 
> Christian
> 
> ___
> 
> Qbs mailing list
> 
> Qbs@qt-project.org
> 
> https://lists.qt-project.org/listinfo/qbs


___
Qbs mailing list
Qbs@qt-project.org
https://lists.qt-project.org/listinfo/qbs


Re: [Qbs] Application with QML_ELEMENT in library, problem with plugins.qmltypes

2024-05-14 Thread Stéphane Fabry via Qbs
I want QtCreator to load both app.qmltypes and all plugins.qmltypes of
the dependent libraries (this small project i have only one).

-> i took the "plugins.qmltypes" located in
"Release_Desktop__6bebb707edc597ff\carlib.83bede55" and copy paste
manually in the app build dir
("Release_Desktop__6bebb707edc597ff\app.7d104347") and there it is
working.

But i have no clue on how to ask the library to build/install/deploy
its own qmltypes in the build directory of the application :/

STÉPHANE FABRY , C.O.O. & Software Manager 

T: +32 4 367 07 92 [tel:+3243670792]

_X-Ray Imaging Solutions_ | www.xris.eu [http://www.xris.eu/]

Le 2024-05-14T09:51:45.000+02:00, Christian Kandeler via Qbs
 a écrit :

> On 5/14/24 9:17 AM, Stéphane Fabry via Qbs wrote:
>>  The projet is running fine, the problem lies in the QtCreator
>>  loading
>>  
>>   the qmltypes.
>>  
>>   It loads correctly the "app.qmltypes" located next to the app.exe
>>  but
>>  
>>   it won't load the library "plugins.qmltypes" located next to the
>>  dll.
>>  
>>   Did I miss something ?
> 
> You mean you want Qt Creator to pick up the import that is being 
> 
> generated when building that very same project to which Main.qml
> belongs?
> 
> Christian
> 
> ___
> 
> Qbs mailing list
> 
> Qbs@qt-project.org
> 
> https://lists.qt-project.org/listinfo/qbs


___
Qbs mailing list
Qbs@qt-project.org
https://lists.qt-project.org/listinfo/qbs


[Qbs] Application with QML_ELEMENT in library, problem with plugins.qmltypes

2024-05-14 Thread Stéphane Fabry via Qbs
Hi,

Here is a small example project with a QtQuick app and a C++ library.

Both are separate Product in the qbs Project, both define a class
declared with QML_ELEMENT and are imported into the Main.qml
The Qml import is declared with:

    Qt.qml.importName: "People"

    Qt.qml.importVersion: "1.0"

The projet is running fine, the problem lies in the QtCreator loading
the qmltypes.

It loads correctly the "app.qmltypes" located next to the app.exe but
it won't load the library "plugins.qmltypes" located next to the dll.

Did I miss something ?

I'm very close to heaven, does someone has an idea how to solve this ?

Thanks



Main.qml



import QtQuick

import People 1.0

import Cars 1.0

Window {

    width: 640

    height: 480

    visible: true

    title: qsTr("Hello World")

    Person {

    id: bob

    name: "Bob Jones"

    shoeSize: 12

    }

    Lotus {

    id: car

    name: "emira"

    mainColor: "blue"

    }

    Text {

    anchors.centerIn: parent

    text: bob.name + " drives " + car.name

    }

}

STÉPHANE FABRY , C.O.O. & Software Manager 

T: +32 4 367 07 92 [tel:+3243670792]

_X-Ray Imaging Solutions_ | www.xris.eu [http://www.xris.eu/]


<>
___
Qbs mailing list
Qbs@qt-project.org
https://lists.qt-project.org/listinfo/qbs


Re: [QBS] Clean install directory

2016-09-15 Thread Stéphane Fabry

I found the solution, I had to use product build directory in the rule:


cmd.binInstall=product.buildDirectory+"/"+project.binInstall

cmd.pluginInstall=product.buildDirectory+"/"+project.pluginInstall

cmd.sourceCode=function(){

File.remove(binInstall)

File.remove(pluginInstall)

}



Le 15-09-16 à 15:19, Stéphane Fabry a écrit :

Hi,

I have some files installed by qbs this way, inside a group of file:

qbs.install:true
qbs.installDir:project.binInstall


But if files are removed from the group later on, they remains installed, they 
are not cleaned.
I'd like to add a rule to clean those directories but didn't succeeded.

Here's my trial, the rule is executed, but the files not removed...

Product{
name:"Cleaninstall"
type:["install"]


Rule{
multiplex:true
alwaysRun:true
Artifact{
fileTags:["install"]
}


prepare:{
varcmd=newJavaScriptCommand();
cmd.binInstall=project.binInstall+"/"
cmd.pluginInstall=project.pluginInstall+"/"
cmd.sourceCode=function(){
console.info("removing:"+binInstall);
File.remove(binInstall)
File.remove(pluginInstall)
}
cmd.description="Cleanbinandplugindirectories"
returncmd;
}
}
}



Thanks



Stéphane




_______
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs


--

*Stéphane Fabry*, R&D Manager & Software architect
+32 (0)4 367 07 92
*X-RIS* | /X-Ray Imaging Solutions/
www.xris.eu/contact.html
___
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs


[QBS] Clean install directory

2016-09-15 Thread Stéphane Fabry

Hi,

I have some files installed by qbs this way, inside a group of file:

qbs.install:true

qbs.installDir:project.binInstall


But if files are removed from the group later on, they remains installed, they 
are not cleaned.
I'd like to add a rule to clean those directories but didn't succeeded.

Here's my trial, the rule is executed, but the files not removed...

Product{
name:"Cleaninstall"
type:["install"]


Rule{
multiplex:true
alwaysRun:true
Artifact{
fileTags:["install"]
}


prepare:{
varcmd=newJavaScriptCommand();
cmd.binInstall=project.binInstall+"/"
cmd.pluginInstall=project.pluginInstall+"/"
cmd.sourceCode=function(){
console.info("removing:"+binInstall);
File.remove(binInstall)
File.remove(pluginInstall)
}
cmd.description="Cleanbinandplugindirectories"
returncmd;
}
}
}



Thanks



Stéphane


___
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs


Re: [QBS] Join some locale into one QM with 3th name

2015-11-12 Thread Stéphane Fabry
You are right each ts is inside it's own product so i suppose it will 
work unchanged :)



Le 12-11-15 09:46, Christian Kandeler a écrit :

On 11/12/2015 09:09 AM, Stéphane Fabry wrote:

The basic usage is one ts mapped to one qm file.
I didn't know it was possible to merge ts files into one qm file.

It should remain an option and the default being as it is now.


But can you not simply make one product per qm file then?


Christian
___
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs



--
New address : starting December 5, 2015: _Rue d'Abhooz 25 - 4040 Herstal 
- Belgium_


*Stéphane Fabry*, Project & IT Manager
+32 (0)4 367 07 92
*X-RIS* | /X-Ray Imaging Solutions/
www.xris.eu/contact.html
___
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs


Re: [QBS] Join some locale into one QM with 3th name

2015-11-12 Thread Stéphane Fabry

The basic usage is one ts mapped to one qm file.
I didn't know it was possible to merge ts files into one qm file.

It should remain an option and the default being as it is now.

Stéphane


Le 10-11-15 16:27, Christian Kandeler a écrit :

On 11/10/2015 04:11 PM, a...@obukhoff.su wrote:
  I have several projects with a common library with its own file 
transfer.
During building I combine multiple ts files into one qm.  Visual 
Studio build simple call CMD file having the following content:


lrelease "..\libs\Project1\src\locale\Project1_en.ts" 
"..\Project2\common_en.ts" -qm "build\locale\Project3_en.qm"



How to realize it on the qbs.


Hm, the qm rule does not have the multiplex property set. At first 
glance, it looks like it should. Anything speaking against that?



Christian
___
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs



--
New address : starting December 5, 2015: _Rue d'Abhooz 25 - 4040 Herstal 
- Belgium_


*Stéphane Fabry*, Project & IT Manager
+32 (0)4 367 07 92
*X-RIS* | /X-Ray Imaging Solutions/
www.xris.eu/contact.html
___
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs


Re: [QBS] Qbs install done by default

2015-07-07 Thread Stéphane Fabry


Le 07-07-15 11:28, Christian Kandeler a écrit :
> On 07/07/2015 09:49 AM, Christian Kandeler wrote:
>> On 07/07/2015 09:32 AM, Stéphane Fabry wrote:
>>> First, I would say that this kind of information is well hidden and
>>> should have better visibility when there is a new QtCreator release.
>>> Because of qbs version being hidden by qtcreator version, no one can
>>> tell which qbs version it uses,
>> /bin/qbs --version
>>
>>> and what will happen when you upgrade
>> Well, that is generally unknown with every software.
>>
>>> That said, the problem I ran into is that now if I build my app on
>>> windows and it is already running, it cause a problem at the install
>>> step because on Windows you can't update exe or dll while in use !
>>> What
>>> happen is that QtCreator build process remains at full CPU usage when
>>> linking, QtCreator GUI is still responsive but unable to kill the build
>>> process (stop button does not work and closing QtCreator does not kill
>>> the process neither). That makes me blame QtCreator for that but maybe
>>> the root cause is the change in qbs.
>>>
>>> Now I'd like first a solution to desactivate the default installation
>>> step,
>> How about clicking on the checkbox in the build settings that says
>> "install"? Afterwards you should add an install stepp in the deploy
>> settings, and everything is as it was before-
Great !
For those like me that searched 2 days without finding this, it located 
in the project build settings, not in the QtCreator settings !
(but there you can check to always deploy before run the application... 
and this way you are fine)

>>
>>> and also maybe it is not a good behaviour to lock QtCreator in
>>> such a situation.
>> Yes, we should remove the call to lockCreator()...
>> Seriously, neither have I seen such behavior nor do I know what would
>> cause it.
> Update: Problem is identified, fix is here:
> https://codereview.qt-project.org/#/c/120817/
Great again :)

Thanks Christian
>
> ___
> QBS mailing list
> QBS@qt-project.org
> http://lists.qt-project.org/mailman/listinfo/qbs

Stéphane
___
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs


[QBS] Qbs install done by default

2015-07-07 Thread Stéphane Fabry
Hi Christian, hi all,

I went on a comment on the bugreports where you said: "installation will 
be done by default as part of the build process in 1.4."

First, I would say that this kind of information is well hidden and 
should have better visibility when there is a new QtCreator release. 
Because of qbs version being hidden by qtcreator version, no one can 
tell which qbs version it uses, and what will happen when you upgrade 
QtCreator. I'd like to see a qbs release note linked to the QtCreator 
blog annoucing the updates: telling us qbs version changes and link to 
qbs changes between release.

That said, the problem I ran into is that now if I build my app on 
windows and it is already running, it cause a problem at the install 
step because on Windows you can't update exe or dll while in use ! What 
happen is that QtCreator build process remains at full CPU usage when 
linking, QtCreator GUI is still responsive but unable to kill the build 
process (stop button does not work and closing QtCreator does not kill 
the process neither). That makes me blame QtCreator for that but maybe 
the root cause is the change in qbs.

Now I'd like first a solution to desactivate the default installation 
step, and also maybe it is not a good behaviour to lock QtCreator in 
such a situation.


Thanks

Stéphane
___
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs


Re: [QBS] Export cpp.defines

2015-06-28 Thread Stéphane Fabry

Oh thanks,

To resume, here is what is wrong and what is good

Export{

Depends  {  name:  "cpp"  }

cpp.includePaths:  "src"

cpp.defines:  base.concat(["QWT_DLL"])< Good

cpp.defines:  base.concat("QWT_DLL")  < Wrong

cpp.defines:  "QWT_DLL"   < 
Wrong

}


Export{

Depends  {  name:  "cpp"  }

cpp.defines:  qbs.buildVariant  ==  "debug"  ?  base  :  
base.concat(["QSLOG_NO_DEBUG_OUTPUT"])   < Good

cpp.defines:  base.concat(qbs.buildVariant  ==  "debug"  ?  [""]  :  
["QSLOG_NO_DEBUG_OUTPUT"])   < Wrong

}

Thanks again, you saved me from headache !!

:)




Le 28-06-15 07:08, Andrii Anpilogov a écrit :

 Export  {
 Depends  {  name:  "cpp"  }
 cpp.defines:  base.concat(/["QWT_DLL"]/)
 }

2015-06-28 5:40 GMT+08:00 Stéphane Fabry mailto:s...@xris.eu>>:


Hi,

I just ran into  problem by upgrading to QtCreator 3.4.1 and Qt 5.4.2

I have different libraries which exports some cpp defines this way:

Export{

 Depends  {  name:  "cpp"  }

 cpp.includePaths:  "src"

 cpp.defines:  "QWT_DLL"

}

Then I have a product that depends on those libraries, and now depending on 
the order of the Depends statement in the product,
  the defines of the first are hidden by the defines of the next one...




Any suggestions, ideas ?


Thanks !




Stéphane

___
QBS mailing list
QBS@qt-project.org <mailto:QBS@qt-project.org>
http://lists.qt-project.org/mailman/listinfo/qbs




--
--
WBR,
  Andrii Anpilogov
  Phone: +86 186-1660-3720
  Skype: anpilogov.andrey
  mailto:anpi...@gmail.com <mailto:anpi...@gmail.com>, 
andrii.anpilo...@mesheven.com <mailto:andrii.anpilo...@mesheven.com>




--
*Stéphane Fabry*, Project & IT Manager
+32 (0)4 367 07 92
*X-RIS* | /X-Ray Imaging Solutions/
www.xris.eu/contact.html
___
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs


[QBS] Export cpp.defines

2015-06-27 Thread Stéphane Fabry


Hi,

I just ran into  problem by upgrading to QtCreator 3.4.1  and Qt 5.4.2

I have different libraries which exports some cpp defines this way:

Export{

Depends  {  name:  "cpp"  }

cpp.includePaths:  "src"

cpp.defines:  "QWT_DLL"

}

Then I have a product that depends on those libraries, and now depending on the 
order of the Depends statement in the product,
 the defines of the first are hidden by the defines of the next one...




Any suggestions, ideas ?


Thanks !




Stéphane
___
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs


Re: [QBS] Install subdirectory tree

2015-01-07 Thread Stéphane Fabry

Great,

Thanks.

Le 07-01-15 11:24, Christian Kandeler a écrit :

On 01/07/2015 11:04 AM, Stéphane Fabry wrote:

I'd like to install some files and directories that form a directory tree.

Example:

Group {

  name:  "IMAGERs"
  prefix:  "IMAGERs/**/"
  files:  "*"
  qbs.install:  true
  qbs.installDir:  project.calibInstall  +  "/IMAGERs"
}
The imager directory has two subdirectories that contains files, after
the install all files are mixed in IMAGER's and subdirectories are not
created.

Yes, this is a known problem that comes up regularly.


The only solution I have now is to make a group for each leaf subdirectory.

That is one possible workaround. The other one is to simply set the
"files" property to the root of the directory tree you want to install.
In your case:

Group {
  name:  "IMAGERs"
  files:  "IMAGERs"
  qbs.install:  true
  qbs.installDir:  project.calibInstall
}

This has the drawback that now qbs does not know the files in this
directory, so they won't show up in your project tree in Qt Creator. And
of course, if they are not purely run-time resources, but actual
sources, this approach won't work.


Do you have a solution ?

We have discussed some promising ideas and I'm confident we will have
something ready for 1.4.


Christian
___
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs



--
*Stéphane Fabry*, Project & IT Manager
+32 (0)4 367 07 92
*X-RIS* | /X-Ray Imaging Solutions/
www.xris.eu/contact.html
___
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs


[QBS] Install subdirectory tree

2015-01-07 Thread Stéphane Fabry

Hi,

I'd like to install some files and directories that form a directory tree.

Example:

Group{

name:  "IMAGERs"

prefix:  "IMAGERs/**/"

files:  "*"

qbs.install:  true

qbs.installDir:  project.calibInstall  +  "/IMAGERs"

}
The imager directory has two subdirectories that contains files, after 
the install all files are mixed in IMAGER's and subdirectories are not 
created.

The only solution I have now is to make a group for each leaf subdirectory.

That could be difficult when there's a lot of them !

Do you have a solution ?

BR,

Stéphane
___
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs


Re: [QBS] Always build an artifact

2014-12-06 Thread Stéphane Fabry

Hi Christian,

I confirm I get it working with Qt-creator and qbs from master.
But I also experienced repeated crashes when opening some qbs files in 
qtcreator...


So maybe I will way this get's released before using in production.
Is it planned to have qbs 1.4 in next Qt 5.4 release ?

Thanks for your help solving this.

Stéphane

Le 05-12-14 10:15, Christian Kandeler a écrit :

On 12/05/2014 08:53 AM, Stéphane Fabry wrote:

- Depends{name:"obj"}  does not seems to work, it says "Product
dependency 'obj' not found for profile ..."

Huh? "obj" is an input tag to your rule, not a product. It's the tag
that qbs gives to object files created by the compiler.


- I updated the my example to use output.filePath but in either way I
can't get the buildtag.txt file, the command is run but I can't found
the generated file... is the example too trivial (no source to build ?)

It's where you specified it to be in the Artifact item. Note that
relative paths are anchored at the product build directory.


- I can download and build qbs from master but then how should I
configure QtCreator to use the version I've just build ? Is it just the
qbs.exe to copy into the Tools directory ?

No, you'd have to use Creator from the master branch as well.


Christian


Le 04-12-14 16:13, Christian Kandeler a écrit :

On 12/04/2014 03:00 PM, Stéphane Fabry wrote:

I tried to do what you explained, but can't get it working.

Sorry, I made two mistakes in my explanation:
   1) You don't need a pseudo-artifact. Just set "alwaysUpdated" to
  false in your real artifact.
   2) This works only in master, not in 1.3.
So, what's a workaround you can use in 1.3? Maybe have a dependency on
the "obj" tag? If no object file changes, you won't have a new build, right?


Christian

(Btw., in your example you create the "build.txt" file not at the place
you specified in the Artifact item. To prevent such inconsistencies, we
recommend using the outputs variable to access these paths.)


Here is the minimal project I tried:

importqbs1.0

import  qbs.TextFile

import  qbs.FileInfo

Product  {

   name:  "Build  Tag"

   type:  "buildtag"

   targetName:  "buildtag.txt"

   Group  {

   name:  "Fake  input"

   files:  "fake.in"

   fileTags:  ["in_tag"]

   }

   Rule  {

   inputs:  ["in_tag"]

   Artifact  {

   filePath:  "buildtag.txt"

   fileTags:  "buildtag"

   }

   Artifact  {

   alwaysUpdated:  false

   filePath:  "fakeOutput"

   }

   prepare:  {

   var  cmd  =  new  JavaScriptCommand();

   cmd.description  =  "Update  build  date  tag  !"

   cmd.sourceCode  =  function()  {

   var  file  =  new  TextFile("./buildtag.txt",  
TextFile.WriteOnly);

   var  today  =  new  Date()

   file.writeLine(today.toISOString());

   file.close();

   }

   return  cmd;

   }

   }

}


Thanks



Le 04-12-14 10:59, Christian Kandeler a écrit :

On 12/03/2014 10:18 PM, Stéphane Fabry wrote:

I'm trying to create an artefact (a simple text file) that contain the
last date of build,
so i just need to write the date 'now' each time the project is build.

The problem is I don't know how to tell qbs to rebuild the artefact each
time the project is build (or partially build) ?

Has someone an idea how to do this ?

Yeah, we really should add some rule property that makes this kind of
thing straightforward. You could file a bug report to enhance the
visibility of this issue.
I assume you are using a Transformer item now? The workaround is to use
a rule instead (give some random input tag, as there needs to be at
least one) and in this rule, in addition to your real output artifact,
declare a second one that you will never create and set its
"alwaysUpdated" property to false (the filePath can be anything, as long
as it's uniqe). This should achieve what you want.


Christian

___
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs

--
*Stéphane Fabry*, Project & IT Manager
+32 (0)4 367 07 92
*X-RIS* | /X-Ray Imaging Solutions/
www.xris.eu/contact.html

___
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs

--
*Stéphane Fabry*, Project & IT Manager
+32 (0)4 367 07 92
*X-RIS* | /X-Ray Imaging Solutions/
www.xris.eu/contact.html


___
QBS mailing list
QBS@qt-project.org
http://

Re: [QBS] Always build an artifact

2014-12-04 Thread Stéphane Fabry

Hi,

- Depends{name:"obj"}  does not seems to work, it says "Product 
dependency 'obj' not found for profile ..."


- I updated the my example to use output.filePath but in either way I 
can't get the buildtag.txt file, the command is run but I can't found 
the generated file... is the example too trivial (no source to build ?)


- I can download and build qbs from master but then how should I 
configure QtCreator to use the version I've just build ? Is it just the 
qbs.exe to copy into the Tools directory ?


Thanks

Le 04-12-14 16:13, Christian Kandeler a écrit :

On 12/04/2014 03:00 PM, Stéphane Fabry wrote:

I tried to do what you explained, but can't get it working.

Sorry, I made two mistakes in my explanation:
  1) You don't need a pseudo-artifact. Just set "alwaysUpdated" to
 false in your real artifact.
  2) This works only in master, not in 1.3.
So, what's a workaround you can use in 1.3? Maybe have a dependency on
the "obj" tag? If no object file changes, you won't have a new build, right?


Christian

(Btw., in your example you create the "build.txt" file not at the place
you specified in the Artifact item. To prevent such inconsistencies, we
recommend using the outputs variable to access these paths.)


Here is the minimal project I tried:

importqbs1.0

import  qbs.TextFile

import  qbs.FileInfo

Product  {

  name:  "Build  Tag"

  type:  "buildtag"

  targetName:  "buildtag.txt"

  Group  {

  name:  "Fake  input"

  files:  "fake.in"

  fileTags:  ["in_tag"]

  }

  Rule  {

  inputs:  ["in_tag"]

  Artifact  {

  filePath:  "buildtag.txt"

  fileTags:  "buildtag"

  }

  Artifact  {

  alwaysUpdated:  false

  filePath:  "fakeOutput"

  }

  prepare:  {

  var  cmd  =  new  JavaScriptCommand();

  cmd.description  =  "Update  build  date  tag  !"

  cmd.sourceCode  =  function()  {

  var  file  =  new  TextFile("./buildtag.txt",  
TextFile.WriteOnly);

  var  today  =  new  Date()

  file.writeLine(today.toISOString());

  file.close();

  }

  return  cmd;

  }

  }

}


Thanks



Le 04-12-14 10:59, Christian Kandeler a écrit :

On 12/03/2014 10:18 PM, Stéphane Fabry wrote:

I'm trying to create an artefact (a simple text file) that contain the
last date of build,
so i just need to write the date 'now' each time the project is build.

The problem is I don't know how to tell qbs to rebuild the artefact each
time the project is build (or partially build) ?

Has someone an idea how to do this ?

Yeah, we really should add some rule property that makes this kind of
thing straightforward. You could file a bug report to enhance the
visibility of this issue.
I assume you are using a Transformer item now? The workaround is to use
a rule instead (give some random input tag, as there needs to be at
least one) and in this rule, in addition to your real output artifact,
declare a second one that you will never create and set its
"alwaysUpdated" property to false (the filePath can be anything, as long
as it's uniqe). This should achieve what you want.


Christian

___
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs

--
*Stéphane Fabry*, Project & IT Manager
+32 (0)4 367 07 92
*X-RIS* | /X-Ray Imaging Solutions/
www.xris.eu/contact.html

___
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs


--
*Stéphane Fabry*, Project & IT Manager
+32 (0)4 367 07 92
*X-RIS* | /X-Ray Imaging Solutions/
www.xris.eu/contact.html
___
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs


[QBS] Always build an artifact

2014-12-03 Thread Stéphane Fabry
Hi,

I'm trying to create an artefact (a simple text file) that contain the 
last date of build,
so i just need to write the date 'now' each time the project is build.

The problem is I don't know how to tell qbs to rebuild the artefact each 
time the project is build (or partially build) ?


Has someone an idea how to do this ?


Best regards

Stéphane


___
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs


Re: [QBS] What is the semantic difference between Rule and Transformer?

2014-11-10 Thread Stéphane Fabry
A transformer can be used without input, just to produce an output 
artifact from nothing.



Le 08-11-14 14:44, Tim Hutt a écrit :


As far as I can see, a Transformer isn't aware of file tags - they act 
on specific file names rather than file types, but yeah they seem to 
overlap a lot and the use case for Transformers isn't totally clear 
from the documentation.


On 8 Nov 2014 13:39, "Smirnov Vladimir" <mailto:map...@yandex.ru>> wrote:


From docs:
-A /multiplex rule/ creates one /transformer/ that takes all input
artifacts with the matching input file tag and creates one or more
artifacts.
-A /simplex rule/ creates one transformer per matching input file.
-A /transformer/ takes zero or more inputs and produces one or
more output artifacts from them.

So I can imagine that Rule wraps some Transformer's functionality.
But why don't just use only Rules? What can i do with Transformer
that Rule couldn't cover?


___
QBS mailing list
QBS@qt-project.org <mailto:QBS@qt-project.org>
http://lists.qt-project.org/mailman/listinfo/qbs



___
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs


--
*Stéphane Fabry*, Project & IT Manager
+32 (0)4 367 07 92
*X-RIS* | /X-Ray Imaging Solutions/
www.xris.eu/contact.html
___
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs


Re: [QBS] libFilePath in custom module

2014-11-03 Thread Stéphane Fabry

Hi Christian,

I did a full re-install of my module on another computer to compare and 
there it worked great, I have the prl files and the pri files.
Once QtCreator is launched the corresponding module.qbs is correctly 
updated...


I don't know what happened at the first time, maybe a mismatch because 
of the evolution of our internal module...


Below the paste of the required files just in case of, but now it seems 
solved on my side.

Thanks for the help.

Stéphane
--


qt_lib_parameter.pri

QT.parameter.VERSION = 5.0.0
QT.parameter.MAJOR_VERSION = 5
QT.parameter.MINOR_VERSION = 0
QT.parameter.PATCH_VERSION = 0
QT.parameter.name = QtParameter
QT.parameter.libs = $$QT_MODULE_LIB_BASE
QT.parameter.includes = $$QT_MODULE_INCLUDE_BASE 
$$QT_MODULE_INCLUDE_BASE/QtParameter

QT.parameter.bins = $$QT_MODULE_BIN_BASE
QT.parameter.libexecs = $$QT_MODULE_LIBEXEC_BASE
QT.parameter.plugins = $$QT_MODULE_PLUGIN_BASE
QT.parameter.imports = $$QT_MODULE_IMPORT_BASE
QT.parameter.qml = $$QT_MODULE_QML_BASE
QT.parameter.depends = core widgets
QT.parameter.module_config =
QT.parameter.DEFINES = QT_PARAMETER_LIB
QT_MODULES += parameter


qt_lib_parameter_private.pri

QT.parameter_private.VERSION = 5.0.0
QT.parameter_private.MAJOR_VERSION = 5
QT.parameter_private.MINOR_VERSION = 0
QT.parameter_private.PATCH_VERSION = 0
QT.parameter_private.name = QtParameter
QT.parameter_private.libs = $$QT_MODULE_LIB_BASE
QT.parameter_private.includes = 
$$QT_MODULE_INCLUDE_BASE/QtParameter/5.0.0 
$$QT_MODULE_INCLUDE_BASE/QtParameter/5.0.0/QtParameter

QT.parameter_private.depends = parameter
QT.parameter_private.module_config = internal_module no_link





Le 03-11-14 15:08, Kandeler Christian a écrit :


Can you please also paste the .pri file for your module in 
mkspecs/modules?




Thanks,
Christian



*From:* Stéphane Fabry 
*Sent:* Monday, November 3, 2014 1:20 PM
*To:* Kandeler Christian; qbs@qt-project.org
*Subject:* Re: [QBS] libFilePath in custom module
Hi,

The prl file is present, here is the content:
/QMAKE_PRL_BUILD_DIR = C:/xris/maestro_qbs/qtparameter/src/parameter//
//QMAKE_PRO_INPUT = parameter.pro//
//QMAKE_PRL_TARGET = Qt5Parameter//
//QMAKE_PRL_CONFIG = lex yacc depend_includepath testcase_targets 
import_plugins import_qpa_plugin incremental_off windows qt warn_on 
release link_prl incremental flat precompile_header 
autogen_precompile_source debug_and_release embed_manifest_dll 
embed_manifest_exe copy_dir_files release shared rtti 
no_plugin_manifest qpa win32 msvc pcre release compile_examples sse2 
sse3 ssse3 sse4_1 sse4_2 avx avx2 largefile prefix_build 
force_independent create_prl link_prl prepare_docs qt_docs_targets 
no_private_qt_headers_warning QTDIR_build exceptions_off 
testcase_exceptions release ReleaseBuild Release build_pass git_build 
need_fwd_pri qt_install_module qt_install_headers qmake_cache 
target_qt debug_and_release build_all create_cmake 
skip_target_version_ext release ReleaseBuild Release build_pass 
have_target dll exclusive_builds no_autoqmake thread uic opengl moc 
resources//

//QMAKE_PRL_VERSION = 5.0.0/


The only difference with for example QtNetwork prl is the first line 
with the /QMAKE_PRL_BUILD_DIR entry./


Thanks,


Stéphane

PS: Sorry for the delay, I had a week off.



Le 23-10-14 17:25, Christian Kandeler a écrit :

On 10/23/2014 05:07 PM, Stéphane Fabry wrote:

I have a custom "Qt module" that is a module compiled and installed in
qt directory just like any other qt module (eg serialport).

When I try to use QBS and put a "Depends { name: "Qt.mymodule" }"
it reach a problem where "libFilePath" is not defined.

  > I found out that in the "module.qbs" that is generated by QtCreator
  > (in user appData directory) the libFilePath is not filled for that
  > module. All other modules of Qt have the path correctly defined, but
  > for mine it is empty.

That probably means that your module generates no prl file. qbs requires
one to be present to find out the file path of the library.


Christian


I can fill it by hand and it solves the problem but i would like it to
be done automatically.
I build and install the module by the classic 'qmake' 'make' 'make
install' process.

I found this change, but I'm not sure it is linked to the problem or
not:
https://qt.gitorious.org/qt-labs/qbs/commit/938d9159810b5525e09325ce61759b29fa3d51af


If someone has an hint to the solution... Thanks :)

Stéphane


___
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs


___
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs


--
*Stéphane Fabry*, Project & IT Manager
+32 (0)4 367 07 92
*X-RIS* | /X-Ray Imaging Solutions/
www.xris.eu/contact.html


_

Re: [QBS] libFilePath in custom module

2014-11-03 Thread Stéphane Fabry

Hi,

The prl file is present, here is the content:
/QMAKE_PRL_BUILD_DIR = C:/xris/maestro_qbs/qtparameter/src/parameter//
//QMAKE_PRO_INPUT = parameter.pro//
//QMAKE_PRL_TARGET = Qt5Parameter//
//QMAKE_PRL_CONFIG = lex yacc depend_includepath testcase_targets 
import_plugins import_qpa_plugin incremental_off windows qt warn_on 
release link_prl incremental flat precompile_header 
autogen_precompile_source debug_and_release embed_manifest_dll 
embed_manifest_exe copy_dir_files release shared rtti no_plugin_manifest 
qpa win32 msvc pcre release compile_examples sse2 sse3 ssse3 sse4_1 
sse4_2 avx avx2 largefile prefix_build force_independent create_prl 
link_prl prepare_docs qt_docs_targets no_private_qt_headers_warning 
QTDIR_build exceptions_off testcase_exceptions release ReleaseBuild 
Release build_pass git_build need_fwd_pri qt_install_module 
qt_install_headers qmake_cache target_qt debug_and_release build_all 
create_cmake skip_target_version_ext release ReleaseBuild Release 
build_pass have_target dll exclusive_builds no_autoqmake thread uic 
opengl moc resources//

//QMAKE_PRL_VERSION = 5.0.0/


The only difference with for example QtNetwork prl is the first line 
with the /QMAKE_PRL_BUILD_DIR entry./


Thanks,


Stéphane

PS: Sorry for the delay, I had a week off.



Le 23-10-14 17:25, Christian Kandeler a écrit :

On 10/23/2014 05:07 PM, Stéphane Fabry wrote:

I have a custom "Qt module" that is a module compiled and installed in
qt directory just like any other qt module (eg serialport).

When I try to use QBS and put a "Depends { name: "Qt.mymodule" }"
it reach a problem where "libFilePath" is not defined.

  > I found out that in the "module.qbs" that is generated by QtCreator
  > (in user appData directory) the libFilePath is not filled for that
  > module. All other modules of Qt have the path correctly defined, but
  > for mine it is empty.

That probably means that your module generates no prl file. qbs requires
one to be present to find out the file path of the library.


Christian


I can fill it by hand and it solves the problem but i would like it to
be done automatically.
I build and install the module by the classic 'qmake' 'make' 'make
install' process.

I found this change, but I'm not sure it is linked to the problem or
not:
https://qt.gitorious.org/qt-labs/qbs/commit/938d9159810b5525e09325ce61759b29fa3d51af


If someone has an hint to the solution... Thanks :)

Stéphane


___
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs


___
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs


--
*Stéphane Fabry*, Project & IT Manager
+32 (0)4 367 07 92
*X-RIS* | /X-Ray Imaging Solutions/
www.xris.eu/contact.html
___
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs


[QBS] libFilePath in custom module

2014-10-23 Thread Stéphane Fabry
Hi

I have a custom "Qt module" that is a module compiled and installed in 
qt directory just like any other qt module (eg serialport).

When I try to use QBS and put a "Depends { name: "Qt.mymodule" }"
it reach a problem where "libFilePath" is not defined.

I found out that in the "module.qbs" that is generated by QtCreator (in 
user appData directory) the libFilePath is not filled for that module.
All other modules of Qt have the path correctly defined, but for mine it 
is empty.

I can fill it by hand and it solves the problem but i would like it to 
be done automatically.
I build and install the module by the classic 'qmake' 'make' 'make 
install' process.

I found this change, but I'm not sure it is linked to the problem or 
not: 
https://qt.gitorious.org/qt-labs/qbs/commit/938d9159810b5525e09325ce61759b29fa3d51af


If someone has an hint to the solution... Thanks :)

Stéphane


___
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs


[QBS] Project sourceDirectory

2014-10-23 Thread Stéphane Fabry
project.sourceDirectory is undefined in a product of a project of 
another project.

I've been able to reproduce the problem in a minimal example and posted 
bug report.
https://bugreports.qt-project.org/browse/QBS-699


S. Fabry

___
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs


[QBS] Project sourceDirectory

2014-10-20 Thread Stéphane Fabry

Hi,

I hit another small problem, I can't have access to 
project.sourceDirectory inside a module file.

The variable is said "undefined" ...

I saw the QBS-567 bug that should be resolved as 1.3.0 and i have 1.3.1 
but it seems it does not work yet :)



Could somebody confirm before I comment on bugreports ?


Thanks


--
*Stéphane Fabry*, Project & IT Manager
+32 (0)4 367 07 92
*X-RIS* | /X-Ray Imaging Solutions/
www.xris.eu/contact.html
___
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs


Re: [QBS] Translations from qbs

2014-10-20 Thread Stéphane Fabry


There is no qbs integration for this yet.
Seehttps://bugreports.qt-project.org/browse/QBS-486.
We've done a bit of research on the topic lately, and some interesting
problems came up. We still aim to have this working in 1.4, though.


Christian

--

Ok, hope we have a solution soon, until there I need to maintain both 
qbs and pro projects files...
It is certainly not as simple but could we "copy-paste" the lupdate code 
into qbs in some manner to create the ts files directly from qbs ?
(kind of flag "qbs.translate: true" like the "qbs.install: true" in file 
groups, or global product/project flag)


Is the lupdate tool so complicated and frequently evolving that it is 
needed to keep it as a separate tool ?



Stéphane.




--
*Stéphane Fabry*, Project & IT Manager
+32 (0)4 367 07 92
*X-RIS* | /X-Ray Imaging Solutions/
www.xris.eu/contact.html
___
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs


[QBS] Translations from qbs

2014-10-20 Thread Stéphane Fabry

Hi,

I hit a small but biggg problem, can't find any way of updating 
translation ts files with lupdate or another tool.


Because lupdate is still asking for a .pro file... how can I do it in qbs ?


Thanks.


--
*Stéphane Fabry*, Project & IT Manager
+32 (0)4 367 07 92
*X-RIS* | /X-Ray Imaging Solutions/
www.xris.eu/contact.html
___
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs


Re: [QBS] Rule and the "usings" property

2014-10-17 Thread Stéphane Fabry
Hi,

thanks, I solved the problem in two steps :
- first rule as you said mostly does nothing but create an artifact the 
second rule can catch
- second multiplex rule does the job by catching target artifacts of the 
first one

Glad to see a change will improve this in the future !

And congrats for qbs, I'm just trying to switch from qmake, and now 
mostly done with a lot more flexibility, readability, functionnality and 
performance that the qmake solution i have.

Keep up the good work.

Regards !

Stéphane
___
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs


[QBS] Rule and the "usings" property

2014-10-15 Thread Stéphane Fabry

Hi,

I can't understand how the "using" property of "Rule" item works.

What I try to achieve:

Product {
name: "foo2"
Group {
files: "foo2_file"
fileTags: "fooTag"
}
}

Product {
name: "foo"
Depends { name: "foo2" }

Depends { name: "fooModule" }

Group {
files: "foo_file"
fileTags: "fooTag"
}
}

Then in the fooModule i have:

Rule {
multiplex: true
inputs: "fooTag"

Artifact { filePath: "genFile.txt" }

prepare: {

...

// Write a file that lists inputs
for (i in inputs.fooTag) {
cmd.setupInstalls.push(FileInfo.toWindowsSeparators(inputs.fooTag[i].filePath));
}

...

}

}


This rule will list the files of the product (that is "foo_file") but 
not the file in the dependencies that are tagged with the same fileTags.

That is I want to list also "foo2_file" from foo2 product.

I tried to use the "usings" property, from the docs it seems it should 
de the job, but without success...

How can i achieve this ?

Thanks


--
*Stéphane Fabry*, Project & IT Manager
+32 (0)4 367 07 92
*X-RIS* | /X-Ray Imaging Solutions/
www.xris.eu/contact.html
___
QBS mailing list
QBS@qt-project.org
http://lists.qt-project.org/mailman/listinfo/qbs