Skip to content
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

[ace] Added TAO as feature #8468

Closed
wants to merge 32 commits into from
Closed

[ace] Added TAO as feature #8468

wants to merge 32 commits into from

Conversation

bold84
Copy link
Contributor

@bold84 bold84 commented Oct 6, 2019

Added CMake files to find ACE and TAO

@msftclas
Copy link

msftclas commented Oct 6, 2019

CLA assistant check
All CLA requirements met.

parent 1ebb733d78d592b597e46bc7c5a491e646023ed3
author Benjamin Oldenburg <[email protected]> 1570361425 +0700
committer Benjamin Oldenburg <[email protected]> 1570404986 +0700

Added TAO to ACE port
@bold84
Copy link
Contributor Author

bold84 commented Oct 7, 2019

I won't make any further changes. All builds succeed.

@cbezault
Copy link
Contributor

cbezault commented Oct 7, 2019

Why are you providing find modules? You should be providing config files if anything.

@bold84
Copy link
Contributor Author

bold84 commented Oct 7, 2019 via email

@MVoz
Copy link
Contributor

MVoz commented Oct 7, 2019

hmm... error

\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(209,5): error MSB6006: "cmd.exe" завершилась с кодом -1073741515. [E:\tools\vcpkg\buildtrees\ace\src\ACE_wrappers\tao\tao\TransportCurrent\TC_IIOP_Idl.vcxproj]
  Invoking "E:\tools\vcpkg\buildtrees\ace\src\ACE_wrappers\bin\tao_idl on ZIOP.pidl"
      <Command Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">setlocal&#x0D;&#x0A;PATH=%PATH%;E:\tools\vcpkg\buildtrees\ace\src\ACE_wrappers\lib&#x0D;&#x0A;cmd /c &quot;E:\tools\vcpkg\buildtrees\ace\src\ACE_wrappers\bin\tao_idl -Wb,pre_include=ace/pre.h -Wb,post_include=ace/post.h -IE:\tools\vcpkg\buildtrees\ace\src\ACE_wrappers\tao -Wb,versioning_begin=TAO_BEGIN_VERSIONED_NAMESPACE_DECL -Wb,versioning_end=TAO_END_VERSIONED_NAMESPACE_DECL -Wb,export_include=tao/TransportCurrent/Transport_Current_Export.h -Wb,export_macro=TAO_Transport_Current_Export -iC tao/TransportCurrent -I./TransportCurrent -SS -Sci &quot;TC_IIOP.idl&quot;&quot;&#x0D;&#x0A;endlocal</Command>
      <Message Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Invoking "E:\tools\vcpkg\buildtrees\ace\src\ACE_wrappers\bin\tao_idl on TC_IIOP.idl"</Message>

tag &quot; causes an error or does not find the file TC_IIOP.idl or ace/pre.h or ace/post.h

and such everywhere, where present <CustomBuild

Corrected the installation location for TAO_IDL
@bold84
Copy link
Contributor Author

bold84 commented Oct 8, 2019

hmm... error

I originally started this port with another name a few weeks ago. While merging it to this ACE port, I forgot to change the target directory for the executables (i.e. tao_idl) from ace-tao to ace. That's fixed now.

include(vcpkg_common_functions)

# Don't change to vcpkg_from_github! This points to a release and not an archive
set(ACE_ROOT ${CURRENT_BUILDTREES_DIR}/src/ACE_wrappers)
Copy link
Contributor

@MVoz MVoz Oct 8, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
set(ACE_ROOT ${CURRENT_BUILDTREES_DIR}/src/ACE_wrappers)
set(ACE_ROOT ${CURRENT_BUILDTREES_DIR}/src/ACE_wrappers)

ACE_ROOT == $(SourcesDirectory)/ACE
https://github.com/DOCGroup/ACE_TAO/blob/57c52c1183d8d5e11e725fc9886263dfca11f22c/azure-pipelines.yml#L2

? MPC_ROOT
https://github.com/DOCGroup/ACE_TAO/blob/57c52c1183d8d5e11e725fc9886263dfca11f22c/azure-pipelines.yml#L4

default.features == -features

qos=1,rwho=1,sctp=1,xerces3=1,ssl=1,versioned_namespace=1

$(ACE_ROOT)\bin\MakeProjectCreator\config\default.features
https://github.com/DOCGroup/ACE_TAO/blob/57c52c1183d8d5e11e725fc9886263dfca11f22c/azure-pipelines.yml#L73

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@voskrese

ACE_ROOT & MPC_ROOT
The folder structure of the ACE_TAO git repository is different from the one in the archive.

default.features
Yes. I will change that. :-)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Has this requirement been resolved?

@cbezault
Copy link
Contributor

cbezault commented Oct 8, 2019

In general find modules are written by the consumers of cmake libraries. Config files are created by the consumed library for the benefit of the consumers. Both define targets and all other variables necessary to consume a library.

@MVoz
Copy link
Contributor

MVoz commented Oct 8, 2019

other error

vcpkg install ace[*]:x64-windows

ace[core,qt5,ssl,tao,tao-bzip2,tao-zlib,wchar,xml]:x64-windows

error
?strdup@ACE_OS@@YAPEADPEBD@Z

Точка входа в процедуру ?strdup@ACE_OS@@YAPEADPEBD@Z не найдена в библиотеке DLL E:\tools\vcpkg\buildtrees\ace\src\ACE_wrappers\lib\TAO_IDL_BE.dll.

E:/tools/vcpkg/downloads/tools/perl/perl/bin/perl.exe E:/tools/vcpkg/buildtrees/ace/src/ACE_wrappers/bin/mwc.pl -type vs2017 TAO_ACE.mwc -features stl=1,ace_for_tao=0,ace_inline=0,uses_wchar=1,xml=1,ssl=1,qt5=1,bzip2=1,zlib=0 -workers 5 -use_env -expand_vars

ace[core,qt5,ssl,tao,tao-bzip2,tao-zlib,wchar,xml]

?
,zlib=0,ace_for_tao=0,ace_inline=0
-features stl=1,ace_for_tao=0,ace_inline=0,uses_wchar=1,xml=1,ssl=1,qt5=1,bzip2=1,zlib=0

@bold84
Copy link
Contributor Author

bold84 commented Oct 8, 2019

other error

@voskrese
I can not reproduce it

PS C:\vcpkg> .\vcpkg.exe install ace[*]
The following packages will be built and installed:
ace[core,qt5,ssl,tao,tao-bzip2,tao-zlib,wchar,xml]:x64-windows
Starting package 1/1: ace:x64-windows
Building package ace[core,qt5,ssl,tao,tao-bzip2,tao-zlib,wchar,xml]:x64-windows...
Warning: abi keys are missing values:
bzip2
openssl
qt5-base
zlib

-- Using cached C:/vcpkg/downloads/ACE+TAO-src-6.5.6.tar.gz
-- Extracting source C:/vcpkg/downloads/ACE+TAO-src-6.5.6.tar.gz
-- Applying patch C:/vcpkg/ports/ace/qtcoreapplication.patch
-- Applying patch C:/vcpkg/ports/ace/bzip2.patch
-- Applying patch C:/vcpkg/ports/ace/mpc-arm.patch
-- Applying patch C:/vcpkg/ports/ace/stacktrace-arm.patch
-- Applying patch C:/vcpkg/ports/ace/arm_prevent_amd64_definition.patch
,uses_wchar=1,xml=1,ssl=1,qt5=1,bzip2=1,zlib=1
-- Building C:/vcpkg/buildtrees/ace/src/ACE_wrappers/tao/TAO_ACE.sln for Release

@MVoz
Copy link
Contributor

MVoz commented Oct 8, 2019

is guilty, means at me remained everything in a cache, files were not reconfigured
will look further

ports/ace/CONTROL Outdated Show resolved Hide resolved
@@ -0,0 +1,11 @@
--- a/MPC/config/bzip2.mpb 2019-10-06 11:14:51.164094600 +0700
+++ b/MPC/config/bzip2.mpb 2019-10-06 11:15:08.269289500 +0700
@@ -5,8 +5,6 @@
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you create a PR for MPC https://github.com/DOCGroup/MPC

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes... I've moved our office. I expect to be done tonight and can take care about this and the other PRs on the weekend.

ports/ace/CONTROL Outdated Show resolved Hide resolved
@JackBoosY
Copy link
Contributor

/azp run

@jwillemsen
Copy link
Contributor

We also have #9016 as another PR in ace

@jwillemsen
Copy link
Contributor

See #9074 for the new ACE release which has some of the patches integrated

@jwillemsen
Copy link
Contributor

@ordisbold Any plans to finish the TAO feature soon?

@JackBoosY JackBoosY changed the title Added TAO as feature [ace] Added TAO as feature Nov 29, 2019
@JackBoosY
Copy link
Contributor

@ordisbold Ace in vcpkg has been updated to 6.5.7, does your change still work?

@bold84
Copy link
Contributor Author

bold84 commented Apr 8, 2020

I don't understand why it's trying to build qt5-tools on Linux.

.\vcpkg.exe depend-info ace[*]
openssl-windows:
bzip2:
openssl: openssl-windows
xerces-c:
zlib:
ace[wchar, bzip2, xerces-c, ssl, tao, zlib]: bzip2, openssl, xerces-c, zlib

@bold84 bold84 closed this Apr 8, 2020
@bold84
Copy link
Contributor Author

bold84 commented Apr 8, 2020

I will focus on the axcioma based build... And I will not try to support all platforms and features immediately. :-D

@bold84 bold84 deleted the vcpkg-ace-port branch April 8, 2020 16:40
@JackBoosY
Copy link
Contributor

@ordisbold Well, qt5-tools issue has been resolved. Could you reopen this PR again?

@bold84 bold84 restored the vcpkg-ace-port branch April 9, 2020 02:47
@bold84 bold84 reopened this Apr 9, 2020
@bold84
Copy link
Contributor Author

bold84 commented Apr 9, 2020

@ordisbold Well, qt5-tools issue has been resolved. Could you reopen this PR again?

I don't understand why it even required qt5-tools. I removed everything qt5 and it still failed due to an issue in the qt5 package. 🤔

I reopened it.

But there's a problem regarding this port.

TAO is based on ACE and it is not advisable to separate the build process of these libraries and make TAO a separate port. TAO only supports the decades old IDL-to-C++ mapping, which doesn't support the STL, because the STL wasn't part of the C++ standard when the IDL-to-C++ mapping was defined. The "old" IDL-to-C++ mapping is hard to use and developing with it is error-prone, especially for beginners.

Renedy IT has created a new IDL-to-C++11 mapping. It is now part of the official IDL to language specifications by the OMG.

Remedy IT has also implemened the aforementioned IDL-to-C++11 mapping based on TAO and recently released it with other relevant components (i.e. LwCCM) as open source software. The suite is called AXCIOMA and just the implementation of the new IDL-to-C++11 mapping is called TAOX11.

The question is: how to represent this in vcpkg? The AXCIOMA build process appears to be complex but stable. It implicitly downloads ACE and TAO and builds these libraries with specific settings that the library depends on.

Separating the build processes of ACE, TAO and AXCIOMA Is a can of worms I don't want to open.

@JackBoosY
Copy link
Contributor

/azp run

@bold84
Copy link
Contributor Author

bold84 commented Apr 9, 2020

_VCPKG_MAKE_GENERATOR in vcpkg_build_make.cmake seems to be undefined. That's why the Linux build now fails :-D

Where is _VCPKG_MAKE_GENERATOR set?

bold84 added 2 commits April 9, 2020 11:36
corrected platform specific library suffixes for libraries needed during runtime of tao_idl
temporarily disable Linux builds again :-P
@JackBoosY
Copy link
Contributor

@ordisbold _VCPKG_MAKE_GENERATOR is automatically set in vcpkg_configure_make.

ports/ace/portfile.cmake Outdated Show resolved Hide resolved
@bold84 bold84 requested a review from JackBoosY April 9, 2020 09:42
Copy link
Contributor

@jwillemsen jwillemsen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Before this PR linux worked as far as I know, now it is disabled, personally I don't like to remove a platform again

Copy link
Contributor

@JackBoosY JackBoosY left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

-- Applying patch /home/vcpkg/ports/ace/arm_prevent_amd64_definition.patch
CMake Error at scripts/cmake/vcpkg_apply_patches.cmake:51 (message):
  Applying patch failed.  Checking patch ace/config-win32-common.h...

  error: while searching for:

  #if defined (_WIN64) || defined (WIN64)

  # define ACE_WIN64



  // MPC template adds _AMD64_ but user projects not generated using MPC

  // may want to use _AMD64_ as well.  Ensure it's there in all cases.

  # ifndef _AMD64_

  # define _AMD64_

  # endif



  // Use 64-bit file offsets by default in the WIN64 case, similar to

  // what 64-bit UNIX systems do.

  //



  error: patch failed: ace/config-win32-common.h:39

  error: ace/config-win32-common.h: patch does not apply

Call Stack (most recent call first):
  ports/ace/portfile.cmake:42 (vcpkg_apply_patches)
  scripts/ports.cmake:90 (include)

@bold84
Copy link
Contributor Author

bold84 commented Apr 10, 2020

I won't invest more time into this PR.

I wanted to share the addition of TAO which I have been using here for a while and I didn't expect that the PR consumes more time than the addition of TAO to the port.

So, I don't require it to be merged.

@bold84 bold84 closed this Apr 10, 2020
@jwillemsen
Copy link
Contributor

Regret to see this closed, would be nice to have tao on vcpkg

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants