-
Notifications
You must be signed in to change notification settings - Fork 463
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
How-to build OpenDDS v3.26.1 with prebuilt Xerces-C++ v3.2.4 using CMake and MSVC on Windows #4375
Comments
Yes, that's correct. This appears to be an oversight on my part as don't think I've tried to built OpenDDS with Xerces on Windows. The ACE/TAO build requires setting the I will also look into Ninja Multi-Config. I don't think I've tried using that at all on any platform. |
Thanks for the reply. I've been able to successfully build OpenDDS in the
It seems that OpenDDS assumes Questions:
Here is my current Windows batch script:
Additional notes:
Next step is to solve the two remaining problems. After that I'll try to activate OpenDDS security features in the build. But at least I can start to evaluate OpenDDS using the |
Follow-up on #4375 (comment): Does anyone have an idea why the Edit: Note that the same error occurs if specifying an external ACE+TAO source directory via In addition here is the error of the OpenDDS CMake configure phase (in which ACE+TAO is build) if replacing the generator in my build script with
|
I'm not sure I can answer all this here, especially the generator and multi-config related issues. It would be better if you opened all the Multi-config-related things as a separate issue. Theoretically building both at the time should work as I tried to be mindful of it while writing CMake code, but it was never a goal of the initial CMake work, so it never got tested.
It doesn't rely on
Java currently isn't supported when building with CMake.
I'm not sure what you mean by it being a |
Yes, I assume you're right that I've ran into multiple issue here. But this is the point where I give up on OpenDDS and won't come back any time soon. Other open-source DDS implementations (one in particular) do have a much lower entry barrier. I've already spent too much time trying to get the OpenDDS CMake software build basically working. I'll go with one of the competitors. The fact that no contributor of this project was able to provide me with working build instructions (I provided a whole script and additional feedback) signals to me, that something is clearly wrong here. In addition, the ACE+TAO (aka DOC Group TAO) build itself is a mess and its documentation is pretty bad: It should just provide the necessary CLI commands, not hundreds of words of prosa. The arcane MPC build system it uses also doesn't help. I was barely able to create a batch script that builds ACE+TAO in isolation (dynamic and static linkage in combination with the build configs Regarding
In my experiments, for OpenDDS one has to set @iguessthislldo Nonetheless, thank you very much for your help. |
Have you tried building OpenDDS using the configure script and MSVC? You can then use the resulting libraries in a CMake project. Building OpenDDS with CMake is new so we're still working out some of the more advanced configurations. Thanks for your help with this. |
Alright, this took a while to get back to because I tried to include the Xerces fixes with #4374, but work on that PR stalled. The issue with the release build trying to use debug ACE was fixed in #4535. I'll have to come back to the other issues with multiconfig generators, but most if not all problems should be solved by making ACE/TAO build with CMake instead of this really problematic calling MPC from CMake workaround that's the root of basically all of these problems. I've summarized the work needed for that in #4578. |
Added #4580 for Ninja |
I am currently trying to build OpenDDS v3.26.1 including
ACE_XML_Utils
using CMake v3.27.9 in the two build configsDebug
andRelease
.Here are the steps I executed so far:
Pre-requisite: Configure and build Xerces-C++ v3.2.4:
Configure OpenDDS:
Build OpenDDS:
During the execution of
cmake --build .build --target install --config Debug
I got the following compile error:I noticed that during the OpenDDS configure phase ACE+TAO is automatically downloaded and then configured using Perl. I was unable to use the
Ninja Multi-Config
generator and therefore changed to MSBuild. This observation seems to be related to my issue, I assume the CMake-configured Xerces-C++ paths are not properly propagated to the ACE+TAO build.Is it possible to work around this issue?
If not, the next I'd try is to also prebuilt ACE+TAO and try to configure the OpenDDS build accordingly.
Any help is highly appreciated.
The text was updated successfully, but these errors were encountered: