plc4x-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christofer Dutz <>
Subject Re: [C++] Latest config changes
Date Mon, 13 May 2019 08:18:32 GMT
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:
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.


Am 13.05.19, 09:43 schrieb "Markus Sommer" <>:

    Hello Chris,
    we've only maintained the CMakelists so far. We haven't dealt with Maven in the project
    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
    Freundliche Grüße
    Markus Sommer
    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
    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 <> 
    Gesendet: Montag, 13. Mai 2019 09:32
    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

View raw message