You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@plc4x.apache.org by Christofer Dutz <ch...@c-ware.de> on 2019/05/13 07:31:39 UTC

[C++] Latest config changes

Hi All and especially Markus,

I just had a look at the changes that were added recently to the c++ part of PLC4X.
One thing I noticed, is that you re-added the relative links between the modules.
If you do a maven build (at least to the “generate-sources” phase, maven will make all dependencies available as they were configured in the CMakeList.txt files.
You now sort of have them in there double … for a maven build there will now be two paths to every file. I hope this can’t cause any confusion?

In the “generate-sources” phase maven takes all the dependencies and unpacks them into the “target/dependencies” directory.
This then contains one “includes” and one “libs” folder, which contains all the includes and all the libs this module depends on.
The cool thing with with is, that this way if you add a new dependency, all you need to do, is to add that dependency to the pom.xml
Its content will automatically show up in the location where all the others have shown up and you don’t need any configuration changes.

If however you start double-doing the dependencies by introducing these relative paths again, I guarantee that we will be having problems.
The reason is that you will probably not add dependencies to the pom.xml

Chris

Re: [C++] Latest config changes

Posted by Christofer Dutz <ch...@c-ware.de>.
Hi Markus,

I would suggest something with a prefix "feature/" ... so how about calling it "feature/s7-cpp"?
This way you also get a free Maven build setup in Jenkins so it would check how maven is doing with it without having to do it yourself.

Chris



Am 13.05.19, 10:30 schrieb "Markus Sommer" <so...@isb-fn.de>:

    Hello Chris,
    
    I agree with you. 
    
    My suggestion, we push into a branch until the one with which we have a Readrequest works, then the architecture is so far consolidated.
    
    Then we can configure Maven to work with the required libs.
    
    What's the name of the branch?
    
    Wie soll der Branch heissen?
    
    What do you think?
    
    Best regards
    
    Markus
    Best regards
    
    Markus
    
    Freundliche Grüße
    
    Markus Sommer
    Geschäftsführer
    
    isb innovative software businesses GmbH
    Otto-Lilienthal-Strasse 2
    D - 88046 Friedrichshafen
    
    Tel.:    +49 (0) 7541 3834-14
    Mob:  +49 (0) 171 537 8437
    Fax:     +49 (0) 7541 3834-20
    E-Mail: sommer@isb-fn.de
    Web: www.isb-fn.de 
    
    Geschäftsführer: Markus Sommer, Thomas Zeler
    Sitz: Friedrichshafen
    
    Registergericht: Amtsgericht Ulm HRB-Nr. 631624
    Important Note: This e-mail and any attachments are confidential, may contain trade secrets and may well also be legally privileged or otherwise protected from disclosure. If you have received it in error, you are on notice of its status. 
    Please notify us immediately by reply e-mail and then delete his e-mail and any attachment from your system. If you are not the intended recipient please understand that you must not copy this e-mail or any attachments or disclose the contents to any other person. Thank you.
    
    
    -----Ursprüngliche Nachricht-----
    Von: Christofer Dutz <ch...@c-ware.de> 
    Gesendet: Montag, 13. Mai 2019 10:19
    An: dev@plc4x.apache.org
    Betreff: Re: [C++] Latest config changes
    
    Hi Markus,
    
    I sort of feel a little uncomfortable, with all the development for c++ being done behind closed doors and then having the results presented to the rest.
    That's not sort of how things work at the ASF. 
    
    Isn't there a way you guys could for example develop things in feature branches and then merge back to develop as soon as you reached a checkpoint?
    
    Right now for example I disabled the logging module as the build keeps on complaining:
    
    [ 57%] Building CXX object CMakeFiles/plc4cpp-utils-logger.dir/src/main/cpp/org/apache/plc4x/cpp/utils/logger/ErrorCategory.cpp.o
    In file included from /Users/christofer.dutz/Projects/Apache/PLC4X/plc4cpp/utils/logger/src/main/cpp/org/apache/plc4x/cpp/utils/logger/ErrorCategory.cpp:20:
    /Users/christofer.dutz/Projects/Apache/PLC4X/plc4cpp/utils/logger/src/main/cpp/org/apache/plc4x/cpp/utils/logger/ErrorCategory.h:23:10: fatal error: 'boost\system\error_code.hpp' file not found #include <boost\system\error_code.hpp>
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    1 error generated.
    
    The problem the file is there and it is available ... not quite sure why make seems to be finding all the other hpp files, but is having a problem with that particular one.
    
    With Maven being the primary build system, the build must work with Maven ... so please check your builds to work with maven at least before checking them in.
    
    If you need help, I am happy to be of assistance.
    
    I'm not insisting on you using Maven during development and I'm also not insisting on running it on Win, Mac and Linux, as I am currently mostly doing it, but I do that it should be run at least once on any of these systems before checking in.
    I don't want to continue the mode in which I have to drop everything I'm currently working on just to fix a code-drop.
    
    Chris
    
    
    
    Am 13.05.19, 09:43 schrieb "Markus Sommer" <so...@isb-fn.de>:
    
        Hello Chris,
        
        we've only maintained the CMakelists so far. We haven't dealt with Maven in the project yet.
        
        For us, the focus is on implementing the other classes in C++ and then accessing an S7 with a ReadRequest. Just now the implementation with signals for asynchronous reporting of incoming messages.
        
        Have also fought with CMakeLists something with Boost to link the necessary libraries into the project.
        
        Changing the CMakelists is then done quickly.
        
        Best regards
        
        Markus
        
        Freundliche Grüße
        
        Markus Sommer
        Geschäftsführer
        
        isb innovative software businesses GmbH
        Otto-Lilienthal-Strasse 2
        D - 88046 Friedrichshafen
        
        Tel.:    +49 (0) 7541 3834-14
        Mob:  +49 (0) 171 537 8437
        Fax:     +49 (0) 7541 3834-20
        E-Mail: sommer@isb-fn.de
        Web: www.isb-fn.de 
        
        Geschäftsführer: Markus Sommer, Thomas Zeler
        Sitz: Friedrichshafen
        
        Registergericht: Amtsgericht Ulm HRB-Nr. 631624
        Important Note: This e-mail and any attachments are confidential, may contain trade secrets and may well also be legally privileged or otherwise protected from disclosure. If you have received it in error, you are on notice of its status. 
        Please notify us immediately by reply e-mail and then delete his e-mail and any attachment from your system. If you are not the intended recipient please understand that you must not copy this e-mail or any attachments or disclose the contents to any other person. Thank you.
        
        
        -----Ursprüngliche Nachricht-----
        Von: Christofer Dutz <ch...@c-ware.de> 
        Gesendet: Montag, 13. Mai 2019 09:32
        An: dev@plc4x.apache.org
        Betreff: [C++] Latest config changes
        
        Hi All and especially Markus,
        
        I just had a look at the changes that were added recently to the c++ part of PLC4X.
        One thing I noticed, is that you re-added the relative links between the modules.
        If you do a maven build (at least to the “generate-sources” phase, maven will make all dependencies available as they were configured in the CMakeList.txt files.
        You now sort of have them in there double … for a maven build there will now be two paths to every file. I hope this can’t cause any confusion?
        
        In the “generate-sources” phase maven takes all the dependencies and unpacks them into the “target/dependencies” directory.
        This then contains one “includes” and one “libs” folder, which contains all the includes and all the libs this module depends on.
        The cool thing with with is, that this way if you add a new dependency, all you need to do, is to add that dependency to the pom.xml Its content will automatically show up in the location where all the others have shown up and you don’t need any configuration changes.
        
        If however you start double-doing the dependencies by introducing these relative paths again, I guarantee that we will be having problems.
        The reason is that you will probably not add dependencies to the pom.xml
        
        Chris
        
    
    


AW: [C++] Latest config changes

Posted by Markus Sommer <so...@isb-fn.de>.
Hello Chris,

I agree with you. 

My suggestion, we push into a branch until the one with which we have a Readrequest works, then the architecture is so far consolidated.

Then we can configure Maven to work with the required libs.

What's the name of the branch?

Wie soll der Branch heissen?

What do you think?

Best regards

Markus
Best regards

Markus

Freundliche Grüße

Markus Sommer
Geschäftsführer

isb innovative software businesses GmbH
Otto-Lilienthal-Strasse 2
D - 88046 Friedrichshafen

Tel.:    +49 (0) 7541 3834-14
Mob:  +49 (0) 171 537 8437
Fax:     +49 (0) 7541 3834-20
E-Mail: sommer@isb-fn.de
Web: www.isb-fn.de 

Geschäftsführer: Markus Sommer, Thomas Zeler
Sitz: Friedrichshafen

Registergericht: Amtsgericht Ulm HRB-Nr. 631624
Important Note: This e-mail and any attachments are confidential, may contain trade secrets and may well also be legally privileged or otherwise protected from disclosure. If you have received it in error, you are on notice of its status. 
Please notify us immediately by reply e-mail and then delete his e-mail and any attachment from your system. If you are not the intended recipient please understand that you must not copy this e-mail or any attachments or disclose the contents to any other person. Thank you.


-----Ursprüngliche Nachricht-----
Von: Christofer Dutz <ch...@c-ware.de> 
Gesendet: Montag, 13. Mai 2019 10:19
An: dev@plc4x.apache.org
Betreff: Re: [C++] Latest config changes

Hi Markus,

I sort of feel a little uncomfortable, with all the development for c++ being done behind closed doors and then having the results presented to the rest.
That's not sort of how things work at the ASF. 

Isn't there a way you guys could for example develop things in feature branches and then merge back to develop as soon as you reached a checkpoint?

Right now for example I disabled the logging module as the build keeps on complaining:

[ 57%] Building CXX object CMakeFiles/plc4cpp-utils-logger.dir/src/main/cpp/org/apache/plc4x/cpp/utils/logger/ErrorCategory.cpp.o
In file included from /Users/christofer.dutz/Projects/Apache/PLC4X/plc4cpp/utils/logger/src/main/cpp/org/apache/plc4x/cpp/utils/logger/ErrorCategory.cpp:20:
/Users/christofer.dutz/Projects/Apache/PLC4X/plc4cpp/utils/logger/src/main/cpp/org/apache/plc4x/cpp/utils/logger/ErrorCategory.h:23:10: fatal error: 'boost\system\error_code.hpp' file not found #include <boost\system\error_code.hpp>
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

The problem the file is there and it is available ... not quite sure why make seems to be finding all the other hpp files, but is having a problem with that particular one.

With Maven being the primary build system, the build must work with Maven ... so please check your builds to work with maven at least before checking them in.

If you need help, I am happy to be of assistance.

I'm not insisting on you using Maven during development and I'm also not insisting on running it on Win, Mac and Linux, as I am currently mostly doing it, but I do that it should be run at least once on any of these systems before checking in.
I don't want to continue the mode in which I have to drop everything I'm currently working on just to fix a code-drop.

Chris



Am 13.05.19, 09:43 schrieb "Markus Sommer" <so...@isb-fn.de>:

    Hello Chris,
    
    we've only maintained the CMakelists so far. We haven't dealt with Maven in the project yet.
    
    For us, the focus is on implementing the other classes in C++ and then accessing an S7 with a ReadRequest. Just now the implementation with signals for asynchronous reporting of incoming messages.
    
    Have also fought with CMakeLists something with Boost to link the necessary libraries into the project.
    
    Changing the CMakelists is then done quickly.
    
    Best regards
    
    Markus
    
    Freundliche Grüße
    
    Markus Sommer
    Geschäftsführer
    
    isb innovative software businesses GmbH
    Otto-Lilienthal-Strasse 2
    D - 88046 Friedrichshafen
    
    Tel.:    +49 (0) 7541 3834-14
    Mob:  +49 (0) 171 537 8437
    Fax:     +49 (0) 7541 3834-20
    E-Mail: sommer@isb-fn.de
    Web: www.isb-fn.de 
    
    Geschäftsführer: Markus Sommer, Thomas Zeler
    Sitz: Friedrichshafen
    
    Registergericht: Amtsgericht Ulm HRB-Nr. 631624
    Important Note: This e-mail and any attachments are confidential, may contain trade secrets and may well also be legally privileged or otherwise protected from disclosure. If you have received it in error, you are on notice of its status. 
    Please notify us immediately by reply e-mail and then delete his e-mail and any attachment from your system. If you are not the intended recipient please understand that you must not copy this e-mail or any attachments or disclose the contents to any other person. Thank you.
    
    
    -----Ursprüngliche Nachricht-----
    Von: Christofer Dutz <ch...@c-ware.de> 
    Gesendet: Montag, 13. Mai 2019 09:32
    An: dev@plc4x.apache.org
    Betreff: [C++] Latest config changes
    
    Hi All and especially Markus,
    
    I just had a look at the changes that were added recently to the c++ part of PLC4X.
    One thing I noticed, is that you re-added the relative links between the modules.
    If you do a maven build (at least to the “generate-sources” phase, maven will make all dependencies available as they were configured in the CMakeList.txt files.
    You now sort of have them in there double … for a maven build there will now be two paths to every file. I hope this can’t cause any confusion?
    
    In the “generate-sources” phase maven takes all the dependencies and unpacks them into the “target/dependencies” directory.
    This then contains one “includes” and one “libs” folder, which contains all the includes and all the libs this module depends on.
    The cool thing with with is, that this way if you add a new dependency, all you need to do, is to add that dependency to the pom.xml Its content will automatically show up in the location where all the others have shown up and you don’t need any configuration changes.
    
    If however you start double-doing the dependencies by introducing these relative paths again, I guarantee that we will be having problems.
    The reason is that you will probably not add dependencies to the pom.xml
    
    Chris
    


Re: [C++] Latest config changes

Posted by Christofer Dutz <ch...@c-ware.de>.
Hi Markus,

I sort of feel a little uncomfortable, with all the development for c++ being done behind closed doors and then having the results presented to the rest.
That's not sort of how things work at the ASF. 

Isn't there a way you guys could for example develop things in feature branches and then merge back to develop as soon as you reached a checkpoint?

Right now for example I disabled the logging module as the build keeps on complaining:

[ 57%] Building CXX object CMakeFiles/plc4cpp-utils-logger.dir/src/main/cpp/org/apache/plc4x/cpp/utils/logger/ErrorCategory.cpp.o
In file included from /Users/christofer.dutz/Projects/Apache/PLC4X/plc4cpp/utils/logger/src/main/cpp/org/apache/plc4x/cpp/utils/logger/ErrorCategory.cpp:20:
/Users/christofer.dutz/Projects/Apache/PLC4X/plc4cpp/utils/logger/src/main/cpp/org/apache/plc4x/cpp/utils/logger/ErrorCategory.h:23:10: fatal error: 'boost\system\error_code.hpp' file not found
#include <boost\system\error_code.hpp>
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

The problem the file is there and it is available ... not quite sure why make seems to be finding all the other hpp files, but is having a problem with that particular one.

With Maven being the primary build system, the build must work with Maven ... so please check your builds to work with maven at least before checking them in.

If you need help, I am happy to be of assistance.

I'm not insisting on you using Maven during development and I'm also not insisting on running it on Win, Mac and Linux, as I am currently mostly doing it, but I do that it should be run at least once on any of these systems before checking in.
I don't want to continue the mode in which I have to drop everything I'm currently working on just to fix a code-drop.

Chris



Am 13.05.19, 09:43 schrieb "Markus Sommer" <so...@isb-fn.de>:

    Hello Chris,
    
    we've only maintained the CMakelists so far. We haven't dealt with Maven in the project yet.
    
    For us, the focus is on implementing the other classes in C++ and then accessing an S7 with a ReadRequest. Just now the implementation with signals for asynchronous reporting of incoming messages.
    
    Have also fought with CMakeLists something with Boost to link the necessary libraries into the project.
    
    Changing the CMakelists is then done quickly.
    
    Best regards
    
    Markus
    
    Freundliche Grüße
    
    Markus Sommer
    Geschäftsführer
    
    isb innovative software businesses GmbH
    Otto-Lilienthal-Strasse 2
    D - 88046 Friedrichshafen
    
    Tel.:    +49 (0) 7541 3834-14
    Mob:  +49 (0) 171 537 8437
    Fax:     +49 (0) 7541 3834-20
    E-Mail: sommer@isb-fn.de
    Web: www.isb-fn.de 
    
    Geschäftsführer: Markus Sommer, Thomas Zeler
    Sitz: Friedrichshafen
    
    Registergericht: Amtsgericht Ulm HRB-Nr. 631624
    Important Note: This e-mail and any attachments are confidential, may contain trade secrets and may well also be legally privileged or otherwise protected from disclosure. If you have received it in error, you are on notice of its status. 
    Please notify us immediately by reply e-mail and then delete his e-mail and any attachment from your system. If you are not the intended recipient please understand that you must not copy this e-mail or any attachments or disclose the contents to any other person. Thank you.
    
    
    -----Ursprüngliche Nachricht-----
    Von: Christofer Dutz <ch...@c-ware.de> 
    Gesendet: Montag, 13. Mai 2019 09:32
    An: dev@plc4x.apache.org
    Betreff: [C++] Latest config changes
    
    Hi All and especially Markus,
    
    I just had a look at the changes that were added recently to the c++ part of PLC4X.
    One thing I noticed, is that you re-added the relative links between the modules.
    If you do a maven build (at least to the “generate-sources” phase, maven will make all dependencies available as they were configured in the CMakeList.txt files.
    You now sort of have them in there double … for a maven build there will now be two paths to every file. I hope this can’t cause any confusion?
    
    In the “generate-sources” phase maven takes all the dependencies and unpacks them into the “target/dependencies” directory.
    This then contains one “includes” and one “libs” folder, which contains all the includes and all the libs this module depends on.
    The cool thing with with is, that this way if you add a new dependency, all you need to do, is to add that dependency to the pom.xml Its content will automatically show up in the location where all the others have shown up and you don’t need any configuration changes.
    
    If however you start double-doing the dependencies by introducing these relative paths again, I guarantee that we will be having problems.
    The reason is that you will probably not add dependencies to the pom.xml
    
    Chris
    


AW: [C++] Latest config changes

Posted by Markus Sommer <so...@isb-fn.de>.
Hello Chris,

we've only maintained the CMakelists so far. We haven't dealt with Maven in the project yet.

For us, the focus is on implementing the other classes in C++ and then accessing an S7 with a ReadRequest. Just now the implementation with signals for asynchronous reporting of incoming messages.

Have also fought with CMakeLists something with Boost to link the necessary libraries into the project.

Changing the CMakelists is then done quickly.

Best regards

Markus

Freundliche Grüße

Markus Sommer
Geschäftsführer

isb innovative software businesses GmbH
Otto-Lilienthal-Strasse 2
D - 88046 Friedrichshafen

Tel.:    +49 (0) 7541 3834-14
Mob:  +49 (0) 171 537 8437
Fax:     +49 (0) 7541 3834-20
E-Mail: sommer@isb-fn.de
Web: www.isb-fn.de 

Geschäftsführer: Markus Sommer, Thomas Zeler
Sitz: Friedrichshafen

Registergericht: Amtsgericht Ulm HRB-Nr. 631624
Important Note: This e-mail and any attachments are confidential, may contain trade secrets and may well also be legally privileged or otherwise protected from disclosure. If you have received it in error, you are on notice of its status. 
Please notify us immediately by reply e-mail and then delete his e-mail and any attachment from your system. If you are not the intended recipient please understand that you must not copy this e-mail or any attachments or disclose the contents to any other person. Thank you.


-----Ursprüngliche Nachricht-----
Von: Christofer Dutz <ch...@c-ware.de> 
Gesendet: Montag, 13. Mai 2019 09:32
An: dev@plc4x.apache.org
Betreff: [C++] Latest config changes

Hi All and especially Markus,

I just had a look at the changes that were added recently to the c++ part of PLC4X.
One thing I noticed, is that you re-added the relative links between the modules.
If you do a maven build (at least to the “generate-sources” phase, maven will make all dependencies available as they were configured in the CMakeList.txt files.
You now sort of have them in there double … for a maven build there will now be two paths to every file. I hope this can’t cause any confusion?

In the “generate-sources” phase maven takes all the dependencies and unpacks them into the “target/dependencies” directory.
This then contains one “includes” and one “libs” folder, which contains all the includes and all the libs this module depends on.
The cool thing with with is, that this way if you add a new dependency, all you need to do, is to add that dependency to the pom.xml Its content will automatically show up in the location where all the others have shown up and you don’t need any configuration changes.

If however you start double-doing the dependencies by introducing these relative paths again, I guarantee that we will be having problems.
The reason is that you will probably not add dependencies to the pom.xml

Chris